Wednesday, December 21, 2005

The power of GPU

最 近在公司我們這個Team的目標就是 絞盡腦汁把所有遊戲中可能會用到的運算全部丟進去GPU中做運算,目前已經累積了各式各樣的應用,幾乎能想到的東西 都放進去GPU中了,看來看去只剩物理運算還沒有人做了,因此我明年的新目標就是把物理運算放進GPU中了。GPU的進步還真是快速,在不久的將來, CPU應該只需要負責處理game play跟AI了吧。這個月新的DX SDK推出了,裡面還附了DX 10的介紹以及一些範例,公司當然已經有支援DX 10的晶片在開發了,我想明年的另一個重點就是提供DX 10的shader sample吧。

這 幾天終於將Lynx Engine的物理系統完成了,目前可以掛上ODE或是Novodex物理引擎,這兩個物理引擎是我目前最看好的物理引擎,各有利弊,所以就都支援啦,不 過相同的場景,兩個引擎算起來的結果還真不同呢。目前看起來,ODE不論是QuickStep或是Step的結果似乎都比Novodex要精確。另外一直打算要加入引擎的就是Parallax Mapping,這個技術的效果實在是很驚人,左圖是我修改ATI SDK中的範例,明明就只有一個plane,透過神奇的shader 騙術,看起來就像是鵝卵石地板,除了在地板交接處外,幾乎看不出什麼破綻,加上動態光源,就像真的有那麼多Polygon似的。

5 comments:

比克 said...

hi~記得引擎完成後~要借我用一下咧~我還可以幫你抓BUG咧

fallingCAT said...

沒問題,不過還要等一陣子囉,因為野心太大,工作項目是越做越多啊。

超人 said...

了解你說明了Parallax Mapping的效果是甚麼意思了,如附圖中不平的地表是一種shader的視覺效果,若有角色走在上面,應該還是只有"如履平地"是吧?要做角色走在上面所造成上下的起伏,應該還要另外處理吧?

超人 said...

reliefmap應該說是normal map的加強版吧?我的ATI 9700卡看不到reliefmap效果..,我知道用MESH來產生reliefmap貼圖,但若是一面貼了磚塊材質的牆,要如何產生reliefmap貼圖呢?應該不是再拉一個對應磚塊材質的MESH吧??還是??

fallingCAT said...

Relief mapping跟Parallax mapping(with diatance function)是兩種很類似的做法,基本上都是要配合normal map來做,所以既然要產生normal map,再拉一個Hi-Poly的mesh是在所難免,至於Height map或是Distance map,則都可以由normal map來產生。基本上這兩種shader都要SM 3.0才行,所以沒有X1K或是GF 6000/7000以上的卡是沒辦法跑的。