码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • OpenGL - Gamma Correction


    当我们计算出场景中所有像素的最终颜色以后,我们就必须把它们显示在监视器上。过去,大多数监视器是阴极射线管显示器(CRT)。这些监视器有一个物理特性就是两倍的输入电压产生的不是两倍的亮度。输入电压产生约为输入电压的2.2次幂的亮度,这叫做监视器Gamma。
    在这里插入图片描述
    第一行是人眼所感知到的正常的灰阶,亮度要增加一倍(比如从0.1到0.2)你才会感觉比原来变亮了一倍。然而,当我们谈论光的物理亮度,比如光源发射光子的数量的时候,底部(第二行)的灰阶显示出的才是物理世界真实的亮度。物理亮度和感知亮度的区别在于,物理亮度基于光子数量,感知亮度基于人的感觉,比如第二个灰阶里亮度0.1的光子数量是0.2的二分之一),但是由于这与我们的眼睛感知亮度不完全一致(对比较暗的颜色变化更敏感),所以它看起来有差异。

    一个现象就是监视器会对线性颜色作2.2次幂处理,导致实际看到的颜色会比输出的暗。
    在这里插入图片描述
    Gamma校正的思路是在最终的颜色输出上应用监视器Gamma的倒数,监视器最终会显示出我们在应用中设置的那种线性的颜色。

    // 1、每个后续的绘制命令里,在颜色储存到颜色缓冲之前先校正sRGB颜色。
    glEnable(GL_FRAMEBUFFER_SRGB);
    
    // 2、
    fragColor.rgb = pow(fragColor.rgb, vec3(1.0/gamma));
    
    • 1
    • 2
    • 3
    • 4
    • 5

    sRGB textures

    当我们基于监视器上看到的情况创建一个图像,我们就已经对颜色值进行了gamma校正,如果在渲染中又进行了一次gamma校正,就会二级校正,导致图片变亮。

    OpenGL给我们提供了另一个方案来解决我们的麻烦,这就是GL_SRGB和GL_SRGB_ALPHA内部纹理格式。自动把颜色校正到线性空间中,这样我们所使用的所有颜色值都是在线性空间中的了。

    diffuse纹理,这种为物体上色的纹理几乎都是在sRGB空间中的。而为了获取光照参数的纹理,像specular贴图和法线贴图几乎都在线性空间中,所以如果你把它们也配置为sRGB纹理的话,光照就坏掉了。

  • 相关阅读:
    攻防世界--fileclude && fileinclude && inget && easytornado
    我赢助手之爆款内容创作:爆款内容的四大特性,梳理下自己的账号吧?
    如何成为一个全栈数字化设计师
    Python的基础语法(十四)
    .docx,.doc,.pptx,.ppt,.xlsx,.pdf后缀文档图标不显示
    关于K8s中资源配置范围管理(LimitRange)的一些笔记
    【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(二)
    【Verilog】组合逻辑电路 -- 程序设计及应用
    【日常业务开发】Java实现异步编程
    八股文之redis
  • 原文地址:https://blog.csdn.net/qq_42403042/article/details/126475672
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号