说明:
在Unity开发中,难免有的时候会用到双面材质,可通过修改Shader达到想要的效果。
方法一:
直接在Shader代码头部添加一个Cull off 语句,实现强制双面渲染。
但是直接用Cull off的方式 有个重大的缺陷,这材质从两面看无论贴图、颜色、反光、照明情况,都是一模一样的,这并不符合大多数实际情况的常识。
但是直接用Cull off的方式 有个重大的缺陷,这材质从两面看无论贴图、颜色、反光、照明情况,都是一模一样的,这并不符合大多数实际情况的常识。
Shader "Custom/MyShader" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)//Tint Color
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 100
Pass {
Cull Off//直接删除剔除
Lighting Off
SetTexture [_MainTex] { combine texture }
SetTexture [_MainTex]
{
ConstantColor [_Color]
Combine Previous * Constant
}
}
}
}
效果如下:
方法二:
自制两张图片,分别对背面及正面裁剪
Shader "Custom/DoubleShader" {
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" }
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
}
}
}
}
效果如下: