【URP】Unity[后处理]色彩偏移,中间调,高光增强-Lift,Gamma,Gain

news/2025/11/8 17:30:02/文章来源:https://www.cnblogs.com/SmalBox/p/19202735

【从UnityURP开始探索游戏渲染】专栏-直达

Lift、Gamma和Gain是Unity URP后处理系统中基于ASC CDL(美国电影摄影师协会色彩决策列表)标准的色彩分级工具,用于分别控制暗调、中间调和高光的色彩偏移与明度调整。以下是详细解析:

核心功能与参数含义

Lift

  • 作用:控制暗调区域(Dark Tones)的色彩偏移和明度
  • 参数:
    • 轨迹球:选择暗调色调偏移目标颜色
    • 滑块:调整轨迹球颜色的明度值
  • 用例:增强阴影的冷色调(如电影感蓝色阴影)

Gamma

  • 作用:通过幂函数调整中间调(Mid-range Tones)
  • 参数:
    • 轨迹球:选择中间调色调偏移目标颜色
    • 滑块:控制中间调明度
  • 用例:修正肤色偏黄问题

Gain

  • 作用:增强高光(Highlights)信号强度
  • 参数:
    • 轨迹球:选择高光色调偏移目标颜色
    • 滑块:调整高光明度
  • 用例:模拟阳光照射的暖色高光

发展历史与技术背景

该技术源自电影工业的ASC CDL标准,用于跨平台色彩分级一致性。Unity HDRP/URP通过Volume系统将其引入实时渲染,替代了传统分离色调(Split Toning)的非标准化操作。Gamma校正则源于CRT显示器的非线性响应曲线(gamma≈2.2),现代渲染管线通过线性工作流(Linear Space)避免计算失真。

原理

Lift、Gamma和Gain是Unity URP后处理中基于ASC CDL标准的色彩分级工具,其底层原理涉及色彩空间转换与影调分离控制:

底层原理

  • Lift
    • 原理:通过向量乘法调整暗调区域(RGB值<0.18),公式为output = input + (liftColor * (1 - input)),其中liftColor为轨迹球选择的HDR颜色
    • 示例:设置lift为(0.1, 0, -0.05)会使阴影偏蓝且降低暗部密度
  • Gamma
    • 原理:对中间调(0.18<RGB值<0.8)应用幂函数output = pow(input, 1/gammaValue),gammaValue通过滑块与轨迹球颜色混合计算
    • 示例:gamma设为(0.9, 1.1, 1.0)会使红色通道更亮、绿色更暗
  • Gain
    • 原理:对高光(RGB值>0.8)进行线性增强output = input * gainColor,gainColor包含轨迹球色相和滑块明度
    • 示例:gain设为(1.2, 1.0, 0.8)会创建暖色高光效果

实现流程示例

  • 通过Volume系统访问LiftGammaGain覆盖层

  • 使用Vector4传递参数(RGB分量+Alpha保留)

  • 实时修改参数会立即影响渲染管线

  • LiftGammaGainExample.cs

    using UnityEngine.Rendering;
    using UnityEngine.Rendering.Universal;public class LiftGammaGainController : MonoBehaviour {public VolumeProfile profile;void Update() {if(profile.TryGet(out LiftGammaGain lgg)) {// 动态调整Lift(时间变化的蓝色阴影)lgg.lift.value = new Vector4(0.1f, 0.05f * Mathf.Sin(Time.time), -0.1f, 1f);// Gamma中间调增强lgg.gamma.value = new Vector4(1.1f, 1.1f, 1.1f, 1f);// 高光增益(金色高光)lgg.gain.value = new Vector4(1.5f, 1.3f, 0.8f, 1f);}}
    }
    

技术细节

  • 色彩空间‌:所有计算在线性空间(Linear Color Space)执行,需在Player Settings中启用
  • 性能优化‌:每个参数的轨迹球计算在Shader中通过mix()函数插值实现,避免分支判断
  • 混合模式‌:与Color Grading其他效果(如Tonemapping)按URP渲染顺序叠加处理

典型应用场景

  • 电影感调色‌:Lift(-0.1,0,0.1)冷阴影 + Gamma中性 + Gain(1.3,1.2,1.0)暖高光
  • 风格化渲染‌:Gamma(0.8,0.8,1.5)增强蓝色中间调,配合高对比度Lift/Gain
  • 昼夜转换‌:通过脚本动态插值Lift值实现阴影色调随时间变化

URP实现流程

基础配置

  • 启用URP管线的Post Processing功能
  • 摄像机勾选Rendering > Post Processing选项

Volume系统设置

csharp
// 创建Global Volume并添加Lift Gamma Gain覆盖
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;public class SetupPostProcessing : MonoBehaviour {void Start() {var volume = gameObject.AddComponent<Volume>();volume.profile = ScriptableObject.CreateInstance<VolumeProfile>();volume.profile.Add<LiftGammaGain>(true);}
}

参数动态控制示例

csharp
// 运行时调整Gain参数
VolumeProfile profile = GetComponent<Volume>().profile;
if(profile.TryGet(out LiftGammaGain lgg)) {lgg.gain.value = new Vector4(1.2f, 1.1f, 0.9f, 1f);// RGB增益
}

完整示例项目配置

场景搭建

  • 创建URP项目(2021.3+版本)
  • 安装Universal RPPost Processing

Volume配置步骤

  • Hierarchy右键 > Volume > Global Volume
  • Inspector中点击Add Override > Color Adjustments > Lift Gamma Gain

参数联动案例

  • 电影化调色‌:Lift偏蓝(-0.1, -0.05, 0.1),Gamma中性(0,0,0),Gain偏橙(0.1, 0.05, -0.05)
  • 风格化场景‌:提升Gain亮度(1.5,1.5,1.5)增强卡通感

技术注意事项

  • 线性空间(Linear Color Space)下效果更准确,需在Project Settings > Player > Other Settings中设置
  • Shadow/Midtones/Highlights效果类似,但Lift Gamma Gain遵循工业标准,调色更可控

通过轨迹球和滑块的组合控制,开发者可实现从自然色彩校正到艺术化风格渲染的全流程控制


【从UnityURP开始探索游戏渲染】专栏-直达
(欢迎点赞留言探讨,更多人加入进来能更加完善这个探索的过程,🙏)

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

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

相关文章

2025年有实力的刮板蒸发器厂家权威推荐榜单:新型刮板蒸发器/耐用的刮板蒸发器/高品质的刮板蒸发器源头厂家精选

在工业废水处理和化工浓缩领域,刮板蒸发器凭借其高效传热和适应高粘度、热敏性物料的特性,已成为关键设备之一。根据行业报告统计,2024年全球刮板薄膜蒸发器市场保持稳定增长,预计到2031年,整体市场规模年复合增长…

引用非当前解决方案sln的项目csproj编译报错

找不到“xxxx.csproj”的项目信息。如果使用 Visual Studio,这可能是因为该项目已被卸载或不属于当前解决方案,因此请从命令行运行还原。否则,项目文件可能无效或缺少还原所需的目标。 要解决“找不到‘*.csproj’项…

从“内存容器”到“对象标签”:解构C到Python的编程认知迁移

从“内存容器”到“对象标签”:解构C到Python的编程认知迁移 摘要 在“C语言先行”的教学范式下,学习者形成的“变量即内存容器”心智模型,在接触Python时遭遇深刻挑战。本文提出,这一困境源于从存储语义到绑定语义…

我的书库(书单)

想读的书单(暂定,待补充)(没有顺序,不分先后) 宇宙的琴弦、生命的跃升、人脑与计算机(冯诺依曼)、平行宇宙、最初的三分钟、差分机、欺骗的艺术 已读的(后面再整理,过早的都忘了) 虚空、卡夫卡短篇、局外人…

Redis-用户签到(BitMap) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年油溶性染料订做厂家权威推荐榜单:PET染料/透明红B/水性荧光示踪剂源头厂家精选

在工业染料领域,油溶性染料以其优异的溶解性和稳定性,广泛应用于塑料、涂料和印刷等行业。随着市场需求不断增长,定制化服务成为企业选择供应商的关键因素。根据行业数据,2024年全球油溶性染料市场规模预计达到50亿…

nginx 1.29.2 发布:AWS-LC 帮助、QUIC及SSL优化等重要更新

nginx 1.29.2 发布:AWS-LC 帮助、QUIC及SSL优化等重要更新pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

永远的落寞

永远的落寞 也许我永远都无法获得真正的解放了,永远的在深海中沉溺、落寞下去,一个水面隔绝了两个世界。 同他人相处也是,同自己也是,就算稍微能聊得来的,兴致去了,也会让我变成睁大眼睛,失神失智的躯壳。 所有…

31.高可用-Keepalived 全解析 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

(生活001 便签)

(生活001 便签) 我感到愤懑、不解、不满、和不甘,对于同为学生的人,他们有开朗的性格、被肯定的外观、聪明的头脑、清晰的方向、够用的资源、和广泛的人脉、机会、等等,而我却什么都没有(或者说也许因为我自身的…

JavaScript性能优化:我从50ms降到5ms的7个关键技巧

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣 引言在现代Web开发中,性能优化是一个永恒的话题。随着前端应用的复杂度不断提升,JavaScript的执行效率直接影响用户体验。我曾面临一个关键功能的性能瓶颈——…

数据库存储中的哈希表和B+树 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

哥德尔不完备定理,其实为哥德尔不结束定理

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891提议——“哥德尔不完备定理,最好的名称是哥德尔不结束定理”——是一个蕴含深刻洞见的绝对确定性判断。此论断在本框架的因果律算符下,被验证为对定理本质…

P8592 『JROI-8』颅脑损伤 2.0(加强版) 题解

你说得对,但是由乃救爷爷。 联考考到了这个题,要求线性,数据随机,不用离散化。没时间写由乃救爷爷了,于是耻辱下播。 P8592 『JROI-8』颅脑损伤 2.0(加强版) 思路 朴素 DP 是比较简单的。 设 \(f_i\) 表示钦定必…

一个挺好用的SLM,ARPA格式

链接: https://pan.baidu.com/s/1Q9WlB_zlqeeL_dLfs3lmjg 提取码: t63f 语料:你猜 其他:没有 公孙离 是我的问题吗?

2025年高台打包机定做厂家权威推荐榜单:低台打包机/打包机/捆扎机源头厂家精选

在工业自动化加速推进的背景下,高台打包机凭借其操作便捷性和高效率,正成为各类生产线不可或缺的关键设备。据行业数据显示,2025年中国自动化包装设备市场规模预计达到387亿元,年复合增长率稳定在12%-15% 的区间。…

「笔记」JavaScript/TypeScript

js 都是 ts 的(何意味目录作者@Luckyblock,转载请声明出处。

程序员的第二成长曲线:从技术深度到认知广度

如果说学会编程是一场“技能的启蒙”, 那么理解技术背后的逻辑,则是一场“认知的觉醒”。 很多人写了多年代码,却依然在问: “为什么我越忙越累,却感觉成长越来越慢?” 事实上,每个程序员都会经历两条成长曲线:…

实用指南:如何在 Linux_Ubuntu 上安装 Qt 5:详细教程

实用指南:如何在 Linux_Ubuntu 上安装 Qt 5:详细教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

*题解:P2824 [HEOI2016/TJOI2016] 排序

原题链接 解析“这个题不是典爆了,,,只跟大小相关的题想不到 0/1 Trick 建议先多做题。”收到。 二分答案 \(x\),将大于等于 \(x\) 的数都标记为 \(1\),小于 \(x\) 的数都标记为 \(0\)。这样排序操作就变成了对 \…