Version: 2022.3
LanguageEnglish
  • C#

RenderTextureReadWrite

enumeration

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

Color space conversion mode of a RenderTexture.

When using Gamma color space, no conversions are done of any kind, and this setting is not used.

When Linear color space is used, then by default non-HDR render textures are considered to contain sRGB data (i.e. "regular colors"), and fragment shaders are considered to output linear color values. So by default the fragment shader color value is converted into sRGB when rendering into a texture; and when sampling the texture in the shader the sRGB colors are converted into linear values. This is the sRGB read-write mode; and the Default mode matches that when linear color space is used. When this mode is set on a render texture, RenderTexture.sRGB will return true.

However, if your render texture will contain non-color data (normals, velocities, other custom values) then you don't want Linear<->sRGB conversions to happen. This is the Linear read-write mode. When this mode is set on a render texture, RenderTexture.sRGB will return false.

Note that some render texture formats are always considered to contain "linear" data and no sRGB conversions are ever performed on them, no matter what is the read-write setting. This is true for all "HDR" (floating point) formats, and other formats like Depth or Shadowmap.

Additional resources: Linear Color Space, RenderTexture.sRGB, PlayerSettings.colorSpace, GL.sRGBWrite.

Properties

DefaultDefault color space conversion based on project settings.
LinearRender texture contains linear (non-color) data; don't perform color conversions on it.
sRGBRender texture contains sRGB (color) data, perform Linear<->sRGB conversions on it.