[转]unity3d中创建双面材质

在其它三维软件中设置好的双面材质导入到unity3d中就失去了效果,不过我们可以通过自定义材质来在unity3d中实现双面材质的效果。步骤如下:
1、在资源库中新建一新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
}

然后在模型材质中更改shader为上面新建的Nature/Vegitation Vertex Lit这个shader即可实现双面效果。

posted @ 2013-09-17 15:28  leo_as南京  阅读(1026)  评论(0编辑  收藏  举报