2010/05/31

UDK新增功能:Penumbra Scale (半影區尺度)

半影(penumbra)是指物體受光的區域有部分被遮蔽住 (最簡單的例子就是月亮的陰晴圓缺)。Wikipedia

Unreal Engine 3多了一個新功能是『DistanceFieldPenumbraScale』的屬性,你可以在Lightmass裡面在material設定的最底下,這個屬性可以修改Distance Field Shadows的模糊程度,會受到Dominant Directional Lights影響。你必須要重新rebuild光線才能看到效果,但是你如果先選中mesh則可以預覽效果。
這個新增選項可以用來移除某些難看的結果,當你使用低解析度的lightmap的時候,例如樹木。當你為了節省記憶體而把SpeedTrees的樹模型轉換成Static Meshes(因為SpeedTrees只採用vertex做照明,這很浪費記憶體的!),你會發現預設的Static Mesh lightmap讓樹看起來很醜,因為Distance Field Shadows投射到lightmaps的雜訊。

上圖都是採用64x64的lightmap,左邊是預設參數,你可以看到因為採用低解析度的lightmap導致陰影很雜亂,讓遊戲畫面變很醜;右圖設定了DistanceFieldPenumbraScale,將數值調整到4,讓邊界的陰影變模糊,這讓樹邊界話,偽裝出穿透的效果。

最棒的是,這個效果不會額外耗效能(it's free)。在某些情況下你可以用低解析度的lightmap就做出好看的效果!

另外的好處是,如果你希望有透光透明度效果但是陰影看起來卻是清晰的話,例如採用fogsheets,也會有改善。

以上文章翻譯自這裡

[隨選文章]


No comments: