2009年7月20日 星期一

追上今世代繪圖技術

去年,也就是2008的

3D遊戲中,以HDR、動態影子、NormalMap,為三大神器。

而新世代的技術,

也就是PS3和Xbox360常用的技術:GI(Global Illumination)

也就是我今年的最後目標。

以「ソニック ワールドアドベンチャー」(簡稱ソニックWA)的遊戲中,

大量使用GI技術、「放射輝度ボリューム 」(Irradiance Volume)兩種。

這兩種技術,讓我滿驚訝!

因為除了逼真之外,也可以讓美術減少許多功夫。

不過這要研究的話,要花大量的時間,

因為要從底層到工具層開始打造,而且這當中有許多的技術去組合而成。

只能慢慢來(笑)

2009年7月12日 星期日

PSSM(Parallel-Split Shadow Maps)

今天總算把PSSM完成了差不多了,

用了512*512的大小,就可以做出很高品質的全場景影子。

在製作的過程,遇到不少問題,

不過也因此而對shadow map有相當的認知,

以前遇到這個都會刻意避開,這演算法算是我第一次作shdow map的經驗。

現在render engine已經全面支援動態「光影」了,我想上司一定很高興XD。

接下來還剩下一個問題,就是在某一光源向量時,

shadow map會全跑掉不見。


以下是我在看的資料,有興趣者可以去看:

Parallel-Split Shadow Maps on Programmable GPUs

Parallel-Split Shadow Maps


PS:未來有時間的話,會嘗試導入VSM,也就是PSSM + VSM。

//////////2009 / 7 / 20

已經把「shadow map會全跑掉不見」的bug修正完畢了,

果然是projection matrix那邊的問題。

至於效能上,大致上會跟nvidia文件所說的,receive方面,只有terrain。

要做到receive object的話,效能上要多多考量,並不是作不到。

現在engine上,已經有靜態光影和動態光影,只要這兩種相互輔助,

在場景設計上,會有相當大的彈性。

比如:非副本的場景,只有靜態光影;反之,副本就是全方面動態光影。

2009年6月26日 星期五

重大巨變

因為公司最上層的命令,導致次世代引擎要暫時終止開發,

而將主力人才放在重要的專案上。(唉~說起來很複雜)

個人估計最快大概要一年之後,最晚是明年年底才能繼續開發。

我們依造scrum的敏捷開發流程中,跑了8次sprint,

如果繼續跑下去是可以達到我們目標了,唉~可惜。

看著大陸的技術崛起,以劍俠3 OL和天驕3為例,

開始不禁擔心起台灣的水準了。

等到他們的render engine已經達到定位了,就會開始往其他方向發展了,

我們連第一步還沒踏出去,何來的下一步。

個人這幾天都在思考,自己必須要為更遠的目標而踏下第一步。

2009年6月10日 星期三

Memory leak!

這幾天我的同事(JC)遇到關於記憶體的bug,

我就推薦給他這個工具去找找:Memory Validator。

這工具滿神的,可以找出哪一個物件沒有被釋放完整之外,

還可以紀錄到那一個物件總共幾個尚未被釋放。

還可以看到source code!it's good

可惜我只能拿30天去玩Orz。

工具終於快出第一版了!

事隔兩個月多,第一個版本的工具要釋出了!

這是我的處女作,因為這是我第一次作工具XD。

此工具是給美術人員去使用的。

除了作一些compress texture之外,還想要作debug的功能。

就是檢查uv coordinate,還有檢查texture的size要多大才是「正確」。

不過要作debug的功能的話,必須要修改render的元件,

當然shader code也是要寫。

恩...只能慢慢來,這工具短期不需要功能完整,最基本的compress是必須的。

看看六月底能作多少算多少。

2009年4月8日 星期三

好忙呀~

近一個月沒更新文章了。

最近有在忙修正舊引擎的效能,還有新增一些功能。

效能上有提升到三倍,新增功能方面是自己挖洞下去的XD。

其實花大部分時間在於看一堆compression文件。

texture在遊戲上是扮演很重要的角色,也是美術的功力展現之一。

我想很多遊戲都將texture作compress動作。

所以身為圖學工程師,要幫他們作把關,

盡量將原圖或近似原圖展現在玩家眼中之外,

又為每種硬體設備做出很棒的調整,

尤其是大量使用normalmap的texture。

這次的backlog的質量相當重,有太多的東西要去研究。

希望這backlog能夠在五月底能夠產生出來。

2009年3月15日 星期日

about the Graphics Memory

為了掌控texture的品質,最近再看關於Graphics Memory的相關資料。

並且去瞭解內部的運作是怎樣的。

BIOS中可以去調整AGP Aperture size,一般玩家覺得調那個可以

加快遊戲執行的速度,其實調那個是並不會增加遊戲速度,

有興趣者請看這份資料:What is AGP Aperture size。

而且在DirectX SDK中,有個Video Memory的sample,

可以教我們如何show出關於video memory的資訊。

除此之外,Window Vista對於Graphics Memory的管理又是另一套方式,

名叫:Windows Vista Display Driver Model(WDDM)

他的相關資料在這:Graphics Memory Reporting through WDDM

最後,

如何去檢查剩餘的Graphics Memory?

可以用RivaTuner和Video Memory Watcher。

以上!