unityshader 晶格化消散

unityshader 晶格化消散

前言

幾何著色器,而且作為最近才可編程的著色器,在網(wǎng)上看到他的案例也少得可憐。幾何著色器在我們平時的項目中使用的很少,畢竟我們開發(fā)過程對于光照的需求,以及他的性能的優(yōu)化幾乎占了shader使用的六七十。但是對于新型的著色器,他的很多功能潛力都有待開發(fā)。下面就是他的運用。

效果

話不多少 先看效果


平面的消散效果(UI特效)
3d物體及模型的消散效果


不熟悉幾何著色器的同學可以走下面鏈接進去

https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-geometry-shader#return-value

功能展示



晶片的顏色


晶片消融的方向
晶片的大小
消融最大的距離


消融的角度


3D 近距離晶片展示


幾個基本原理

1 RGB通道噪點圖——處理隨機效果。 看到上面的按理可以知道有很多的隨機的行為,列如圖片從左邊隨機的消散,每個消散的晶片隨機的位置,和隨機的旋轉方向等都是使用一張噪點圖。

2 構建平移旋轉矩陣——處理晶片的移動和旋轉。應為我們并沒有使用貼圖記錄每一個晶片的位置,所以每一個晶片位置需要根據(jù)時間和噪點圖,推斷出其位置和旋轉角度。

3 向量于面相交的數(shù)學原理——處理從哪個方向消融以及消融的方向。從上面可以看到,消融的方向以及晶塊的消散方向都是可以根據(jù)materal自定義的。用途更廣泛了。

注意事項

因為是幾何著色器的原因,所以本身對Gpu硬件的需求也很高,應該是shader4.0以后的。所以可能很多手機并不能支持這種消耗的著色器。但是電腦使用幾何著色器確是很好。

對于我寫的這個shader,也并不支持逐像素光照。畢竟每一個頂點要獲取法線。在我自己構建的兩個矩陣下,每個定點要多兩次矩陣轉換。對性能來說是個不少的消耗。

結束

這個是面片的形式往外擴散,也可以做成幾何體,但是感覺面片的形式可能更加符合審美,并沒有發(fā)出去。

通過測試,對性能的消耗還是有的。畢竟這個著色器暫時提供的借口有限,能夠優(yōu)化的地方也相對比較少。

功能有不足之處或者有問題可以加我哦:2364823151

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容