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.rhkb.cn/news/30413.html

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

相关文章

c++进阶--map和set的使用

大家好&#xff0c;昨天我们学习了二叉搜索树&#xff0c;今天我们来学习一下map和set容器的使用。 目录 1. map和set的使⽤ 1.1 序列式容器和关联式容器 2. set系列的使⽤ 2.1 参考文档 2.2 set类的介绍 2.3 set的构造和迭代器 2.4 set的增删查 2.5 insert和迭代器…

Kylin麒麟操作系统服务部署 | NFS服务部署

以下所使用的环境为&#xff1a; 虚拟化软件&#xff1a;VMware Workstation 17 Pro 麒麟系统版本&#xff1a;Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、 NFS服务概述 NFS&#xff08;Network File System&#xff09;&#xff0c;即网络文件系统。是一种使用于…

FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解

FPGA之Usb数据传输 Usb 通信 你也许会有疑问&#xff0c;明明有这么多通信方式和数据传输&#xff08;SPI、I2C、UART、以太网&#xff09;为什么偏偏使用USB呢? 原因有很多&#xff0c;如下&#xff1a; 1. 高速数据传输能力 高带宽&#xff1a;USB接口提供了较高的数据传…

生活反思公园散步与小雨遇记

《公园散步与小雨遇记》&#xff08;一&#xff09; 总收录于《生活小事灵感反思》与《生活小美好》 最近又新增一个习惯&#xff1a;每天至少走一小时 那天天气有雨&#xff0c;软件上显示在下雨&#xff0c;但是外面没雨&#xff0c;心想着大不了淋湿回来洗个头&#xff0c;…

夏门大学DeepSeek 手册:从社会大众到高校及企业的全面应用实践研究(附 PDF 下载)

这 3 份手册分别从 DeepSeek 大模型概念、技术与应用实践、DeepSeek 大模型赋能高校教学和科研、DeepSeek 大模型及其企业应用实践-企业人员的大模型宝典几个角度进行全面分析&#xff0c;可以结合着清华、北大系列相互对照着学习。 清华北大推出的 DeepSeek 教程&#xff08;…

微服务保护:Sentinel

home | Sentinelhttps://sentinelguard.io/zh-cn/ 微服务保护的方案有很多&#xff0c;比如&#xff1a; 请求限流 线程隔离 服务熔断 服务故障最重要原因&#xff0c;就是并发太高&#xff01;解决了这个问题&#xff0c;就能避免大部分故障。当然&#xff0c;接口的并发…

工作学习笔记:HarmonyOS 核心术语速查表(v14 实战版)

作为在 HarmonyOS 开发一线摸爬滚打的工程师&#xff0c;笔者在 v14 版本迭代中整理了这份带血的实战术语表。 一、架构基础术语速查 A 系列术语 术语官方定义笔者解读&#xff08;v14 实战版&#xff09;开发陷阱 & 解决方案abc 文件ArkCompiler 生成的字节码文件打包时…

驾校与无人机飞手培训机构合作开展低空业务技术详解

驾校与无人机飞手培训机构合作开展低空业务是一个创新的举措&#xff0c;旨在结合双方的资源和专业优势&#xff0c;为学员提供多元化的技能培训和业务拓展机会。以下是对这种合作模式下低空业务技术的详细解析&#xff1a; 一、合作背景与意义 1. 市场需求增长&#xff1a;随…

黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 黄昏时分有着独特而迷人的光线&#xff0c;使此时拍摄的人像自带一种浪漫、朦胧的氛围 。通过 Lr 调色&#xff0c;可以进一步强化这种特质并根据不同的风格需求进行创作。Lr&#xff08;Lightroom&#xff09;作为专业的图像后期处理软件&#xff0c;提供了丰富的调色…

数据结构(队列)

数据结构&#xff08;队列&#xff09; 什么是队列&#xff1f; 队列和栈类似&#xff0c;也是一类特殊的线性表。特殊之处也是在于操作上。队列&#xff1a;只允许在一端进行插入数据操作&#xff08;入队&#xff09;&#xff0c;在另一端进行删除数据操作&#xff08;出队&…

DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)

DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…

[Lc7_分治-快排] 快速选择排序 | 数组中的第K个最大元素 | 库存管理 III

目录 1. 数组中的第K个最大元素 题解 代码 2.库存管理 III 代码 1. 数组中的第K个最大元素 题目链接&#xff1a;215. 数组中的第K个最大元素 题目分析&#xff1a; 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要…

集合论--形式化语言里的汇编码

如果一阶逻辑是数学这门形式化语言里的机器码&#xff0c;那么集合论就是数学这门形式化语言里的汇编码。 基本思想&#xff1a;从集合出发构建所有其它。 构建自然数构建整数构建有理数构建实数构建有序对、笛卡尔积、关系、函数、序列等构建确定有限自动机(DFA) 全景图 常…

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块&#xff08;学生管理系统&#xff09; 框架顺利运行 首先肯定要顺利运行框架了&#xff0c;这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…

MybatisPlus

1.增删改查入门案例&#xff1a; 首先导入依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency> 然后这些增删改查…

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 Servlet 过滤器:实现请求的预处理与后处理

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、过滤器&…

服务器上通过ollama部署deepseek

2025年1月下旬&#xff0c;DeepSeek的R1模型发布后的一周内就火了&#xff0c;性能比肩OpenAI的o1模型&#xff0c;且训练成本仅为560万美元&#xff0c;成本远低于openAI&#xff0c;使得英伟达股票大跌。 下面我们来看下如何个人如何部署deepseek-r1模型。 我是用的仙宫云的…

点云软件VeloView开发环境搭建与编译

官方编译说明 LidarView / LidarView-Superbuild GitLab 我的编译过程&#xff1a; 安装vs2019&#xff0c;windows sdk&#xff0c;qt5.14.2&#xff08;没安装到5.15.7&#xff09;&#xff0c;git&#xff0c;cmake3.31&#xff0c;python3.7.9&#xff0c;ninja下载放到…

【Git】创建,切换分支

理解分支 这里开始介绍Git的杀手级功能之一&#xff1a;分支。 分支就是科幻电影里的平行宇宙&#xff0c;当你正在电脑前努力学习C的时候&#xff0c;另一个你正在另一个平行宇宙里努力学习JAVA。 如果两个平行宇宙互不干扰&#xff0c;那对现在的你也没啥影响。不过&#…

FPGA 实验报告:四位全加器与三八译码器仿真实现

目录 安装Quartus软件 四位全加器 全加器、半加器 半加器&#xff1a; 全加器&#xff1a; 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…