2008年6月14日 星期六

又要馬兒跑,又要馬兒不吃草

看到有這麼多的FancyDesigner愛用者,心裡實在是高興!

不過嘛,有越來越多的使用者抱怨,當場景變大時,執行的速度也會越來越慢!

人客呀,這是當然的嘛!無論如何,場景總不可能無限制的擴充下去呀!場景裡的東西如果越來越多,越來越複雜,執行速度當然會越來越慢的嘛!

這面牆的後面是個浴室

不過話雖如此,我也知道使用者就是因為喜歡FancyDesigner,才會有如此期盼的。

好吧,即使不是十分合理,我還是希望能寵寵使用者,讓他們真的能在兼顧畫質之下,擁有更大更複雜的場景。

浴室裡的物件雖然被牆擋住了 但還是會做3D運算

這個問題到底該怎麼解呢?看來應該可以從遮蔽物的觀念來下手。無論場景多麼的大,除非是百分之百的開放空間,否則使用者應該不可能一眼就看到場景裡所有的東西,所以只要把暫時看不到的東西去除掉,也就是不列入計算,那就能夠大大提高執行的效能。舉例來說,如果人是在客廳的話,那主臥室或其他房間裡的東西就極可能被隔間牆擋住,所以裡面的東西就可暫時不列入計算。

其實這個說穿了就是3D遊戲裡常用的遮蔽演算法,只是人家的3D遊戲在建場景時都會有嚴格的限制,所以遮蔽演算法較為單純,而我們的FancyDesigner卻是要讓每個人都能輕鬆容易地建構場景,所以遮蔽演算法所要考慮的因素可就複雜多了。

啟用遮蔽演算法之後 牆後面的物件運算大幅減少了

不過,…..嘿嘿,經過幾個月的努力,遮蔽演算法總算大功告成了!這都得多感謝Su的協助,因為比較難的數學問題,我都是讓他去傷腦筋!

人客呀,再耐心等個幾天,就可以享受到遮蔽演算法的好處了唷!

沒有留言:

張貼留言