unity中混合两种颜色, 使用shader和shader graph

您所在的位置:网站首页 unity颜色叠加材质 unity中混合两种颜色, 使用shader和shader graph

unity中混合两种颜色, 使用shader和shader graph

2024-07-16 00:43| 来源: 网络整理| 查看: 265

在Unity的Shader中,如果你已经有了两种颜色,你可以使用混合模式将它们相互叠加。混合模式可以在Shader中使用Blend指令来实现。### Shader```Shader "Custom/MyShader" { Properties { _Color1 ("Color 1", Color) = (1,1,1,1) _Color2 ("Color 2", Color) = (1,1,1,1) } SubShader { Tags {"Queue"="Transparent" "RenderType"="Transparent"} LOD 200 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; }; struct v2f { float4 vertex : SV_POSITION; float2 uv : TEXCOORD0; }; sampler2D _MainTex; float4 _Color1; float4 _Color2; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.vertex.xy * 0.5 + 0.5; return o; } fixed4 frag (v2f i) : SV_Target { fixed4 c1 = _Color1 * tex2D(_MainTex, i.uv); fixed4 c2 = _Color2 * tex2D(_MainTex, i.uv); fixed4 blendedColor = c1 + c2; return blendedColor; } ENDCG } }}```在上面的例子中,我们将两种颜色分别存储在_Color1和_Color2中,然后使用tex2D函数从_MainTex纹理中获取当前像素的颜色,分别与_Color1和_Color2相乘,然后将它们相加得到最终的颜色。你可以根据需要调整混合模式和颜色的值来实现你想要的效果。### Shader Graph以下是在Unity中使用Shader Graph实现混合模式的详细步骤:1. 在Unity编辑器中打开一个项目,然后在Project面板中右击,选择`Create > Shader > PBR Graph`,创建一个新的Shader Graph。2. 在Shader Graph界面中,你会看到一个默认的Master节点。你可以从节点库中找到Blend节点并拖拽到Graph中。3. 将两个Color节点分别命名为Color1和Color2。然后将它们连接到Blend节点的Color1和Color2输入上。这些节点可以在左侧的节点库中找到。4. 最后,将Blend节点的输出连接到你的材质的颜色属性上。你可以在Shader Graph右上角的面板中找到材质属性。5. 调整Color1和Color2的值以及Blend的模式,实现你想要的效果。

8bfe1411a9932e675d1f971e84c232fd.jpeg



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3