前幾天看到C9的宣傳影片,發覺到dynamic lighting有明顯進步。
第一次公布宣傳影片時,只有人物和怪物有dynamic lighting。
最新的宣傳影片,多加上Terrain的dynamic lighting運算,但是草則沒有。
草為什麼沒有?這我能瞭解此原因。要作出來是可以,只是效率上的關係。
我這幾天在看一些資料,關於dynamic lighting的作法有幾種:
1.Single Pass PerLight
2.Multiple Lights PerPass
3.deferred shading
第一點的優點是彈性很大,可以隨意去加你想要的light type。
但是效率會不太好,因為batch會提升的關係。
第二個跟第一點是相反的關係。
第三個我就不談了,光是Geometry Buffer就讓人吃不消了。
第一點在製作console game的話,可以拿去實作,
但是在online game的話,我會去用第二點。
其實在C9的dynamic lighting只有Point light而已(影片中),
至於每個geometry能吃多少個光,這我就不清楚了,
能確定的是online game是不能處理太多光源的,原因在於效能。
現在還沒完成,要等到下禮拜一才開始動工,
不過大致上看了一下之後,要實作出來是沒什麼問題,
而且關於玩家的顯卡上的運算方式和光源數量的調整動作,
也是沒有多大的問題。
//////////// 09/03/11 ////////////////
花了兩個工作天,已經把dynamic lighting給完成了,
每個geometry可以吃5個燈光(per-pixel in shader 2.0),
加上direction light就有六個燈光,至於比較遠的話,會弄成per-vertex。
基於效能的關係,花草不會納入運算,不過樹木會納入。
其實最後會加上bloom效果,會讓人看起來花草有納入運算。
課長講說:試看看能不能吃更多的光。
我想說...就算可以吃很多,但是還沒測過整體效能,
所以吃太多也未必好事。
而且這東西會跟C9一樣,會跟特效放在一起。
FastScene
9 個月前
沒有留言:
張貼留言