版本: Unity 6 (6000.0)
语言英语
  • C#

RenderTextureReadWrite

枚举

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每一个建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

RenderTexture 的颜色空间转换模式。

当使用 Gamma 颜色空间 时,不会进行任何类型的转换,并且此设置不会使用。

当使用线性颜色空间时,默认情况下,非 HDR 渲染纹理被认为包含 sRGB 数据(即“常规颜色”),并且片段着色器被认为输出线性颜色值。因此,默认情况下,片段着色器颜色值在渲染到纹理时会转换为 sRGB;并且在着色器中采样纹理时,sRGB 颜色会转换为线性值。这是 sRGB 读写模式;并且 Default 模式在使用线性颜色空间时与之匹配。当此模式设置在渲染纹理上时,RenderTexture.sRGB 将返回 true。

但是,如果您的渲染纹理将包含非颜色数据(法线、速度、其他自定义值),那么您不希望进行线性<->sRGB 转换。这是 Linear 读写模式。当此模式设置在渲染纹理上时,RenderTexture.sRGB 将返回 false。

请注意,某些 渲染纹理格式 始终被认为包含“线性”数据,并且无论读写设置是什么,都不会对它们执行 sRGB 转换。这适用于所有“HDR”(浮点)格式,以及其他格式,例如深度或阴影贴图。

其他资源:线性颜色空间RenderTexture.sRGBPlayerSettings.colorSpaceGL.sRGBWrite

属性

默认基于项目设置的默认颜色空间转换。
线性渲染纹理包含线性(非颜色)数据;不要对其执行颜色转换。
sRGB渲染纹理包含 sRGB(颜色)数据,对其执行线性<->sRGB 转换。