width | 纹理宽度(以像素为单位)。 |
height | 纹理高度(以像素为单位)。 |
depth | 深度缓冲区中的位数(0、16、24 或 32)。请注意,只有 24 位和 32 位深度支持模板缓冲区。 |
format | 纹理颜色格式。 |
colorFormat | RenderTexture 的颜色格式。 |
depthStencilFormat | RenderTexture 的深度模板格式。 |
mipCount | 为 RenderTexture 分配的 mip 贴图数量。 |
readWrite | 如何在纹理读写时应用颜色空间转换。 |
desc | 使用 RenderTextureDescriptor 中的设置创建 RenderTexture。 |
textureToCopy | 复制另一个 RenderTexture 的设置。 |
创建一个新的 RenderTexture 对象。
渲染纹理以 width
x height
的大小创建,深度缓冲区为 depth
位(深度可以是 0、16、24 或 32),格式为 format
格式,并开启或关闭 sRGB 读/写。
请注意,构造 RenderTexture 对象不会立即创建硬件表示。实际的渲染纹理在首次使用时或手动调用 Create 时创建。因此,在构造渲染纹理后,可以设置其他变量,例如 format、dimension 等。
另请注意,您的图形设备功能决定了 RenderTexture 的最大大小。要确定最大大小,请对 2D 和立方体贴图 RenderTexture 使用 SystemInfo.maxTextureSize,对 3D RenderTexture 使用 SystemInfo.maxTexture3DSize,对 2D 数组 RenderTexture 使用 SystemInfo.maxTextureSize 和 SystemInfo.maxTextureArraySlices。
当请求的大小超过最大大小时,Unity 的行为会有所不同。如果 RenderTexture 不是 3D 纹理,并且请求的大小是 2 的幂,则 Unity 会自动将请求的大小缩小 2 倍,直到它低于最大值,然后以该大小创建 RenderTexture。否则,Unity 将无法创建 RenderTexture,并抛出错误。
其他资源:format、GetTemporary。
using UnityEngine;
public class Example : MonoBehaviour { public RenderTexture rt;
void Start() { rt = new RenderTexture(256, 256, 16, RenderTextureFormat.ARGB32); } }