【Unity】颜色混合计算

在图形渲染中,颜色混合(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 参数,可以实现其他颜色混合模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日力扣刷题day02(从零开始版)

文章目录 2024.5.23(5题)1929. 数组串联题解一题解二 1281. 整数的各位积和之差题解一题解二 1137. 第 N 个泰波那契数题解一题解二 2413. 最小偶倍速题解一题解二 2778. 特殊元素平方和题解一题解二 2024.5.23(5题) 1929. 数组串…

【八股系列】webpack打包时Hash码是怎样生成的?随机值存在一样的情况,如何避免?

文章目录 1. Hash码的生成2. 避免Hash码一致2.1 确保文件内容唯一:2.2 使用chunkhash:2.3 增加文件名前缀:2.4 优化哈希算法:2.5 使用Module IDs:2.6 配置webpack输出选项: 3. 配置生成Hash的规则 1. Hash码…

简单四步完成基于云服务器ARL资产侦察灯塔系统搭建

简单四步完成基于云服务器ARL资产侦察灯塔系统搭建及使用 前言 官网介绍:ARL全称-Asset Reconnaissance Lighthouse,中文含义:资产侦察灯塔系统。 旨在快速侦察与目标关联的互联网资产,构建基础资产信息库。 协助甲方安全团队或…

Elasticsearch reindex操作

需求 我有一个index:test_1,这个index由于各种原因,mapping中出现了下面的type: "u_ori_id_list" : {"type" : "text","fields" : {"keyword" : {"type" : "…

DragonKnight CTF复现(一)

这次的 re 题也是挺难的,按 wp 来学习一波 elec_go 下次遇到这种给了很多东西,又不知道怎么分析的,先百度一下。 Electron程序逆向(asar归档解包)_asar解包-CSDN博客 [原创] electron开发、打包与逆向分析-软件逆向-…

AutoDL搭建 ChatGLM3

租用新实例 这里选择的西北 B 区、RTX 409024GB 创建虚拟环境并激活 # 安装虚拟环境至数据盘 conda create --prefix /root/autodl-tmp/envs/chatglm3-demo python3.10# 激活虚拟环境 conda activate /root/autodl-tmp/envs/chatglm3-demo拉取ChatGLM3仓库代码 # 开启学术…

代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信、 15. 三数之和、18. 四数之和

454.四数相加II 题目链接: 454.四数相加II 文档讲解:代码随想录 状态:没做出来,没想到考虑重复的情况! 题解: public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {// 结果计数…

Python调用科大讯飞在线语音合成API --内附完整项目

一,注册讯飞账号,并实名制。 讯飞开放平台-以语音交互为核心的人工智能开放平台 (xfyun.cn) 二、找到音频合成,按页面提示申请免费试用。 在线语音合成_免费试用-讯飞开放平台 (xfyun.cn) 三、申请免费使用后,找到API信息如下…

Oracle Active DataGuard 启用实时应用 REDO

Oracle Active DataGuard 启用实时应用 REDO 启用 ADG Real-Time apply 模式(只要主库事务提交,备库这边即开始应用事务日志):1、将备机先退出恢复管理模式 SQL> alter database recover managed standby database cancel; 2、…

vscode远程登录阿里云服务器【使用密钥方式--后期无需再进行密码登录】【外包需要密码】

1:windows主机上生成【私钥】【公钥】 1.1生成公钥时不设置额外密码 1.2生成公钥时设置额外密码【给外包人员使用的方法】 2:在linux服务器中添加【公钥】 3:本地vscode连接linux服务器的配置 操作流程如下 1.1本地终端中【生成免密登录…

从0到100,渠道码如何成为SaaS企业增长的加速器

在当今数字化时代,企业的增长策略已不再是单一和线性的。渠道码的出现,为SaaS(软件即服务)企业提供了一种全新的、多维度的增长途径,真正实现了从0到100的快速增长。 一、渠道码的高可定制性和灵活性,为Sa…

基于.NetCore和ABP.VNext的项目实战二:Swagger

Mag.Blog.Swagger层添加Volo.Abp.AspNetCore和Swashbuckle.AspNetCore包,引用实体层.Domain 添加模块类MagBlogSwaggerModule.cs,依赖MagBlogDomainModule模块,并且重写ConfigureServices和OnApplicationInitialization方法 namespace Mag.Blog.Swagger {[DependsOn(typeof…

位置编码(三) 2D旋转位置编码

Rotary Position Embedding for Vision Transformer https://arxiv.org/abs/2403.13298 Transformer升级之路:4、二维位置的旋转式位置编码 https://kexue.fm/archives/8397 Transformer升级之路:17、多模态位置编码的简单思考 https://kexue.fm/archive…

错误提示:“由于找不到steam_api.dll,无法继续执行代码”修复方法,缺少steam_api.dll文件原因

在尝试运行某些游戏或程序时,用户可能会遇到一个常见的错误提示:“由于找不到steam_api.dll,无法继续执行代码”。这个错误信息表明,系统在启动程序或游戏时无法定位到必要的steam_api.dll文件,这是一个关键的动态链接…

第五更 | 单引号、转义符、双引号、反引号

单引号 在单引号内的都是纯字符,哪怕是空格、特殊字符 [rootyaomm yaomm]# touch ‘*.log’ ##→创建一个名称带【*】的log文件 [rootyaomm yaomm]# ls *.log ##→使用单引号也可以将其当作普通字符 *.log 转义符 转义符可以将特殊字符,例如…

香橙派 AIpro的NPU随手记体验日记

昇腾AI 技术路线 8TOPS INT8(FP16)AI算力 LPDDR4X 8GB/16GB 📅 20240525 开放了原理图和源码,功能接口就不描述了手册都有描述,新手好好学习可以从底层覆盖到应用一个载板拿下 完成香橙派AIpro上手体验 镜像安装&am…

C++学习---string模拟实现(2)

1.随机插入一个字符串 (1)insert函数插入一个字符的方法我们在之前的模拟实现里面已经搞过了,那个里面要注意的是这个全体向后挪动的循环过程,这个里面我们要实现的是插入字符串的模拟实现; (2&#xff0…

网上3d全景虚拟交互展馆沉浸式体验让客户和使用者都满意

在数字化浪潮席卷而来的今天,3D场景网站已成为众多行业展现创意与实力的新舞台。然而,传统的3D建模软件往往因其复杂性和高门槛,让许多渴望创建逼真3D场景的用户望而却步。 幸运的是,华锐视点推出了搭建3D场景网站的编辑器——一款…

怎么做图片海报二维码?扫码查看图片内容

现在很多的宣传推广海报会放入二维码中,然后将二维码分享给用户后,通过扫码的方式来查看图片内容,从而获取自己需要的信息,经常在活动宣传、商品推广、旅游攻略等场景下使用。二维码可以提供更加便捷的内容获取方式,让…

[图解]企业应用架构模式2024新译本讲解02-表数据入口

1 00:00:00,420 --> 00:00:04,330 这个案例,我们就是用书上的案例了 2 00:00:06,080 --> 00:00:08,860 收入确认的一个案例 3 00:00:09,510 --> 00:00:11,100 书上讲了,收入确认 4 00:00:13,330 --> 00:00:15,270 就是说,你给…