Version: 2020.1

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创建一个稀疏纹理。

公共函数

UnloadTile卸载稀疏纹理区块。
UpdateTile使用颜色值更新稀疏纹理区块。
UpdateTileRaw使用原始像素值更新稀疏纹理区块。

继承的成员

静态变量

allowThreadedTextureCreation允许在任何线程(而不是专用的渲染线程)中创建纹理。
currentTextureMemoryThe amount of memory currently being used by the non-streaming and mipmap streaming textures combined.
desiredTextureMemory在应用纹理串流预算之前会先使用上述的纹理内存量。
GenerateAllMips可与采用 Mip 数量的纹理构造函数结合使用,以指示应生成所有 Mip。此字段的值为 -1。
nonStreamingTextureCount非串流纹理的数量。
nonStreamingTextureMemory非串流纹理正在使用的内存总量。
streamingMipmapUploadCount由于纹理 Mipmap 串流而导致上传纹理的次数。
streamingRendererCount在纹理串流系统中注册的渲染器数量。
streamingTextureCount串流纹理的数量。
streamingTextureDiscardUnusedMips强制串流纹理系统立即丢弃所有未使用的 Mipmap,而不是缓存这些 Mipmap 直到超出纹理内存预算。
streamingTextureForceLoadAll强制串流纹理加载所有 Mipmap 级别。
streamingTextureLoadingCount当前正在加载 Mipmap 的串流纹理的数量。
streamingTexturePendingLoadCount要加载的未完成 Mipmap 的串流纹理数量。
targetTextureMemory应用 Mipmap 串流和预算并且在加载完成后由纹理使用的内存量。
totalTextureMemoryMipmap 级别 0 的所有纹理将使用的内存总量。

变量

hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。
anisoLevel纹理的各向异性过滤级别。
dimension纹理的维度(类型)(只读)。
filterMode纹理的过滤模式。
graphicsFormat返回纹理对象的 GraphicsFormat 格式或颜色格式。
height纹理的高度(以像素为单位)。(只读)
imageContentsHash纹理的哈希值。
isReadable如果在导入纹理时选中了“Read/Write Enabled”复选框,则返回 true;否则返回 false。对于通过脚本创建的动态纹理,始终返回 true。有关更多信息,请参阅 TextureImporter.isReadable。
mipMapBiasThe mipmap bias of the texture.
mipmapCount该纹理中有多少个多级渐进纹理级别(只读)。
updateCount更新纹理时,此计数器会递增。
width纹理的宽度(以像素为单位)。(只读)
wrapMode纹理坐标换行模式。
wrapModeU纹理 U 坐标换行模式。
wrapModeV纹理 V 坐标换行模式。
wrapModeW Texture3D 的纹理 W 坐标换行模式。

公共函数

GetInstanceID返回对象的实例 ID。
ToString返回对象的名称。
GetNativeTexturePtr获取指向纹理资源的原生(底层图形 API)指针。
IncrementUpdateCount递增更新计数器。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。
SetGlobalAnisotropicFilteringLimits设置各向异性限制。
SetStreamingTextureMaterialDebugPropertiesUploads additional debug information to materials using textures set to stream mipmaps.

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。