Version: Unity 6.0 (6000.0)
语言 : 中文
Streaming Virtual Texturing 要求和兼容性
在项目中启用 Streaming Virtual Texturing

Streaming Virtual Texturing 的工作原理

此功能为实验性功能,尚未准备好用于生产环境。未来可能会对功能和文档进行更改或移除。

Streaming Virtual Texturing 系统 (SVT) 将纹理划分为图块。

在运行时,当 SVT 对纹理进行采样时,它会执行以下操作:

  • 它对间接纹理进行采样,计算非虚拟 UV,并使用这些 UV 对缓存纹理进行采样。
  • 它将虚拟 UV 坐标转换为图块 ID,并绑定一个额外的渲染目标来接收这些图块 ID。CPU 将这个渲染目标异步复制回主内存,并在一个单独的线程上对其进行处理,从而生成请求,让异步读取管理器将这些图块从磁盘加载到 GPU 内存的缓存中(前提是这些图块在缓存中尚未存在)。

这些运行时操作的开销意味着,将纹理组合在一起并同时对它们进行采样会更有效率。这个过程称为堆叠纹理。使用相同 UV 坐标同时采样的一组纹理称为纹理堆栈。

SVT 在帧渲染期间发出图块请求,因此将请求的图块加载到 GPU 缓存可能需要几毫秒到几秒的时间,并且在某些情况下它们可能根本不会加载到 GPU 缓存中。如果请求的图块没有加载到缓存中,SVT 具有自动回退机制:它会从更高的 Mipmap 级别对图块进行采样,直到请求的图块位于缓存中。这会导致细节级别降低,直到图块完全加载。

高清渲染管线调试视图中的 SVT

高清渲染管线 (HDRP) 调试视图显示有多少相邻屏幕像素请求相同的图块。

要打开 HDRP 调试视图,请导航到 Unity 顶部菜单并选择窗口 (Window) > 分析 (Analysis) > 渲染调试器 (Rendering Debugger) > 渲染 (Rendering)。要查看 SVT 的调试数据,请将全屏调试模式 (Fullscreen Debug Mode) 设置为请求的虚拟纹理图块 (RequestedVirtualTextureTiles)

调试视图为每个图块 ID 使用不同的颜色。
调试视图为每个图块 ID 使用不同的颜色。

对相同纹理图块进行采样的像素具有相同的颜色。色调(绿色、红色等)表示图块所属的 Mipmap 级别。例如,所有黄色图块都属于纹理的 Mipmap 1 级。

Streaming Virtual Texturing 要求和兼容性
在项目中启用 Streaming Virtual Texturing