unity中混合兩種顏色, 使用shader和shader graph
在Unity的Shader中,如果你已經(jīng)有了兩種顏色,你可以使用混合模式將它們相互疊加。混合模式可以在Shader中使用Blend指令來實現(xiàn)。
### 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函數(shù)從_MainTex紋理中獲取當前像素的顏色,分別與_Color1和_Color2相乘,然后將它們相加得到最終的顏色。
你可以根據(jù)需要調(diào)整混合模式和顏色的值來實現(xiàn)你想要的效果。
### Shader Graph
以下是在Unity中使用Shader Graph實現(xiàn)混合模式的詳細步驟:
1. 在Unity編輯器中打開一個項目,然后在Project面板中右擊,選擇`Create > Shader > PBR Graph`,創(chuàng)建一個新的Shader Graph。
2. 在Shader Graph界面中,你會看到一個默認的Master節(jié)點。你可以從節(jié)點庫中找到Blend節(jié)點并拖拽到Graph中。
3. 將兩個Color節(jié)點分別命名為Color1和Color2。然后將它們連接到Blend節(jié)點的Color1和Color2輸入上。這些節(jié)點可以在左側的節(jié)點庫中找到。
4. 最后,將Blend節(jié)點的輸出連接到你的材質(zhì)的顏色屬性上。你可以在Shader Graph右上角的面板中找到材質(zhì)屬性。
5. 調(diào)整Color1和Color2的值以及Blend的模式,實現(xiàn)你想要的效果。