Unity HDR颜色、基础颜色、强度强度、HDR面板Intensity之间的相互转换

目录

前言:

一、UnityHDR面板的规律

二、HDR与基础颜色转换,HDR强度获取,输入设置强度获取

1.基础色->HDR颜色

2.HDR颜色->基础色

3.获取HDR颜色在面板中的强度

 4.获取HDR颜色在面板设置输入时的强度


前言:

HDR(高动态范围成像),相比LDR(低动态范围成像)能够带来更好的画面效果,随着移动设备性能的提升,越来越多的设备都支持HDR模式。而在Unity中,如何在基础颜色以及HDR颜色之间相互转换,是这篇文章的主题。

一、UnityHDR面板的规律

上面有三张图,第一张是一张简单的红色HDR配置面板,第二张是我改变Intensity,HDR面板的数值,而第三张则是在我确认输入Intensity后关闭面板再打开的HDR面板。

为什么最后确认输入打开的面板数值,和我设置看到的面板数值有不同了?

实际上,Unity在用户输入Intensity时和最终得到的intensity意义是有所不同的。它们之间做了一个转换与解压。

以下算法将会解答你的疑问。

二、HDR与基础颜色转换,HDR强度获取,输入设置强度获取

这个算法能帮助需要制作调色板功能的用户,对HDR颜色和基础色颜色之间进行自由操作。

1.基础色->HDR颜色

    //baseColor指代基础色,比如图1的红色(1,0,0,1)//intensity指代输入强度,比如图2输入的强度数值2internal static Color HDRColor(Color baseColor, float intensity){return baseColor * Mathf.Pow(2f, intensity);}

很简单吧,基础色到HDR颜色,就是进行了一个Pow操作。

2.HDR颜色->基础色

     //其中hdrColor指代需要进行转换的HDR颜色,这个函数返回一个没有HDR的基础色//比如图3的hdr颜色数值(4,0,0,1),转换后就会得到图1的颜色数值(1,0,0,1)internal static Color32 DecomposeHdrColor(Color hdrColor){Color32 baseColor = hdrColor;float maxColorComponent = hdrColor.maxColorComponent;if (maxColorComponent == 0f || (maxColorComponent <= 1f && maxColorComponent >= 0.003921569f)){baseColor.r = (byte)Mathf.RoundToInt(hdrColor.r * 255f);baseColor.g = (byte)Mathf.RoundToInt(hdrColor.g * 255f);baseColor.b = (byte)Mathf.RoundToInt(hdrColor.b * 255f);}else{float num = 255f / maxColorComponent;baseColor.r = Math.Min((byte)255, (byte)Mathf.CeilToInt(num * hdrColor.r));baseColor.g = Math.Min((byte)255, (byte)Mathf.CeilToInt(num * hdrColor.g));baseColor.b = Math.Min((byte)255, (byte)Mathf.CeilToInt(num * hdrColor.b));}return baseColor;}

3.获取HDR颜色在面板中的强度

//hdrColor就是需要进行获取的HDR颜色,此函数返回HDR颜色在编辑器中最终显示的强度
//比如图3的HDR颜色,它的强度在面板显示是2.416924,这个函数就会返回这个数值
internal static float GetHdrIntensity(Color hdrColor){float maxColorComponent = hdrColor.maxColorComponent;if (maxColorComponent == 0f || (maxColorComponent <= 1f && maxColorComponent >= 0.003921569f)){return 0f;}else{float num = 191f / maxColorComponent;return Mathf.Log(255f / num) / Mathf.Log(2f);}}

 4.获取HDR颜色在面板设置输入时的强度

//hdrColor指代需要解压的HDR颜色,此函数返回在HDR颜色设置面板输入的强度
//比如图3,它的HDR颜色为(4,0,0,1),它返回的输入强度就是图2的输入强度2internal static float DecomposeHdrIntensity(Color hdrColor){float maxColorComponent = hdrColor.maxColorComponent;if (maxColorComponent == 0f || (maxColorComponent <= 1f && maxColorComponent >= 0.003921569f)){return 0f;}else{float num = 255f / maxColorComponent;return Mathf.Log(255f / num) / Mathf.Log(2f);}}

以上便是HDR颜色与基础色之间的操作。

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

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

相关文章

T41LQ专为人工智能物联网(AIoT)应用设计,适用于智能安防、智能家居、机器视觉等领域 软硬件资料+样品测试

君正&#xff08;Ingenic&#xff09;T系列芯片涵盖多个型号&#xff0c;每个型号根据不同应用需求提供了多个版本。以下是各型号及其主要版本&#xff1a; 1. T23系列&#xff1a; T23N&#xff1a;标准版&#xff0c;适用于移动摄像机、安全监控、视频通话和视频分析等应用…

高频 SQL 50 题(基础版)| 高级字符串函数 / 正则表达式 / 子句:1667. 修复表中的名字、1527. 患某种疾病的患者、196. 删除重复的电子邮箱、176. 第二高的薪水、...

高级字符串函数 / 正则表达式 / 子句 1667. 修复表中的名字 题目链接&#xff1a;1667. 修复表中的名字 状态&#xff1a;学会了 思路&#xff1a; 要求修复名字&#xff08;首字母大写&#xff0c;其他字母小写&#xff09;&#xff0c;按顺序返回。 想法就是取出名字这一列&…

《异步江湖:XHR、Promise 与 Event Loop 的恩怨情仇》

XMLHttpRequest XMLHttpRequest&#xff08;简称 XHR&#xff09;是浏览器提供的一个 JavaScript 对象&#xff0c;用于在客户端和服务器之间发送 HTTP 请求。它是实现 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09; 技术的核心工具&#xff0c;允许网页在不…

C++课程设计【宿舍管理查询软件】

宿舍管理查询软件 一、题目描述二、源码以及说明宿舍管理查询软件设计与实现1. 系统设计思路1.1 功能需求1.2 数据结构2. 系统实现3. 代码说明3.1 数据结构3.2 功能实现3.3 文件存储4. 示例运行输入输出5. 总结其他QT文章推荐一、题目描述 (一)问题描述 为宿舍管理人员编写一…

MWC 2025 | 移远通信推出AI智能无人零售解决方案,以“动态视觉+边缘计算”引领智能零售新潮流

在无人零售市场蓬勃发展的浪潮中&#xff0c;自动售货机正经历着从传统机械式操作向AI视觉技术的重大跨越。 移远通信作为全球领先的物联网整体解决方案供应商&#xff0c;精准把握行业趋势&#xff0c;在2025世界移动通信大会&#xff08;MWC&#xff09;上宣布推出全新AI智能…

C语言常用的头文件,include文件

常用头文件功能速览 1 &#xff0c;通用常用头文件 01. stdio.h——标准输入输出 02. stdlib.h——内存管理与分配、随机数、字符串转换 03. string.h——字符串处理 04. math.h——数学 05. time.h——时间和日期 06. ctype…

[MySQL初阶]MySQL(4)基本查询

标题&#xff1a;[MySQL初阶]MySQL&#xff08;4&#xff09;基本查询 水墨不写bug 文章目录 一. 数据表设计二、对数据表的操作1. Create 操作&#xff08;插入数据&#xff09;查看最近受影响的行数&#xff1a; 2. Retrieve 操作&#xff08;读取数据&#xff09;&#xff0…

小米智能音箱Pro搭载“超级小爱”,支持远程控车

大家好,今天我要给大家好好唠唠小米智能音箱Pro,尤其是它搭载的“超级小爱”,那功能可太强大了,还支持远程控车,真的是给我们的生活带来了超多便利和惊喜。 先来说说这小米智能音箱Pro的外观。它的设计非常简约时尚,整体造型方方正正,线条流畅,放在家里任何一个角落都…

react中的useContext--为什么使用(一)

React 的数据传递流程 在 React 中&#xff0c;数据传递通常是自上而下的&#xff0c;也就是父组件把数据通过 props 传递给子组件&#xff0c;子组件无法直接修改父组件的数据。 例子&#xff1a;父组件向子组件传递数据 const Parent () > {const user { name: &quo…

如何使用 LLM 生成的术语自动在搜索应用程序上构建 autocomplete 功能

作者&#xff1a;来自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中&#xff0c;通过使用 LLM 生成的词汇&#xff0c;为搜索应用增强自动补全功能&#xff0c;实现更智能、更动态的搜索建议。 自动补全是搜索应用中的一项关键功能&#xff0c;它通过在用户输入时实…

MAVEN手动配置(阿里云)全教程

介于网上各种各样的MAVEN配置过程中方法大致相同却细节参差不齐&#xff0c;我总结了我遇见的一些问题&#xff0c;来完全的解决MAVEN手动配置的全过程&#xff0c;以及分享解决小毛病的经验。 所需材料&#xff1a; MAVEN3.9.9&#xff08;下载适合自己的版本即可&#xff09…

DeepSeek 3FS:端到端无缓存的存储新范式

在 2025 年 2 月 28 日&#xff0c;DeepSeek 正式开源了其高性能分布式文件系统 3FS【1】&#xff0c;作为其开源周的压轴项目&#xff0c;3FS 一经发布便引发了技术圈的热烈讨论。它不仅继承了分布式存储的经典设计&#xff0c;还通过极简却高效的架构&#xff0c;展现了存储技…

HarmonyOS:如何将图片转为PixelMap并进行图片缓存策略

前言&#xff1a;在HarmonyOS项目开发中&#xff0c;我们使用Ark-Ts语言开发项目。我们有个功能是拍照&#xff0c;除了正常显示出来&#xff0c;并且上传服务器。我在开发过程中&#xff0c;遇到的问题是&#xff0c;如果离开这个页面再回到当前页面仍要显示图片&#xff0c;那…

2025.3.9机器学习笔记:文献阅读

2025.3.9周报 一、文献阅读题目信息摘要Abstract创新点网络架构实验结论不足以及展望 一、文献阅读 题目信息 题目&#xff1a; Time-series generative adversarial networks for flood forecasting期刊&#xff1a; Journal of Hydrology作者&#xff1a; Peiyao Weng, Yu …

linux固定IP并解决虚拟机无法ping其他电脑问题

linux固定IP并解决虚拟机无法ping其他电脑问题 1.找到网卡文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 2.编辑文件信息 BOOTPROTO 这个dhcp改为static#添加以下内容IPADDR<你的IP地址>NETMASK<子网掩码>&#xff0c;例如255.255.255.0。GATEWAY<网…

Spring实战spring-ai运行

目录 1. 配置 2 .搭建项目 3. 查看对应依赖 3.1 OpenAI 依赖 3.2 配置 OpenAI API 密钥 application.properties application.yml 4. openai实战 5. 运行和测试 6. 高级配置 示例&#xff1a;配置模型和参数 解释&#xff1a; 7. 处理异常和错误 示例&#xff1a;…

docker:配置 Docker 镜像加速器

1 镜像加速器介绍 默认情况下&#xff0c;将来从docker hub&#xff08;https://hub.docker.com/&#xff09;上下载docker镜像&#xff0c;太慢。一般都会配置镜像加速器&#xff1a; USTC&#xff1a;中科大镜像加速器&#xff08;https://docker.mirrors.ustc.edu.cn&…

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;SAM 文件 & Windows 本地认证流程 0x0101&#xff1a;SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的&#xff0c;在登录 Windows 的时候&am…

算法-图-dijkstra 最短路径

理论知识 dijkstra三部曲 朴素版dijkstra 模拟过程 堆优化版dijksra 经典模版例题 Dijkstra求最短路 I 参加科学大会&#xff08;第六期模拟笔试&#xff09;--模版题 网络延迟 ref 理论知识 最短路是图论中的经典问题即&#xff1a;给出一个有向图&#xff0c;一…

Qt添加MySql数据库驱动

文章目录 一. 安装MySql二.编译mysql动态链接库 Qt版本&#xff1a;5.14.2 MySql版本&#xff1a;8.0.41 一. 安装MySql 参考这里进行安装&#xff1a;https://blog.csdn.net/qq_30150579/article/details/146042922 将mysql安装目录里的bin&#xff0c;include和lib拷贝出来…