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

CommandBuffer.SetRenderTarget

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

声明

public void SetRenderTarget(Rendering.RenderTargetIdentifier rt);

声明

public void SetRenderTarget(Rendering.RenderTargetIdentifier rt, Rendering.RenderBufferLoadAction loadAction, Rendering.RenderBufferStoreAction storeAction);

声明

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 具有相同的效果,并且在支持 clear 加载操作的图形 API 上进行了优化。

其他资源:GetTemporaryRTClearRenderTargetBlitRenderTargetIdentifier