gamma correction&being linear
来源:互联网 发布:xalhar哈萨克电影软件 编辑:程序博客网 时间:2024/06/08 07:13
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html
http://en.wikipedia.org/wiki/Gamma_correction
http://cmpmedia.vo.llnwd.net/o1/vault/gdc10/slides/
HdrTheBungieWay
讲gamma的。
wikipedia上讲的很棒:
http://en.wikipedia.org/wiki/Gamma_correction
首先看一下wikipedia上关于gamma的定义:
Gamma correction, gamma nonlinearity, gamma encoding, or often simply gamma, is the name of a nonlinear operation used to code and decode luminance or tristimulus values in video or still imagesystems.
为什么会有gamma?
人的眼睛对亮度的识别并不是线性的,而是呈现一个gamma function,简而言之如果不做gamma correction的话,0到255的亮度值,人眼会对某些部分不敏感(造成一些bit的浪费)对某些部分过于敏感(bit不足,给人以画质低的感觉)
按照bungie给出的数据:
- 5 vs. 6 : DIFFERENT
- 205 vs. 206 : SAME!
所以根据人眼睛的特性,把bit重新分配,把无法分辨的部分捏合,可以分辨的部分加细节,来达到有限bit,最高画质,这就是gamma correction的目的。
这有什么问题么?
问题就是texture在输出的时候也会有gamma correct,这就导致我们实在gamma空间去做光照操作。
而不是linear空间,这个简而言之就会造成数学上的不正确,数学上的不正确倒也不一定意味着不好看,有些时候这种可能是更让人喜欢。
但问题就是数学上不正确,就会失真。
失真的问题很隐晦,就会造成像uncharted2这样的游戏看起来更”电影“,而有些游戏就不是,并且难以调到那个程度:
- 可能某些场景可以,但是换一个场景又不行了
- 就是因为数学上不正确的
怎么去做到linear空间去做计算:
- 使用srgb texture sample:这样就保证sample出的texel是linear space的
- 在中间render target输出的时候这个选择比较自由,关键是清晰的认识自己是在哪一空间,比如一直在linear 空间里,那就一直保持就好,
- 关键是空间一致
- 最终frame buffer输出的时候使用D3DRS_SRGBWRITEENABLE,保证回到gamma空间
- gamma correction&being linear
- gamma correction&being linear
- 线性渲染(Linear Rendering)和Gamma Correction
- 线性渲染(Linear Rendering)和Gamma Correction
- gamma correction
- [译]Gamma Correction
- 伽玛校正(Gamma Correction)
- 伽玛校正(Gamma Correction)
- 伽玛校正(Gamma Correction)
- [my note]about gamma correction
- 伽瑪校正 (Gamma Correction)
- Gamma & Linear Color Space
- 【转】伽马校正(Gamma Correction)
- Gamma Correction(伽马校正)
- 伽马校正(gamma correction)学习笔记
- Unity3D Linear和Gamma渲染
- 【图形学】我理解的伽马校正(Gamma Correction)
- OpenGL学习脚印:伽马校正(Gamma Correction)
- 在Aspose.Cells的单元格中加上边框
- 二叉搜索树镜像
- 在vs2008中添加lib库
- Android软件开发之PreferenceActivity中的组件(二十八)
- Android进阶之Mp3项目(四)
- gamma correction&being linear
- 什么是图形加速
- MPEG-2复用器PSI信息分析部分的FPGA实现
- 应用Javascript实现复选框的全选、反选和不选
- Linux常用shell快捷键
- 简单入侵(php,get)
- TinyOS在CC2530上移植之USART
- 7 Tips for iPhone Game Sound
- 让我们一起来鸟瞰世界高薪CEO们