Sparse Virtual Texture

从版本​ 2018.3 ​开始,Substance 3D Painter在其实时视口中使用​Sparse Virtual Texture ( SVT )来管理大量纹理。 此技术允许仅从特定角度需要的纹理输入和输出,以便在GPU内存上保持特定的占用空间。 它可以提高具有大量纹理集(或UDIM)的项目的性能。

支持的平台

稀疏纹理依赖于特定的硬件配置才能完全实现性能。 如果当前配置不支持该功能,Substance 3D Painter将​ 回退 ​到软件实现(这将降低精确度和性能)。

在设置中,可以强制Substance 3D Painter使用软件回退而不是硬件加速。

以下是支持硬件加速Sparse Virtual Texture的配置:

Platform
支持(硬件加速)
不支持(软件回退)
Windows
  • 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
Mac OS
  • 操作系统不支持的硬件功能
  • 任何GPU型号
Linux
  • 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纹理。

要更新着色器,请执行以下操作:

  • 对于​默认着色器 :按照更新着色器页面中的分步过程操作。
  • 对于​自定义着色器 :查看日志中的错误消息以及着色器 API页。
WARNING
如果旧项目的着色器不是最新的,则旧项目可能会显示白色闪光灯。 请参阅此页面了解更多信息: 移动相机时闪光网格。
recommendation-more-help
substance-3d-painter-help-guide