首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单位黑白材料如何改变颜色个体颜色(黑白)

单位黑白材料如何改变颜色个体颜色(黑白)
EN

Stack Overflow用户
提问于 2019-05-26 02:52:09
回答 1查看 1.9K关注 0票数 0

我做了一个材质,上面有一个jpg,所以整个东西是黑白的。有没有办法将黑色部分更改为任何颜色,然后将白色部分更改为任何颜色?

所以黑白材料可以是任何两种颜色,比如红色和蓝色等等?

EN

Stack Overflow用户

发布于 2019-05-26 03:29:59

最简单的方法是使用纹理的一个通道在两个其他颜色之间进行细微处理。这确实意味着灰色会成为你选择的两种颜色之间的一种颜色,这可能并不总是可取的。

下面是一个使用此方法的简单漫反射表面着色器。您可以为其他用途创建类似的着色器,例如UI。

只需将此着色器放入您的项目中,将您的纹理修改为红色和绿色,然后将此着色器应用于您用于渲染纹理的材质。然后可以修改材质的属性,以修改渲染这两种颜色的颜色。

代码语言:javascript
运行
复制
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"
}
票数 -1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56307792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档