RenderTextureReadWrite

enumeration

切换到手册

描述

RenderTexture 的颜色空间转换模式。

使用 Gamma color space时,不进行任何类型的转换,因此不使用此设置。

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

但是,如果渲染纹理将包含非颜色数据(法线、速度和其他自定义值), 则不需要进行 Linear<->sRGB 转换。这是 Linear 读写模式。 对渲染纹理设置此模式时,RenderTexture.sRGB 将返回 false。

请注意,有些 render texture formats 始终被视为包含“线性”数据, 无论采用什么读写设置,都不会对它们执行 sRGB 转换。这适用于 所有“HDR”(浮点)格式和 Depth 或 Shadowmap 等其他格式。

另请参阅:Linear Color SpaceRenderTexture.sRGBPlayerSettings.colorSpaceGL.sRGBWrite

变量

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