? 久久久久久精品成人鲁丝电影,青青久久人人97超碰,中文字幕之人妻中出
聯(lián)系我們

給我們留言

聯(lián)系我們

地址:福建省晉江市青陽(yáng)街道洪山路國(guó)際工業(yè)設(shè)計(jì)園納金網(wǎng)

郵箱:info@narkii.com

電話:0595-82682267

(周一到周五, 周六周日休息)

當(dāng)前位置:主頁(yè) > 3D教程 > 圖文教程

UnrealEngine4Smear Frame效果的實(shí)現(xiàn)與分析

來(lái)源: 52vr | 責(zé)任編輯:傳說(shuō)的落葉 | 發(fā)布時(shí)間: 2019-06-13 08:37 | 瀏覽量:
這篇文章介紹了類似守望先鋒中的幀轉(zhuǎn)移模糊(Smear Frame)效果。
 
該效果由Jan Kaluza實(shí)現(xiàn),本博客的介紹已獲得原作者同意。
 
Github地址:傳送門
 
效果
 
效果圖如下,兩個(gè)模型實(shí)際上都是球: 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
Tessellation
 
在本質(zhì)上,這個(gè)效果是使用PN Tessellation來(lái)對(duì)模型進(jìn)行曲面細(xì)分,然后使用world displacement通道來(lái)進(jìn)行頂點(diǎn)的偏移操作。Tessellation能夠給模型帶來(lái)更多的細(xì)節(jié),例如盔甲上的凹痕、地形的小起伏等。
 
但是需要注意的是:Tessellation非常耗費(fèi)資源,并且Unreal Engine 4在目前為止(4.12.4)也只支持Windows平臺(tái)的Tessellation。所以如果需要使用Tessellation的話,需要注意性能以及多平臺(tái)的處理。
 
邏輯實(shí)現(xiàn)
 
需要實(shí)現(xiàn)這個(gè)功能,首先需要獲得當(dāng)前物體在前一段時(shí)間的偏移量,因此這里創(chuàng)建了一個(gè)Component,在每次Tick的時(shí)候更新Previous Position。在使用Previous Position進(jìn)行計(jì)算最后,將最后的偏移量傳入Dynamic Material Instance進(jìn)行計(jì)算即可。
 
完整BP如下:
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
材質(zhì)實(shí)現(xiàn)
 
前提條件
 
該材質(zhì)需要啟用Tessellation,選中D3D11Tessellation,設(shè)定為PN Triangles,記得啟用Adaptive Tessellation。
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
此外,由于在Vertex Shader中,無(wú)法轉(zhuǎn)換到Local Transform進(jìn)行計(jì)算,所以這里需要兩個(gè)額外的UV通道用來(lái)傳遞Position信息,因此需要進(jìn)行設(shè)定。
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
材質(zhì)函數(shù)封裝
 
CustomUV通道
 
在這個(gè)材質(zhì)函數(shù)中,將Position的X、Y信息儲(chǔ)存在Custom UV1中,將Z儲(chǔ)存在Custom UV2中。
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
偏移量的計(jì)算
 
Smear效果的特征之一就是這個(gè)模型的后面那一塊(運(yùn)動(dòng)反方向)會(huì)產(chǎn)生轉(zhuǎn)移模糊的效果,因此需要將Smear的方向與VertexNormal進(jìn)行點(diǎn)乘,大于0的頂點(diǎn)才進(jìn)行處理。
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
整個(gè)材質(zhì)函數(shù)便封裝完畢,使用方法如下:
 

Unreal Engine 4 —— Smear Frame效果的實(shí)現(xiàn)與分析

 
注意事項(xiàng)
 
在Component的邏輯中可以看到Smear的表現(xiàn)效果與幀率有比較大的相關(guān)性。在幀率很低的情況下會(huì)導(dǎo)致Smear過(guò)大,在幀率很高的情況下則會(huì)導(dǎo)致Smear過(guò)小。
 
一種可行的方法是針對(duì)于Component進(jìn)行鎖幀處理,讓其固定在一個(gè)幀率下運(yùn)行即可。
 
我進(jìn)行了這一塊的處理,并且已經(jīng)Pull Request。
 

相關(guān)文章
網(wǎng)友評(píng)論

您需要登錄后才可以發(fā)帖 登錄 | 立即注冊(cè)

關(guān)閉

全部評(píng)論:0條

推薦
熱門