图形渲染——伽马矫正

本文探讨了伽马矫正的重要性,因为人眼对颜色的感知是非线性的,伽马编码有助于优化暗色调的记录。文章详细阐述了伽马编码的实现方式,即通过将颜色映射到0-1空间并扩大暗部的存储范围。接着,介绍了在图像处理和显示过程中,如何正确使用伽马矫正,确保在非线性空间中进行计算时,能恢复到线性空间以得到准确结果。此外,强调了硬件通常会自动进行显示伽马校正,但在处理颜色时需要注意工作空间,避免因自动伽马校正导致的误差。
摘要由CSDN通过智能技术生成

这个话题一直是我的一个困扰,因为我看了Unity Shader的讲解,总感觉作者是不是把问题搞反了,前后叙述是矛盾的。后来经过反复查看,可以肯定作者是对的,但是因为表述不清楚或者太啰嗦,把一些重点给掩盖在了文字里边,现在我要来重点梳理一下干货:

一、为什么要使用伽马编码

人眼对颜色的感知并非线性,对于暗的颜色变化敏感,对于亮的颜色变化不敏感:

由此引发一个问题,当我们使用摄像机拍照,如果按照0-255来线性记录颜色,则对于记录暗色调128颜色与亮色调128颜色来说,记录暗色调意义更大 ,应该是要分配更多的空间用于记录暗色调。

二、如何实现

比如将颜色映射到0-1空间,我们应该是希望让颜色按照虚线变化进行映射存储值:

 让越小的x值映射到越广的y空间,将y作为像素值存到图片纹理中。

比如,一束光线照进了摄像机镜头,亮度为0.22(暗),采用编码伽马后取值V:

V=0.22^{0.45}=0.5<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值