• Gamma校正与线性工作流


      1 Gamma校正是什么?8位亮度值x(0-1)经过x^0.45的一个提亮过程。 

      2 为什么需要Gamma校正

      人的眼睛是以非线性方式感知亮度,在自然界中,人感觉到的一半亮度其实只有全部能量的0.2,也就是人眼中黑到半黑只有0-0.2,余下0.2-0.8是半黑到全亮,那么就是说,如果没有Gamma校正,8位亮度中,只用不到2位用来保存黑到半黑的信息,而余下8位中超过6位用来保存半黑到白的信息,这样图片中暗的细节太少,为了改善这种情况,经过Gamma校正后,原来0.2的值保存为0.5.

      

      需要注意的是:一是现代8位的图片格式如jpg,png等保存下来都是已经经过Gamma校正的。二是32位图片能保存非常多的信息,故不需要经过Gamma校正。 

      3 什么是线性工作流

      8位亮度的图片经过反Gamma校正,就是原来x^0.45^2.2,简单来说,原来经过0.45次方,现在再经过2.2次方转回x成线性,然后与灯光混合生成最终颜色。

      Gamma可以看成一个提亮过程,而反Gamma提暗过程。 

      4为什么需要线性工作流

      因为在游戏引擎或是3D渲染软件中,灯光都是一个线性量,当灯光与没经过反Gamma校正的非线性纹理数据混合就有二种情况,一是纹理亮度是对的,但是灯光会感觉局部暴光太高,而远处太暗,二是灯光显示正确,但是纹理亮度更亮,亮度细节丢失。为什么这样了,第一种情况,灯光也加入了反Gamma,这样暗的位置更暗,对比之下灯光位置太亮,第二种情况,纹理又进行了一次Gamma,这样更亮,而人眼对0-0.20.2-1感觉是一样的颜色差,亮度差更高,但是人看不出来,而暗差变小,会感觉亮度细节丢失明显。

      那么只有在与灯光混合计算前,进行一个反Gamma的过程,这样灯光与纹理数据都是线性数据,显示正确。

  • 相关阅读:
    动态绑定表格
    双缓冲设置控件
    编写模块化插件式应用程序
    网上收集整理SharePoint的母版页master占位符(改动不大)
    改变SharePoint工作流任务的界面
    SharePoint定时器作业部署步骤
    定时器作业将sap数据更新至列表库
    网络没问题,MSN登录不了解决方法
    以后就搬家到cnblogs吧。
    记录我的第一个OpenGL程序
  • 原文地址:https://www.cnblogs.com/zhouxin/p/5266780.html
Copyright © 2020-2023  润新知