rt | 设置为活动渲染目标的RenderTexture 或 GraphicsTexture。 |
mipLevel | 要渲染到的mipmap级别(如果未进行mipmap,则使用0)。 |
face | 要渲染到的立方体贴图面(如果未进行立方体贴图,则使用Unknown)。 |
depthSlice | 要渲染到的深度切片(如果未进行3D或2DArray渲染目标,则使用0)。 |
colorBuffer | 要渲染到的颜色缓冲区。 |
depthBuffer | 要渲染到的深度缓冲区。 |
colorBuffers | 要渲染到的颜色缓冲区(用于多渲染目标效果)。 |
setup | 完整的渲染目标设置信息。 |
设置当前渲染目标。
此函数设置将要渲染到的RenderTexture、GraphicsTexture或RenderBuffer组合。在实现自定义渲染算法时使用它,在该算法中需要手动将某些内容渲染到渲染目标纹理中。
具有 mipLevel 和 face 参数的变体支持将渲染到纹理的特定mipmap级别,或立方体贴图 RenderTexture/GraphicsTexture 的特定立方体贴图面。具有 depthSlice 的变体支持将渲染到 3D 或 2DArray 渲染纹理的特定切片。
使用 colorBuffers 数组的函数调用支持使用多渲染目标 (MRT) 的技术,其中片段着色器可以输出多个最终颜色。
调用 SetRenderTarget 仅使用 RenderTexture 或 GraphicsTexture 参数与设置RenderTexture.active 和GraphicsTexture.active 属性相同。要将 GraphicsTexture 设置为渲染目标,它必须在 GraphicsTexture.descriptor.flags 中启用 GraphicsTextureDescFlags.RenderTarget。
请注意,在线性颜色空间中,设置正确的 sRGB<->线性颜色转换状态非常重要。根据之前渲染的内容,当前状态可能并非您期望的状态。您应该考虑在进行 SetRenderTarget 或任何其他手动渲染之前,根据需要设置GL.sRGBWrite。
其他资源:RenderTexture、GraphicsTexture、Graphics.activeColorBuffer、Graphics.activeDepthBuffer、SystemInfo.supportedRenderTargetCount。