2017年8月29日 星期二

[譯] 遊戲開發技術解析: 汪達與巨像 (Shadow of the Colossus - PS2)

汪達與巨像是PS2時代末期推出的一款RPG偉大巨作,我在我大學生活的最後一年有幸玩到,陪伴我畢業的那段時間,給予我至今仍然難忘的體驗。

汪達與巨像 (Shadow of the Colossus)
太空戰士 12 (Final Fantasy XII)
女神戰記2 希爾梅莉亞
這3款遊戲都是我印象中在PS2時代末期推出,將PS2主機性能完全操爆突破極限的經典巨作,也可說是日本領先全世界之RPG輝煌時期的代表作。

前陣子在網站上找到有人用心拆解汪達與巨像這款遊戲的開發技術成份,有種挖到寶的心情。
有心想找有空的時候翻譯一些重點出來,結果一拖又是兩個月過去,認真開始找重點翻,也還是花超過兩天才做好

寫文件真的不是件輕鬆的差事。




文件就放到我的slideshare當作成就收藏吧,大家喜歡的話可以去參考看看。
原文在此:http://www.froyok.fr/blog/2012-10-breakdown-shadow-of-the-colossus-pal-ps2

2017年8月12日 星期六

開發日誌 (-1): 毛(fur shader) - 前置研究

為了自己心目中的遊戲,
已經關注 fur rendering 這個技術領域多年了(但還是只看懂皮毛表面)。
看了數篇的文獻和現成的 example shader codes,
每次看幾乎都沒什麼疑問,
知道那些程式在做什麼或為了什麼效果,
但等到真的想實現自己想做的效果時,
又覺得缺了很多專業知識而會導致做不出來。

目前為止看過讓我覺得最簡單易懂的教學網站應該是這個:
http://www.catalinzima.com/xna/tutorials/fur-rendering/
要表現出毛髮的效果基本上就是一個原則,
同樣的毛髮幾何對象依不同厚度切片層次重畫好多次。
每次重畫某層切片時就依照該層厚度(高度)對應的顏色、疏密度以及透明度,
去表現那層次的毛法外觀效果。
其實我感覺就是一個volume rendering的變化作法。
http://www.catalinzima.com/wp-content/uploads/2008/07/layers.jpg

這種分割成大量切片重畫的方式通常被稱為Shells的畫法,
除此之外可以在幾何邊緣或是貼圖紋理不連續的三角面接續處,
安插額外的類billboard切片,
來補足視覺上的破綻。
此種畫法通常被稱為Fins畫法。

所以很多討論毛髮效果的文獻會不停的提到Shells & Fins這樣的名詞。
https://timothythiecke.wordpress.com/portfolio/hlslshader/

有趣的事情是幾年前我就在github上看過open source Unity fur rendering專案。
但我今年要重找時沒有找到適合的open source project(for Unity),
(其實我只是懶的做debugging和migration)
(沒辦法下班時間也實在是很有限)
最後沒耐心的情況下我甘脆去asset store買了一個fur shader(5 USD),
買下來才發現其實就是當年我看到的github專案上幾乎一模一樣的codes XD
也好如果是同作者的話就當作回饋給他吧。
https://www.assetstore.unity3d.com/en/#!/content/66461

試用了該shader後試作出了下面這樣四不像的動物(一隻老虎 XD)。
看來要做的事還有很多:
1. Density control.
2. Height map control.
3. Transparency control.
4. Geometry modification (controlling via vertex colors).
看來還缺很多東西才能開始嘗試..