【问题标题】:OpenGL Automatic sRGB Conversion vs Manual sRGB Conversion [closed]OpenGL自动sRGB转换与手动sRGB转换[关闭]
【发布时间】:2012-08-08 14:21:51
【问题描述】:

我最近一直在阅读有关 sRGB 转换及其带来的一些好处的信息。我在 GPU Gems 3 中阅读了一篇非常有用的文章,该文章现在免费提供,其中涵盖了一些自动方法与手动着色器编写的方法。这是文章:

https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch24.html

在什么情况下使用手动转换而不是自动转换会有好处?在我看来,使用传递给 glTexImage2D 的 GL_SRGB_EXT 并且使用 GL_EXT_framebuffer_sRGB 不需要任何手动转换?

【问题讨论】:

    标签: opengl colors gamma srgb


    【解决方案1】:

    好吧,那篇文章中已经提出了一个原因。如果您假设(错误的)伽马值 2.0,您可以使用 sqrt 计算它,这可能比屏幕后面的内置方法更快,很可能像 pow(frag.rgb,1.0/2.2) 这样。当然,如果渲染到 sRGB 是在硬件中实现的,这不会优化任何东西。

    另一个原因可能是您想自己在非线性色彩空间中进行一些计算。例如,如果您想转换为 Y'CbCr 之类的东西来执行图像处理任务。

    最后,也许您可​​以通过一些查询获得输出设备的伽玛值的非常精确的值,然后进行手动转换可能会提供(可能几乎不明显)更好的质量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 1970-01-01
      • 2016-11-21
      • 2016-04-01
      • 2011-09-23
      • 2021-04-21
      • 2020-08-09
      相关资源
      最近更新 更多