Version: 2023.2

SparseTexture

class in UnityEngine

/

继承自:Texture

切换到手册

描述

用于处理稀疏纹理的类。

稀疏纹理是整个纹理数据不能立即存在于内存中的纹理。它们通常也称为“区块纹理”或“超级纹理”。

想象一下大小为 16384x16384、每像素 32 位的纹理,它将占用 1GB 内存。该纹理分解为多个“区块”,每个区块可存在于内存中,也可不存在于内存中。您可以在需要时根据与摄像机的距离、玩家必须看到的世界的区域等加载和卸载这些区块。

否则,这些稀疏纹理的行为就像着色器中的其他任何纹理,它们可以有多级渐进纹理,可使用所有纹理过滤模式等。如果碰巧从不存在的区块读取内容,则会获得不存在的结果(在许多 GPU 上,结果为黑色,但不保证如此)。

并非所有硬件和平台都支持稀疏纹理,因此在使用它们前,应检查 SystemInfo.supportsSparseTextures。例如,在 DirectX 系统上,它们需要 DX11.2 (Windows 8.1) 以及相当新的 GPU;在 OpenGL 上,它们需要 ARB_sparse_texture 扩展支持。稀疏纹理仅支持非压缩纹理格式。

创建稀疏纹理后,可使用 tileWidthtileHeight 查询区块大小。区块大小取决于平台和 GPU。

使用 UpdateTileUpdateTileRaw 可使区块位于内存中并更新其颜色数据。使用 UnloadTile 可卸载区块。

另请参阅:稀疏纹理

变量

isCreated是否实际创建了稀疏纹理?(只读)
tileHeight获取稀疏纹理区块高度(只读)。
tileWidth获取稀疏纹理区块宽度(只读)。

构造函数

SparseTexture创建一个稀疏纹理。

公共函数