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

RenderTexture.GetTemporary

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

public static RenderTexture GetTemporary(RenderTextureDescriptor desc);

声明

public static RenderTexture GetTemporary(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, int antiAliasing = 1, RenderTextureMemoryless memorylessMode = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, bool useDynamicScale = false);

参数

width 以像素为单位的宽度。
height 以像素为单位的高度。
depthBuffer 深度缓冲区位数(0、16 或 24)。请注意,只有 24 位深度具有模板缓冲区。
format 渲染纹理格式。
readWrite 颜色空间转换模式。
antiAliasing 存储在纹理中的抗锯齿样本数。有效值为 1、2、4 和 8。如果传递任何其他值,则会引发异常。
memorylessMode 渲染纹理无内存模式。
vrUsage Unity 如何将 RenderTexture 用作 VR 眼部纹理。默认为 VRTextureUsage.None
useDynamicScale 确定 Unity 是否使用动态分辨率缩放渲染纹理。默认为 false
desc 创建临时 RenderTexture 时,使用此 RenderTextureDesc 进行设置。

描述

分配一个临时渲染纹理。

当您需要一个快速的 RenderTexture 来进行一些临时计算时,此函数经过优化。完成后,请使用 ReleaseTemporary 释放它,以便另一个调用可以在需要时开始重用它。

在内部,Unity 保持了一个临时渲染纹理池,因此对 GetTemporary 的调用通常只返回一个已创建的纹理(如果大小和格式匹配)。这些临时渲染纹理实际上在几帧未使用时会被销毁。

如果您正在执行一系列后期处理“blit”,为了提高性能,最好为每个 blit 获取和释放一个临时渲染纹理,而不是预先获取一个或两个渲染纹理并重用它们。这主要对移动设备(基于图块)和多 GPU 系统有利:GetTemporary 将在内部执行 DiscardContents 调用,这有助于避免对先前渲染纹理内容进行代价高昂的还原操作。

您不能依赖从 GetTemporary 函数获得的 RenderTexture 的任何特定内容。它可能是垃圾,也可能被清除为某种颜色,具体取决于平台。

其他资源:ReleaseTemporary