Sparse Virtual Texture
从版本 2018.3 开始,Substance 3D Painter在其实时视口中使用Sparse Virtual Texture ( SVT )来管理大量纹理。 此技术允许仅从特定角度需要的纹理输入和输出,以便在GPU内存上保持特定的占用空间。 它可以提高具有大量纹理集(或UDIM)的项目的性能。
支持的平台
稀疏纹理依赖于特定的硬件配置才能完全实现性能。 如果当前配置不支持该功能,Substance 3D Painter将 回退 到软件实现(这将降低精确度和性能)。
在设置中,可以强制Substance 3D Painter使用软件回退而不是硬件加速。
以下是支持硬件加速Sparse Virtual Texture的配置:
- Nvidia GeForce(驱动程序411.63或更高版本)
- Nvidia Quadro(驱动程序411.63或更高版本)
- AMD FirePro和Radeon Pro(驱动程序18.9.3或更高版本) *
- AMD Radeon(驱动程序18.9.3或更高版本)*
- Nvidia Quadro M2000
- Nvidia Geforce GTX 970
- Intel GPU
- 操作系统不支持的硬件功能
- 任何GPU型号
- Nvidia GeForce(驱动程序410.73或更高版本)
- Nvidia Quadro(驱动程序410.73或更高版本)
- AMD FirePro和Radeon Pro(驱动程序18.9.3或更高版本) *
- AMD Radeon(驱动程序18.9.3或更高版本)*
- Intel GPU
- * :默认情况下,硬件加速处于禁用状态,可以在设置中手动启用硬件加速。
为什么Substance 3D Painter使用Sparse Virtual Texture?
Substance 3D Painter使用其主要引擎来计算纹理,然后在视口中显示。 这意味着引擎和视口必须共享GPU内存(VRam)才能计算和显示这些纹理。 项目包含的纹理集(或UV 平铺)越多,视口所需的内存就越多。 如果视口在GPU上占用了太多内存,则主引擎没有足够的空间来计算纹理,因此必须将纹理逐出到系统内存(Ram)中。 这将导致表现不佳和计算缓慢。
SVT的目标是为视口在GPU内存上的使用量制定预算,从而让主要引擎有尽可能多的空间进行计算。 该系统的优势在于,它还解锁了将更大的项目加载到Substance 3D Painter中,同时仍可正常工作的功能。
稀疏纹理的工作原理是什么?
Sparse Virtual Texture是一种不完整的纹理。 这意味着应用程序仅将部分纹理加载到内存中。 只加载需要的内容,其余内容放入系统内存或磁盘(缓存)。 再次需要时,将从缓存中检索纹理并将其放回视口。 要使传输速度足够快,系统必须依赖 mipmaps 才能在不同纹理分辨率之间快速跳转。 这就是为什么快速进入视口可能会首先显示模糊的纹理,然后在几秒钟后提高品质。
有关更多技术知识,请参阅: Sparse Virtual Texture 。
缓存位置
当没有足够的可用系统内存(Ram)来存储SVT缓存时,Substance 3D Painter将改为切换到计算机硬盘驱动器以存储缓存。
此缓存的位置默认位于“操作系统临时文件”文件夹中。 可通过进入应用程序的主要设置来更改此位置,请参阅常规首选项 。
着色器兼容性
为了充分利用SVT,着色器必须从稀疏系统中请求和读取纹理。 因此,先前基于 vec2纹理坐标 和 取样器 的函数已被弃用。 现在,提供了Helper函数来改用Sparse纹理。
要更新着色器,请执行以下操作: