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渲染纹理无内存模式。
desc创建临时 RenderTexture 时,可将此 RenderTextureDesc 用于设置。

描述

分配临时渲染纹理。

有时,您可能需要快速创建一个 RenderTexture 来进行一些临时的计算,该函数已针对这种情况做了优化。 使用完 RenderTexture 后,请立即使用 ReleaseTemporary 释放它, 以便下次需要时可以再次调用来重用它。

在内部,Unity 保留一个临时渲染纹理池, 因此调用 GetTemporary 通常只是直接返回一个已创建的渲染纹理(如果大小和格式匹配)。 如果若干帧都不使用这些临时渲染纹理,才将它们实际销毁。

如果您需要进行一系列后期处理“blit”, 则对于每个 blit,获取和释放一个临时渲染纹理要比 事先获取一到两个渲染纹理并进行重用的性能更好。 这对于移动(基于区块的)和多 GPU 系统来说最为有益:GetTemporary 将在内部执行 DiscardContents 调用, 有助于避免对先前的渲染纹理内容进行代价高昂的恢复操作。

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

另请参阅:ReleaseTemporary

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961