Version: 2023.1

CommandBuffer.SetRenderTarget

切换到手册
public void SetRenderTarget (Rendering.RenderTargetIdentifier rt);
public void SetRenderTarget (Rendering.RenderTargetIdentifier rt, Rendering.RenderBufferLoadAction colorLoadAction, Rendering.RenderBufferStoreAction colorStoreAction, Rendering.RenderBufferLoadAction depthLoadAction, Rendering.RenderBufferStoreAction depthStoreAction);
public void SetRenderTarget (Rendering.RenderTargetIdentifier rt, int mipLevel);
public void SetRenderTarget (Rendering.RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace);
public void SetRenderTarget (Rendering.RenderTargetIdentifier rt, int mipLevel, CubemapFace cubemapFace, int depthSlice);
public void SetRenderTarget (Rendering.RenderTargetIdentifier color, Rendering.RenderTargetIdentifier depth);
public void SetRenderTarget (Rendering.RenderTargetIdentifier color, Rendering.RenderTargetIdentifier depth, int mipLevel);
public void SetRenderTarget (Rendering.RenderTargetIdentifier color, Rendering.RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace);
public void SetRenderTarget (Rendering.RenderTargetIdentifier color, Rendering.RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice);
public void SetRenderTarget (RenderTargetIdentifier[] colors, Rendering.RenderTargetIdentifier depth);
public void SetRenderTarget (Rendering.RenderTargetBinding binding);
public void SetRenderTarget (Rendering.RenderTargetBinding binding, int mipLevel, CubemapFace cubemapFace, int depthSlice);
public void SetRenderTarget (RenderTargetIdentifier[] colors, Rendering.RenderTargetIdentifier depth, int mipLevel, CubemapFace cubemapFace, int depthSlice);

参数

rt 为颜色和深度缓冲区设置的渲染目标。
color 设置为颜色缓冲区的渲染目标。
colors 设置为颜色缓冲区的渲染目标 (MRT)。
depth 设置为深度缓冲区的渲染目标。
mipLevel 渲染目标的要达到的 Mip 级别。
cubemapFace 立方体贴图渲染目标要渲染到的立方体贴图面。
depthSlice 要设置的 3D 或数组渲染目标的切片。
loadAction 用于颜色和深度/模板缓冲区的加载操作。
storeAction 用于颜色和深度/模板缓冲区的存储操作。
colorLoadAction 用于颜色缓冲区的加载操作。
colorStoreAction 用于颜色缓冲区的存储操作。
depthLoadAction 用于深度/模板缓冲区的加载操作。
depthStoreAction 用于深度/模板缓冲区的存储操作。

描述

添加“设置活动的渲染目标”命令。

可通过若干种方式指示要使用的渲染纹理:RenderTexture 对象、用 GetTemporaryRT 创建的临时渲染纹理或内置的临时纹理之一 (BuiltinRenderTextureType)。上述所有形式的渲染纹理都用 RenderTargetIdentifier 结构来表示,该结构使用隐式转换运算符,实现键入时保存。

在命令缓冲区执行期间,不必显式保留活动的渲染目标(当前的渲染目标将被保存并在之后恢复)。

此方法具有变体,这些变体采用额外的参数(如 mipLevel (int) 和 cubemapFace)来确保能够渲染到 RenderTexture 的特定 Mipmap 级别,或者立方体贴图 RenderTexture 的特定立方体贴图面。 设置单个 RenderTarget 并且没有显式 mipLevel、cubemapFace 和 depthSlice 的重载将遵循在创建 RenderTargetIdentifier 时指定的 mipLevel、cubemapFace 和 depthSlice 值。 设置多个渲染目标的重载会将 mipLevel、cubemapFace 和 depthSlice 设置为 0、Unknown 和 0(除非另外指定)。如果指定,则会将指定的 mipLevel、cubemapFace 和 depthSlice 用于所有目标。

请注意,在线性颜色空间中,设置正确的 sRGB<-> 线性颜色转换 状态非常重要。受之前渲染的内容的影响,当前状态可能不是您预期的状态。 您应考虑在执行 SetRenderTarget 或任何其他手动渲染之前,将 GL.sRGBWrite 设置为 需要的值。

Rendering.RenderTargetIdentifier.Clear 目前不受支持。对 ClearRenderTarget 的后续调用具有相同的效果,并在支持/清除/加载操作的图形 API 上进行了优化。

另请参阅:GetTemporaryRTClearRenderTargetBlitRenderTargetIdentifier