当前位置:   article > 正文

四、Unity中颜色空间_unity color space

unity color space

Unity中的设置

通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改,参数Color Space可以选择Gamma或Linear。

  • 当选择Gamma Space时,Unity不会做任何处理。
  • 当选择Linear Space时,引擎的渲染流程在线性空间计算,理想情况下项目使用线性空间的贴图颜色,不需要勾选sRGB,如果勾选了sRGB的贴图,会通过硬件特性采样时进行线性转换。

硬件支持

 

线性空间需要图形API的硬件支持,目前支持的平台

  • Windows,Mac OS x 和Linux(Standalone)
  • Xbox One
  • PS 4
  • Android (OpenGL ES 3.0)
  • iOS(Metal)
  • WebGL

硬件特性支持

主要由两个硬件特性来支持:

  • sRGB Frame Buffer
    • 将Shader的计算结果输出到显示器前左gamma校正
    • 作为纹理被读取时会自动把存储的颜色从sRGB空间转换到线性空间
    • 调用ReadPixels()、readBackImage()时,会直接返回sRGB空间下的颜色
    • sRGB Frame Buffer只支持每通道8bit的格式,不支持浮点格式
    • HDR开启后会先把渲染结果绘制到浮点格式的FB中,最后绘制到sRGB FB上输出
  • sRGB Sampler
    • 将sRGB的贴图进行线性采样的转换

使用硬件特性完成sRGB贴图的线性采样和shader计算结果的gamma校正,比起在shader里对贴图采样和计算结果的校正要快。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码维护者/article/detail/60346
推荐阅读
相关标签
  

闽ICP备14008679号