Shader中Cull指令的使用:
通过Cull指令来控制需要剔除那个面的渲染图元。Cull指令的语法如下:
Cull Back | Front | Off
设置为Back,背对摄像机的渲染图源就不会被渲染,设置为Front,朝向摄像机的渲染图元就不会被渲染。
设置为Off就会关闭剔除功能,即所有图元都会被渲染。
Unity3d制作双面材质:
步骤:
-
在项目面板中创建plane作为演示。
-
导入两张图片作为贴图演示。
-
在项目面板中创建DoubleSurface shader
-
打开创建的shader进行编辑:
Shader "Custom/DoubleSurface" {
Properties{
_Color("Main Color", Color) = (1,1,1,1)//Tint Color
_MainTex("Base (RGB)", 2D) = "white" {} //背面纹理
_MainTex_2("Base (RGB)", 2D) = "white" {} //正面纹理
}
SubShader{
Tags{ "RenderType" = "Opaque" } //设置渲染类型 Opaque不透明
LOD 100
Pass{
Cull Front //关闭正面渲染
Lighting Off
SetTexture[_MainTex]{ combine texture }
SetTexture[_MainTex]
{
ConstantColor[_Color]
Combine Previous * Constant
}
}
Pass
{
Cull Back //关闭背面渲染
Lighting Off
SetTexture[_MainTex_2]{ combine texture }
SetTexture[_MainTex_2]
{
ConstantColor[_Color]
Combine Previous * Constant
}
}
}
}
5.创建好之后把DoubleSurface shader附给plane的材质
6.选则导入的图片,如下图所示:
参考:
《Shader入门精要》,冯乐乐