在Unity中,如何防止我的3D文字在黑暗中发光?
例如,我正在使用以下着色器代码,但文本比其他物体更亮/自发光。切换到“灯光打开”可以消除发光,但也会消除材质颜色并变为黑色。
如何解决这个问题?非常感谢!
例如,我正在使用以下着色器代码,但文本比其他物体更亮/自发光。切换到“灯光打开”可以消除发光,但也会消除材质颜色并变为黑色。
如何解决这个问题?非常感谢!
Shader "GUI/3D Text Shader - Cull Back" {
Properties {
_MainTex ("Font Texture", 2D) = "white" {}
_Color ("Text Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
Lighting Off Cull Back ZWrite Off Fog { Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass {
Color [_Color]
SetTexture [_MainTex] {
combine primary, texture * primary
}
}
}
_Color
属性的亮度吗? - LeceTextMesh
组件似乎不会生成网格法线,因此着色器的光照计算将会出错(如果有编译的话)。这就解释了为什么Lighting On
输出黑色。没有访问TextMesh
内部并受限于固定功能着色器的限制,一个自定义的着色器可能是你在这里唯一的选择。如果您愿意,我可以发布一个进行测试? - Lece