首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在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的模式,实现你想要的效果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230307A05L3800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券