主要是通過反射和折射來達到透明的效果,用菲涅爾來混疊。
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...