当前位置: 首页> 财经> 产业 > 【Unity】颜色混合计算

【Unity】颜色混合计算

时间:2025/7/9 0:53:49来源:https://blog.csdn.net/perfect2011/article/details/139271387 浏览次数:0次

在图形渲染中,颜色混合(Color Blending)是指将多个颜色值组合在一起以生成最终显示的颜色。颜色混合技术广泛用于处理半透明效果、光照效果和后期处理效果。以下是一些常见的颜色混合模式:

1. 正常混合(Normal Blending)

这是最常用的混合模式,将源颜色和目标颜色按源颜色的 alpha 值进行线性插值。

公式:
在这里插入图片描述

2. 加法混合(Additive Blending)

将源颜色和目标颜色直接相加,用于实现光晕、火焰等效果。

在这里插入图片描述

3. 乘法混合(Multiplicative Blending)

将源颜色和目标颜色逐分量相乘,用于阴影和深度效果。

在这里插入图片描述

4. 叠加混合(Overlay Blending)

结合乘法和屏幕混合模式,根据目标颜色值调整源颜色的混合方式,用于增加对比度和细节。

在这里插入图片描述

5. 屏幕混合(Screen Blending)

将源颜色和目标颜色逐分量反转、相乘后再反转,用于产生发光和高亮效果。

在这里插入图片描述

6. 差值混合(Difference Blending)

计算源颜色和目标颜色的差值,用于创建对比效果。

在这里插入图片描述

7. 减法混合(Subtractive Blending)

将源颜色从目标颜色中减去,用于实现暗角和阴影效果。
在这里插入图片描述

8. 颜色减淡(Color Dodge)

将目标颜色除以源颜色的反转,用于创建高亮和强调效果。

在这里插入图片描述

9. 颜色加深(Color Burn)

将目标颜色反转后除以源颜色的反转,然后反转结果,用于增加深度和暗部细节。

在这里插入图片描述

10. 亮度(Lighten)

选择源颜色和目标颜色中的较亮者作为结果颜色。

在这里插入图片描述

11. 暗度(Darken)

选择源颜色和目标颜色中的较暗者作为结果颜色。

在这里插入图片描述

示例代码

在 Unity Shader 中,可以通过设置混合模式来实现这些颜色混合效果。以下是一个示例代码,用于设置加法混合模式:

Shader "Custom/AdditiveBlend"
{Properties{_MainTex ("Main Texture", 2D) = "white" {}}SubShader{Tags { "RenderType"="Transparent" }LOD 200Blend One One  // 设置加法混合模式Pass{CGPROGRAM#pragma vertex vert#pragma fragment fragsampler2D _MainTex;struct appdata_t{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata_t v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);return col;}ENDCG}}
}

在这个示例中,Blend One One 表示启用加法混合模式,将源颜色和目标颜色相加。通过修改 Blend 参数,可以实现其他颜色混合模式。

关键字:【Unity】颜色混合计算

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: