這是一張燥波
提供給玻璃的具有透明效果的,一般用黑白灰貼圖,alpha通道裡有一種說法是黑透白不透,灰色是半透 。
shader為
shader "mirrors/transparent bumped specular flat"
_blendlevel("main material blend level",range(0,1))=1
_speccolor ("specular color", color) = (0.5, 0.5, 0.5, 0)
_shininess ("shininess", range (0.01, 1)) = 0.078125
_bumpmap ("normalmap", 2d) = "bump" {}
_bumpness ("bump rate",range(0,1))= 1
_ref ("for mirror reflection,don't set it!", 2d) = "white" {}
}subshader
grabpass
}cgprogram
#pragma su***ce surf blinnphong
#pragma target 3.0
#pragma debug
sampler2d _maintex;
sampler2d _bumpmap;
sampler2d _ref;
fixed4 _color;
half _blendlevel;
half _transparency;
half _bumpness;
half _shininess;
sampler2d _grabtexture;
float4 _grabtexture_texelsize;
half _distortion;
struct input ;
void surf (input in, inout su***ceoutput o)
endcg
}fallback "transparent/vertexlit"
}
不需要法線貼圖只調透明度引數就可以了
二 、水杯,高腳杯似的玻璃表現shader
shader "mirrors/transparent specular sphere"
_blendlevel("main material blend level",range(0,1))=1
_speccolor ("specular color", color) = (0.5, 0.5, 0.5, 0)
_shininess ("shininess", range (0.01, 1)) = 0.078125
_ref ("for mirror reflection,don't set it!", 2d) = "white" {}
}subshader
grabpass
}cgprogram
#pragma su***ce surf blinnphong
#pragma target 3.0
#pragma debug
sampler2d _maintex;
sampler2d _ref;
fixed4 _color;
half _blendlevel;
half _transparency;
half _shininess;
sampler2d _grabtexture;
float4 _grabtexture_texelsize;
half _distortion;
struct input ;
void surf (input in, inout su***ceoutput o)
endcg
}fallback "transparent/vertexlit"
}
shader 玻璃效果
玻璃效果主要是折射效果的計算和反射效果的計算。折射 1.利用grass pass對當前螢幕的渲染影象進行取樣 2.得到法線貼圖對折射的影響 3.對採集的螢幕影象進行關於法線方向上的扭曲和偏移,以模擬折射效果 反射 主要利用環境貼圖產生反射的殘影,並和主貼圖取樣結果混合 得到反射和折射的結果後,以乙個...
玻璃效果的實現
private void form1 paint object sender,painteventargs e using pen pen new pen cfg.inborder rectangle rec2 new rectangle rec.x 2,rec.y 2,rec.width 4,re...
Shader學習的基礎知識(十四)玻璃效果
這次我們使用第二種渲染紋理方式grabpass來製做乙個玻璃效果。非常簡單,用一張法線紋理來修改法線資訊,通過乙個cubemap來模擬玻璃反射,而在模擬折射時,則使用了grabpass獲取玻璃後面的螢幕影象,並在切線空間中進行偏移後,再對螢幕影象進行取樣來模擬。建立乙個立方體和乙個圓,圓放在立方體裡...