OpenGL学习脚印:伽马校正(Gamma Correction)
来源:互联网 发布:软件功能设计说明书 编辑:程序博客网 时间:2024/05/20 19:45
OpenGL学习脚印:伽马校正(Gamma Correction) :http://blog.csdn.net/wangdingqiaoit/article/details/52974486
总结:
1. CRT Gamma , Cout = Cin ^ 2.2, 因为颜色rgb都是[0,1] 所以,0.5^2.2 = 0.218 所以,CRT显示器的Gamma是变小的。
2. 伽马校正(Gamma Correction), 就是 CRT Gamma 的逆过程, Cout = Cin ^ (1 / 2.2) .
3. 纹理 保存的颜色RGB 大多数都是预处理过的,存储的颜色信息已经是伽马校正了的, 也就是 Cout = Cin ^ (1 / 2.2) .
4. OpenGl构造纹理对象时,指明纹理的内部格式为sRGB ,SRGB就是我们所说的已经校正后的非线性颜色,当按上述方式指明时OpenGL将会自动将其转换到线性空间, 也就是说,如果指定纹理格式是sRGB的话,那么就表示这张纹理存储的颜色信息是 已经是伽马校正了,Cout = Cin ^ (1 / 2.2),那么,OpenGL 在使用这张纹理的时候,会进行 Cout = Cin ^ 2.2, 得到线性的RGB颜色信息。
Unity3D 的 gamma,linear
参考:
[Unity3d]总结Gamma Space与Linear Space : http://blog.csdn.net/ngrandmarch/article/details/46407017
1. 当选择Gamma颜色空间的时候,Texture的sRGB是否勾选,Unity默认都是使用Texture的原图的颜色,也就是 存储的颜色信息已经是伽马校正了,Unity不会自动处理在Shader的运算结果。
2. 当选择Linear颜色空间的时候,
Texture的sRGB勾选了的情况,那么 在Shader采样的时候,纹理的颜色会被处理,就会从 Gamma -> Linear, 所以采样后得到的颜色就是Linear,就用Linear颜色来运算, 在Shader运算完结果之后,GPU自动把运算结果进行处理,Linear -> Gamma。
Texture的sRGB 没有勾选了的情况,那么 在Shader采样的时候, 得到的是Gamma颜色,在Shader运算的时候,用的是Gamma颜色,最后,GPU自动把运算结果进行处理,Gamma -> Gamma, 这里就得到的结果就是,输出的颜色都增强了。
阅读全文
0 0
- OpenGL学习脚印:伽马校正(Gamma Correction)
- OpenGL学习脚印:伽马校正(Gamma Correction)
- 伽马校正(gamma correction)学习笔记
- 【视频开发】伽马校正(gamma correction)学习笔记
- 【转】伽马校正(Gamma Correction)
- Gamma Correction(伽马校正)
- 伽玛校正(Gamma Correction)
- 伽玛校正(Gamma Correction)
- 伽玛校正(Gamma Correction)
- 伽瑪校正 (Gamma Correction)
- 【图形学】我理解的伽马校正(Gamma Correction)
- OpenGL核心技术之Gamma校正
- Gamma correction 伽马校准及 matlab 实现
- gamma correction
- gamma校正
- Gamma校正
- Gamma 校正
- gamma校正
- 浅谈c++之指针型函数与函数指针
- Spring入门学习(三)logback配置按天打日志
- 11月13日心得
- PAT 1061. 判断题(15)
- 欢迎使用CSDN-markdown编辑器
- OpenGL学习脚印:伽马校正(Gamma Correction)
- K-Means
- U3D_创建新物体(预制体)
- 一个非常好的大数据学习网站
- 将图片转变成手绘图
- 机器学习(一)
- ScrollInToView方法(滚动页面)
- RestEasy统一异常处理问题,处理之后前端一直处于等待状态未返回异常结果
- 机器学习(二)