看了一下 金屬戰爭這個demo.裡面有好多的特殊效果啊。
甚至貌似還用到了ds。很牛叉。看了一天也沒看完乙個demo.只能說這個demo實在是太多東西了。
集中火力看了一下他的扭曲怎麼實現的。
所有帶有扭曲的物體有個標識。用的標識的物體會被渲染到乙個 shimmer buffer 這個buffer和螢幕一樣大。用來作為mask查詢時候用。
每個畫素的 r 被用來做x偏移。g用來做y偏移. b他用來作為乙個係數。衰減亮度。 如果rg 的值和半黃一樣。也就是 rg - 0.5 == 0
那麼他認為不需要偏移。直接取原色。某則把rg變化到 -1 -1 之間做偏移。 然後在確認偏移後的顏色依然不是半黃。那麼這個點的取樣就變成了偏移後的點.做法這樣。但是為啥就會有扭曲效果了。。還沒研究清楚。。他這個是用到火。可能火本來就帶有扭曲屬性可能很正常。那要全是乙個色的東西不是就絕對不會扭曲??
float2 vnewtexcoord = vtexcoord;
float4 vheatbright = tex2d(g_samsrcaux, vtexcoord);
float2 vheat = vheatbright.rg;
if (any(vheat - 0.5))
}return tex2d(g_samsrccolor, vnewtexcoord) * (1
+ g_fshimmerbrightness * vheatbright.b);
熱浪扭曲效果
熱浪扭曲 每個人都對自然界中的這種大氣效果很熟悉 光線在穿過不同密度的介質時會彎曲 熱微光 熱空氣密度比冷空氣小 密度影響介質的折射率 熱空氣上公升的同時會被冷空氣替代,這會改變光射入眼睛的路線 渲染場景到rgba離屏快取 可渲染的紋理 顏色寫入rgb值 扭曲度寫入alpha通道 繪製全屏長方形到後...
熱浪扭曲效果
熱浪扭曲 每個人都對自然界中的這種大氣效果很熟悉 光線在穿過不同密度的介質時會彎曲 熱微光 熱空氣密度比冷空氣小 密度影響介質的折射率 熱空氣上公升的同時會被冷空氣替代,這會改變光射入眼睛的路線 渲染場景到rgba離屏快取 可渲染的紋理 顏色寫入rgb值 扭曲度寫入alpha通道 繪製全屏長方形到後...
unity Shader 扭曲效果
所謂扭曲就是擾動乙個物體的uv座標,表現出來就是乙個擾動效果,如火焰扭曲空氣,和水波對水底的影響。1.在shader 中我們需要一張當前渲染的紋理 2.給乙個物體渲染並使用當前紋理,用螢幕座標作為uv座標加上乙個擾動值 1.unity提供了抓取的pass grabpass unity官網介紹 每次遇...