0
我已将顶点颜色分配给Maya(Image1)的平面,并使用显示顶点颜色的VertexColorShader将其导出到Unity。顶点颜色无法正常工作
我预计结果会像Image3,但是发生的事情是它像Image2一样出来。
请看看这些图像。
我着色器是相当简单的。它只是使顶点颜色可见。
vert函数获取每个顶点颜色并将其存储在输出变量中。
surf函数从变量中检索颜色并将其设置为片段的颜色。我认为结果会像Image3(我用Photoshop制作这个图像),但实际上是以Image2的形式出现的。
怎么来的?
顶点之间的每个片断都不知道它的颜色,因为vert函数没有在顶点之间调用,所以我认为除了顶点的位置之外,plain的颜色几乎是白色的。
请问谁解释我为什么会发生这种情况?
Shader "MyShader/VertexColorShader" {
Properties {
}
SubShader {
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Lambert vertex:vert
struct Input {
float4 vertColor;
};
void vert(inout appdata_full v, out Input o) {
UNITY_INITIALIZE_OUTPUT(Input, o);
o.vertColor = v.color;
}
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = IN.vertColor.rgb;
}
ENDCG
}
}
干杯,
技术
你的颜色敏感的眼睛的荣誉,但我真的没有看到区别.. ?? – Absinthe
感谢您的回复。你没有看到Image2和Image 3之间的区别?真的吗? – tech
2和3比较苹果和梨,一个是特克斯地图,一个是垂直 – Absinthe