RenderTexture 的颜色空间转换模式。
当使用 Gamma 颜色空间 时,不会进行任何类型的转换,并且此设置不会使用。
当使用线性颜色空间时,默认情况下,非 HDR 渲染纹理被认为包含 sRGB 数据(即“常规颜色”),并且片段着色器被认为输出线性颜色值。因此,默认情况下,片段着色器颜色值在渲染到纹理时会转换为 sRGB;并且在着色器中采样纹理时,sRGB 颜色会转换为线性值。这是 sRGB 读写模式;并且 Default 模式在使用线性颜色空间时与之匹配。当此模式设置在渲染纹理上时,RenderTexture.sRGB 将返回 true。
但是,如果您的渲染纹理将包含非颜色数据(法线、速度、其他自定义值),那么您不希望进行线性<->sRGB 转换。这是 Linear 读写模式。当此模式设置在渲染纹理上时,RenderTexture.sRGB 将返回 false。
请注意,某些 渲染纹理格式 始终被认为包含“线性”数据,并且无论读写设置是什么,都不会对它们执行 sRGB 转换。这适用于所有“HDR”(浮点)格式,以及其他格式,例如深度或阴影贴图。
其他资源:线性颜色空间、RenderTexture.sRGB、PlayerSettings.colorSpace、GL.sRGBWrite。