Unreal Engine 4:Pixel Depth Offset的使用
來源:
52vr |
責(zé)任編輯:傳說的落葉 |
發(fā)布時間: 2019-06-18 09:44 | 瀏覽量:
這篇文章解釋了Unreal Engine 4中的Pixel Depth Offset通道的使用心得,并且結(jié)合街頭霸王Ⅴ對該通道的使用來歸納出一些注意事項(xiàng)。
街霸Ⅴ所使用的游戲引擎是UE4,相對于街霸Ⅳ來說,街霸Ⅴ在畫面上有一個細(xì)節(jié)上的改進(jìn) —— 格斗的雙方模型不會出現(xiàn)直接的穿插,取而代之的是優(yōu)先確保一方模型的完整性。在這個效果中,就是用了Pixel Depth Offset的材質(zhì)通道。
Pixel Depth Offset說明
Pixel Depth Offset是UE4中材質(zhì)編輯器中的一個通道:
這個通道表示的是針對于這個像素在Depth Buffer上的值進(jìn)行一個Offset,說的通俗一些:那就是將這個像素的深度沿著攝像機(jī)到該像素的方向往后推一個值。
下圖中紅色的球使用的是我們自定義的材質(zhì),Pixel Depth Offset值目前為0。
將該值調(diào)整為50.0后:
可以看出,紅球右上角的一些像素被推至灰球表面之后了,因此導(dǎo)致灰球的一部分可以顯示出來。
街霸Ⅴ中的效果
可以看到,在兩個模型相互穿插的時候,Ryu的模型被完全顯示出來了,因此可以斷定是Ken的材質(zhì)中Depth Offset被設(shè)定為了一個大于0的值,整個模型的像素深度被往后推,從而顯示出Ryu的整個模型。
使用Pixel Depth Offset的注意事項(xiàng)
深度換算
由于Pixel Depth Offset的值代表的是將這個像素的深度沿著攝像機(jī)到該像素的方向往后推一個值。如果將其設(shè)定為一個固定的值,則往往會出現(xiàn)V向量與N向量的夾角越大,平面向后推的像素深度越小的情況。
上圖中描述了如何將一個Surface深度向后推一個距離。因此該值不能設(shè)定為一個值,而應(yīng)當(dāng)設(shè)定為想要后推距離除以N向量與V向量的點(diǎn)乘:
通過這樣的方法能夠?qū)⒁粋€面一起推后一個距離,而不會出現(xiàn)一個面上的不同像素推后距離不同的情況。
詭異的陰影
這應(yīng)該是Pixel Depth Offset所產(chǎn)生的最嚴(yán)重的副作用了 —— 由于針對于深度的操作都是基于Depth Buffer,這樣就意味著雖然深度改變了,陰影還是按照原來的情況計算。這個情況目前(包括4.11及之前)無解,在街霸Ⅴ中也有這種問題,分析如下。
這種情況可以通過減弱陰影顏色來緩解,但是目前無法避免。Epic的官方回復(fù)是已經(jīng)在解決中,但是還需要做一些工作才行。
-
分享到:
相關(guān)文章
網(wǎng)友評論
您需要登錄后才可以發(fā)帖 登錄 | 立即注冊
關(guān)閉
- 用戶名:
- 密 碼:
- 驗(yàn)證碼: 看不清? 點(diǎn)擊更換
- 忘記密碼?
全部評論:0條
推薦
熱門