用于处理稀疏纹理的类。
稀疏纹理是整个纹理数据不能立即存在于内存中的纹理。它们通常也称为“区块纹理”或“超级纹理”。
想象一下大小为 16384x16384、每像素 32 位的纹理,它将占用 1GB 内存。该纹理分解为多个“区块”,每个区块可存在于内存中,也可不存在于内存中。您可以在需要时根据与摄像机的距离、玩家必须看到的世界的区域等加载和卸载这些区块。
否则,这些稀疏纹理的行为就像着色器中的其他任何纹理,它们可以有多级渐进纹理,可使用所有纹理过滤模式等。如果碰巧从不存在的区块读取内容,则会获得不存在的结果(在许多 GPU 上,结果为黑色,但不保证如此)。
并非所有硬件和平台都支持稀疏纹理,因此在使用它们前,应检查 SystemInfo.supportsSparseTextures。例如,在 DirectX 系统上,它们需要 DX11.2 (Windows 8.1) 以及相当新的 GPU;在 OpenGL 上,它们需要 ARB_sparse_texture 扩展支持。稀疏纹理仅支持非压缩纹理格式。
创建稀疏纹理后,可使用 tileWidth 和 tileHeight 查询区块大小。区块大小取决于平台和 GPU。
使用 UpdateTile 或 UpdateTileRaw 可使区块位于内存中并更新其颜色数据。使用 UnloadTile 可卸载区块。
另请参阅:稀疏纹理。
isCreated | 是否实际创建了稀疏纹理?(只读) |
tileHeight | 获取稀疏纹理区块高度(只读)。 |
tileWidth | 获取稀疏纹理区块宽度(只读)。 |
SparseTexture | 创建一个稀疏纹理。 |
UnloadTile | 卸载稀疏纹理区块。 |
UpdateTile | 使用颜色值更新稀疏纹理区块。 |
UpdateTileRaw | 使用原始像素值更新稀疏纹理区块。 |
allowThreadedTextureCreation | 允许在任何线程(而不是专用的渲染线程)中创建纹理。 |
currentTextureMemory | The 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 串流和预算并且在加载完成后由纹理使用的内存量。 |
totalTextureMemory | Mipmap 级别 0 的所有纹理将使用的内存总量。 |
hideFlags | 该对象应该隐藏、随场景一起保存还是由用户修改? |
name | 对象的名称。 |
anisoLevel | 纹理的各向异性过滤级别。 |
dimension | 纹理的维度(类型)(只读)。 |
filterMode | 纹理的过滤模式。 |
graphicsFormat | 返回纹理对象的 GraphicsFormat 格式或颜色格式。 |
height | 纹理的高度(以像素为单位)。(只读) |
imageContentsHash | 纹理的哈希值。 |
isReadable | 如果在导入纹理时选中了“Read/Write Enabled”复选框,则返回 true;否则返回 false。对于通过脚本创建的动态纹理,始终返回 true。有关更多信息,请参阅 TextureImporter.isReadable。 |
mipMapBias | The 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 的已加载的激活对象。 |
FindObjectsOfType | Gets a list of all loaded objects of Type type. |
Instantiate | 克隆 original 对象并返回克隆对象。 |
SetGlobalAnisotropicFilteringLimits | 设置各向异性限制。 |
SetStreamingTextureMaterialDebugProperties | Uploads additional debug information to materials using textures set to stream mipmaps. |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.