Unity3D Gamma,Linear和sRGB
关于CRT伽马值的由来不多赘述了,网上太多了,我们只要知道显示器会把图像进行一次gamma2.2就够了。
这里主要讲一下为什么说Linear空间是唯一正确空间,以及为什么图片在unity中需要勾选sRGB。
个人理解,有错必纠。
首先以相机举例,现实世界的颜色是线性的,相机上显示的图像和现实一样,又知道显示器会对图形多gamma2.2,那么相机在保存图片的时候肯定不能以线性保存,不然打开图片查看的时候会被gamma2.2,看起来会变暗。所以我们要把图片保存的时候进行gamma0.45,也就是保存在标准sRGB色彩空间,也就是进行gamma校正。那么在打开图片就是线性的了。
灵魂绘画
用IQ大神的网站画一下三条曲线,上面的是gamma0.45,中间的是线性,下面的是gamma2.2
那么在Unity中,为什么说linear空间是唯一正确空间呢。
如果你在开发2D游戏那么,gamma空间没有任何问题,所有图片都是gamma0.45,再由显示器gamma2.2转换到线性,你看到的就是正确的颜色。
如果你在开发3D游戏,那么就会出现问题了。
假设你使用的是gamma空间,unity不会对图片做任何操作,图片勾不勾选sRGB都一样。现在我们有一个像素点,值为0.1,首先进行gamma0.45,得到0.355,进入到shader中计算时,乘以光强2,得到0.71,再由显示器gamma2.2得到0.47。但是如果这个像素点在现实世界中,经过光强2,应该是0.2才对。所以gamma空间是不对的,也经常会产生场景过曝的现象。
这时我们把unity切到linear空间,勾选图片的sRGB,再来计算一遍,像素点0.1,经过gamma0.45,得到0.355,因为勾选的了sRGB,在进入shader计算之前会进行Remove Gamma Correction,也就是gamma2.2,重新会到0.1,乘以光强2,得到0.2,结束shader后会进行一次gamma校正,也就是gamma0.45,得到0.485,再到显示器中gamma2.2,得到0.2。和现实世界一致。所以说linear空间是唯一正确空间,线性的输入,线性的计算,线性的输出。
参考资料
https://www.bilibili.com/video/BV15t411Y7cf
https://zhuanlan.zhihu.com/p/370018376
https://zhuanlan.zhihu.com/p/66558476
https://medium.com/@abdulla.aldandarawy/unity-always-be-linear-1a30db4765db
Unity3D Gamma,Linear和sRGB相关推荐
- Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?
"为什么我渲染出来的场景,总是感觉和真实世界不像呢?" 游戏从业者或多或少都听过Linear.Gamma.sRGB和伽马校正这些术语,互联网上也有很多科普的资料,但是它们似乎又都没 ...
- Unity Gamma Linear Color Space
转载文章,出自http://www.manew.com/thread-105872-1-1.html,作者 alphatt Gamma & Linear Color Space 一.真实?感觉 ...
- 【Unity3D】sRGB伽马(gamma)空间和sRGB Frame Buffer线性空间的简单介绍
2022年7月20日更新 线性空间是指物理意义上的真实颜色值,伽马空间是人眼会自动将真实世界进行一个伽马校正运算,即对数据进行1/2.2次幂,提高较暗区域细节,减弱亮区域细节.人眼处理这种细节变化是用 ...
- Gamma Linear Color Space
http://www.manew.com/forum.php?mod=viewthread&tid=105872 一.真实?感觉? 1.你相信你的眼睛吗 (蓝黑or白金?) (A和B的颜 ...
- Gamma Correction sRGB texture
文章目录 显示器gamma值的由来 gamma encode 图形渲染中的gamma问题 gamma correction sRGB texture 效果对比 正确的Linear/SRGB转换公式 参 ...
- Gamma Correction/Gamma校正/灰度校正/亮度校正(已更正) - 部分 DCC 中的线性工作流配置
文章目录 也可以简单参考 SIGGRAPH 2010 的 PBS 的 Gamma-Correct Unity 中的 gamma.linear 工作流 Unity BRP 管线中的 shaderlab ...
- 浅谈unity中gamma空间和线性空间
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概述 很久没有写文章了,今天写一篇对gamma空间和线性空间的个人理解总结,在查阅和学习了各个资料后,算是一个个人笔记 ...
- sRGB HDR概念性学习
threejs交流群511163089 sRGB sRGB是个啥 s是standard 是大厂为了统一标准搞的色彩空间 对应了gamma0.45空间. 然后是伽马矫正 gammaxx空间就是那个幂 伽 ...
- OpenGL核心技术之Gamma校正
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
最新文章
- 当前环境下 物联网的四大关键点
- 死磕Java并发:Java内存模型之分析volatile
- DFS与BFS的总结
- java poi jar maven_使用maven引入Apache poi jar包
- 深入理解分布式技术 - 如何确保高可用
- MySQL 子查询 嵌套查询
- 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过
- java网络通信技术示例:简单的聊天小程序
- 软件项目的规模、工作量和成本是如何进行估算或评估的?
- 08cms中error_08cms_licens 故障
- png图片怎么转换成jpg?
- echarts x轴time 24小时
- html5图片弹性布局,HTML5 使用弹性框布局实现可选择和压缩的网格
- 【NOIP or 省选】Melancholy ——线段树+容斥原理
- 如何修改DOSBOX的窗口大小
- html5中表单属性值_如何在HTML表单中使用Autocompletetype属性
- Java数学竞赛的名次情况,网传丘成桐「怒斥」2020丘赛清华排名:一流大学的数学人才,究竟该怎么培养?...
- python爬虫获取代理免费ip并检测
- 有技术含量的博客地址
- JDBC连接数据库详细步骤