在Unity的內建shader中,預設的顯像方式是 "Back-Face Culling",也就是背面是看不見的,如果需要呈現雙面法線時,我們可以透過修改Shader來達到正反面都顯示的效果。
1.預設的顯示模式,反面是看不見的。
2.新增一個自訂shader檔案。
3.以內建的Diffuse為例,修改其中的Pass函數,增加一行 "Cull Off"。
4.新增一個材質球並套用修改過的shader,即可達到雙面顯像的效果。
Shader "DoubleSided" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _MainTex ("Base (RGB)", 2D) = "white" {} //_BumpMap ("Bump (RGB) Illumin (A)", 2D) = "bump" {} } SubShader { //UsePass "Self-Illumin/VertexLit/BASE" //UsePass "Bumped Diffuse/PPL" // Ambient pass Pass { Name "BASE" Tags {"LightMode" = "PixelOrNone"} Color [_PPLAmbient] SetTexture [_BumpMap] { constantColor (.5,.5,.5) combine constant lerp (texture) previous } SetTexture [_MainTex] { constantColor [_Color] Combine texture * previous DOUBLE, texture*constant } } // Vertex lights Pass { Name "BASE" Tags {"LightMode" = "Vertex"} Material { Diffuse [_Color] Emission [_PPLAmbient] Shininess [_Shininess] Specular [_SpecColor] } SeparateSpecular On Lighting On Cull Off SetTexture [_BumpMap] { constantColor (.5,.5,.5) combine constant lerp (texture) previous } SetTexture [_MainTex] { Combine texture * previous DOUBLE, texture*primary } } } FallBack "Diffuse", 1 }