Unity Shader實現玻璃材質效果

2022-09-26 02:27:12 字數 881 閱讀 6880

主要是通過反射和折射來達到透明的效果,用菲涅爾來混疊。

shader部分:

shader "unlit/crystal"

//折射角度

_etaratio("etaratio", range(0, 1)) = 0

//菲涅爾係數

_fresnelbias("fresnelbias",float)=0.5

_fresnelscale("fresnelscale",float)=0.5

_fresnelpower("frezwowdvwkytsnelpow",float)=0.5

} subshader

lod 100

pass

; struct v2f

; samplercube _cube;

float _etaratio;

float _fresnelbias;

float _fresnelscale;

float _fresnelpower;

//計算視線反射方向(入射角,法線)

float3 caculatereflectdir(float3 i, float3 n)

//計算視線折射方向

float3 caculaterefractdir(float3 i, float3 n, float etaratio)

//計算菲涅爾效應

float caculatefresnel(float3 i, float3 n)

v2f vert (appdata v)

fixed4 frag (v2f i) : sv_target

endcg

} }}

本文標題: unity shader實現玻璃材質效果

本文位址:

Unity Shader 玻璃效果

乙個玻璃效果主要分為兩個部分,一部分是折射效果的計算,另一部分則是反射。下面分類進行討論 折射 1.利用grass pass對當前螢幕的渲染影象進行取樣 2.得到法線貼圖對折射的影響 3.對採集的螢幕影象進行關於法線方向上的扭曲和偏移,以模擬折射效果 反射 主要利用環境貼圖產生反射的殘影,並和主貼圖...

Unity Shader實現模糊效果

今天分享乙個超簡單實現模糊效果的方法,先上圖 核心 就這句 注意要在3.0以上的版本才能使用 在取樣後做偏移取樣再疊加,效果與下面的 類似 float4 frag v2f o sv target 下面的完整 shader custom testshader40 scale scale range 0...

Unity Shader實現翻書效果

這裡就隨便用的一張紋理了,我們還是稱為 翻木板 吧,哈哈。實現過程 其實這個效果實現起來還是挺簡單的,大概思路其實就是讓所有頂點都繞z軸旋轉,並且通過正余弦使之帶有一點弧度。下面開始讓我們一步一步的實現該效果。首先開啟unity新建乙個工程,場景,並且建立乙個名為openbookeffect的sha...