赞
踩
看了一些gamma相关内容,记录一下目前的理解,主要是针对unity中的两种color space。
在unity的这个路径下Edit->Project Settings->Player->Other Settings,可以选择linear空间或者gamma空间。这两种空间会发生什么事,见下。
第一张图:shader中tex2D读取颜色参与计算。
LinearSpace时,除非对指定图片选择了bypass sRGB,否则所有纹理都会变成sRGB格式。
对于sRGB的纹理,GPU会自动将colorG0(偏亮)转换到linear space,即colorL0(偏暗)。也就是说,在此转换之前,存储在纹理中的颜色colorG0是在gamma space的(偏亮)。
第二张图:shader计算结果到写入color buffer。
所有计算应该发生在linear space,计算结束后需GPU会将该像素颜色再次转换到gamma space,再写入color buffer。
第三张图:显示器把color buffer显示到眼睛。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。