聚爆的扭曲刀光是怎麼實現的?
01-13
具體什麼演算法,自己從網上找的扭曲的Shader在手機上特別卡,他們的卻很順
熱擾動,非常常見的一個效果!~看起來高大上,但其實原理很簡單。
以下是Unity中的實現方式,實際用在項目中 還需要配合美術做。
簡單來講就是以下4個步驟
0.準備一張噪音貼圖
1.利用Unity的grabpass獲取一張屏幕空間的RT
2.在頂點著色器中計算用來採樣grabRT的uv坐標以及採樣噪音貼圖的uv坐標
3.在片元著色器中混合噪音以及grabRT
下面是源碼:meta-42/HeatDistortion
你用了 grab pass
這個換成自己的render texture就好了
粒子材質+半透明貼圖+模型+貼圖位移 模擬光效
xeffect 也是grabpass, 效率很差在攝像機OnRenderImage中. 用RenderTexture 畫grab layer 中的扭曲圖.然後疊加這個到target。
但這種遮擋有時是不對的,如聚爆那個圖,穿了牆
別想了,完全的熱干擾必須用grabtex,這個需要等待一次渲染,手機是帶不動的。用rendertex貌似能緩解下,但同樣是二次渲染。最好用一些貼圖或者自己寫點特殊的光照來模擬下。比如用兩張貼圖。一張是刀光,一張用來扭曲刀光。
rendertexture 效率不是很高 去看看xeffect 作者的一個刀光插件能通過純shader實現是最方便的
推薦閱讀:
※為什麼IT行業二本院校找實習這麼難?
※怎樣看待越來越多cocos2dx程序員轉unity3d,unity是否是大勢所趨?
※Unity 項目中怎樣正確的使用 Lua?
※如何零基礎系統學習3D遊戲開發?
※在Unity中製作動畫,如何兼顧動畫和物理效果將人物頭髮處理到最佳效果?