关于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相关推荐

  1. Gamma、Linear、sRGB 和Unity Color Space,你真懂了吗?

    "为什么我渲染出来的场景,总是感觉和真实世界不像呢?" 游戏从业者或多或少都听过Linear.Gamma.sRGB和伽马校正这些术语,互联网上也有很多科普的资料,但是它们似乎又都没 ...

  2. Unity Gamma Linear Color Space

    转载文章,出自http://www.manew.com/thread-105872-1-1.html,作者 alphatt Gamma & Linear Color Space 一.真实?感觉 ...

  3. 【Unity3D】sRGB伽马(gamma)空间和sRGB Frame Buffer线性空间的简单介绍

    2022年7月20日更新 线性空间是指物理意义上的真实颜色值,伽马空间是人眼会自动将真实世界进行一个伽马校正运算,即对数据进行1/2.2次幂,提高较暗区域细节,减弱亮区域细节.人眼处理这种细节变化是用 ...

  4. Gamma Linear Color Space

    http://www.manew.com/forum.php?mod=viewthread&tid=105872 一.真实?感觉?    1.你相信你的眼睛吗 (蓝黑or白金?) (A和B的颜 ...

  5. Gamma Correction sRGB texture

    文章目录 显示器gamma值的由来 gamma encode 图形渲染中的gamma问题 gamma correction sRGB texture 效果对比 正确的Linear/SRGB转换公式 参 ...

  6. Gamma Correction/Gamma校正/灰度校正/亮度校正(已更正) - 部分 DCC 中的线性工作流配置

    文章目录 也可以简单参考 SIGGRAPH 2010 的 PBS 的 Gamma-Correct Unity 中的 gamma.linear 工作流 Unity BRP 管线中的 shaderlab ...

  7. 浅谈unity中gamma空间和线性空间

    转载请标明出处:http://www.cnblogs.com/zblade/ 一.概述 很久没有写文章了,今天写一篇对gamma空间和线性空间的个人理解总结,在查阅和学习了各个资料后,算是一个个人笔记 ...

  8. sRGB HDR概念性学习

    threejs交流群511163089 sRGB sRGB是个啥 s是standard 是大厂为了统一标准搞的色彩空间 对应了gamma0.45空间. 然后是伽马矫正 gammaxx空间就是那个幂 伽 ...

  9. OpenGL核心技术之Gamma校正

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

最新文章

  1. 当前环境下 物联网的四大关键点
  2. 死磕Java并发:Java内存模型之分析volatile
  3. DFS与BFS的总结
  4. java poi jar maven_使用maven引入Apache poi jar包
  5. 深入理解分布式技术 - 如何确保高可用
  6. MySQL 子查询 嵌套查询
  7. 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过
  8. java网络通信技术示例:简单的聊天小程序
  9. 软件项目的规模、工作量和成本是如何进行估算或评估的?
  10. 08cms中error_08cms_licens 故障
  11. png图片怎么转换成jpg?
  12. echarts x轴time 24小时
  13. html5图片弹性布局,HTML5 使用弹性框布局实现可选择和压缩的网格
  14. 【NOIP or 省选】Melancholy ——线段树+容斥原理
  15. 如何修改DOSBOX的窗口大小
  16. html5中表单属性值_如何在HTML表单中使用Autocompletetype属性
  17. Java数学竞赛的名次情况,网传丘成桐「怒斥」2020丘赛清华排名:一流大学的数学人才,究竟该怎么培养?...
  18. python爬虫获取代理免费ip并检测
  19. 有技术含量的博客地址
  20. JDBC连接数据库详细步骤

热门文章

  1. python原始数据是什么_荐Python种MNE库模拟原始脑电数据
  2. [转] 下班后的九种最佳放松方法
  3. 关于 Bandizip 每次解压都催你更新
  4. TCP连接大量CLOSE_WAIT状态问题排查
  5. 山东大学为什么火了_关于最近很“火”的话题,山东大学学伴制度的看法
  6. ONF推新版Atrium 获得OpenDaylight支持
  7. 100条超实用微信营销技巧:公众号、朋友圈和微信营销
  8. MySQL学习笔记——多表查询
  9. NOI2003 智破连环阵
  10. 不再年轻,仍从头再来