新闻  |   论坛  |   博客  |   在线研讨会
Unity3D:稀疏纹理
xyni2023 | 2023-05-05 10:00:24    阅读:203   发布文章

c772aa7900bdaaaea31f0854ab564ff3_8.jpg
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
稀疏纹理

稀疏纹理 (Sparse Textures)(也称为“区块纹理”或“超级纹理”)是太大而无法完全存入显存的纹理。为了处理它们,Unity 将主纹理分解为更小的矩形部分,称为“区块”(tile)。然后,可根据需要加载各个区块。例如,如果摄像机只能看到稀疏纹理的一小块区域,那么只有当前可见的区块需要加载到内存中。

除了区块特性之外,稀疏纹理的行为与目前所用的任何其他纹理相似。无需进行特殊修改,着色器即可使用它们,而且它们可以有 Mipmap,使用所有纹理过滤模式等。如果由于某种原因无法加载特定的区块,则结果是不明的:有些 GPU 在缺少区块的位置显示黑色区域,但此行为未标准化。

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

请参阅 SparseTexture 脚本参考页面,了解有关使用脚本处理稀疏纹理的更多详细信息。

示例项目

此处提供了稀疏纹理的一个最小示例项目。

示例项目中所示的稀疏纹理示例项目中所示的稀疏纹理

该示例显示了一个简单的程序化纹理图案,允许您移动摄像机以查看它的不同部分。请注意,该项目需要最新的 GPU 和 DirectX 11.2 (Windows 8.1) 系统,或者使用支持 ARB_sparse_texture 的 OpenGL。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客