我做了一个材质,上面有一个jpg,所以整个东西是黑白的。有没有办法将黑色部分更改为任何颜色,然后将白色部分更改为任何颜色?
所以黑白材料可以是任何两种颜色,比如红色和蓝色等等?
发布于 2019-05-26 03:29:59
最简单的方法是使用纹理的一个通道在两个其他颜色之间进行细微处理。这确实意味着灰色会成为你选择的两种颜色之间的一种颜色,这可能并不总是可取的。
下面是一个使用此方法的简单漫反射表面着色器。您可以为其他用途创建类似的着色器,例如UI。
只需将此着色器放入您的项目中,将您的纹理修改为红色和绿色,然后将此着色器应用于您用于渲染纹理的材质。然后可以修改材质的属性,以修改渲染这两种颜色的颜色。
Shader "Custom/Recolourable" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
_BlackColor ("Black Color", Color) = (0,0,0,1)
_WhiteColor ("White Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 150
Cull Off
CGPROGRAM
#pragma surface surf Lambert noforwardadd
sampler2D _MainTex;
fixed4 _BlackColor;
fixed4 _WhiteColor;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = lerp(_BlackColor, _WhiteColor, c.r);
o.Alpha = c.a;
}
ENDCG
}
Fallback "Mobile/VertexLit"
}
https://stackoverflow.com/questions/56307792
复制相似问题