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

公共函数

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

继承的成员

静态变量

allowThreadedTextureCreationAllow Unity internals to perform texture creation on any thread (rather than the dedicated render thread).
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 ==比较两个对象引用,判断它们是否引用同一个对象。