Tuanjie Variable Rate Shading (VRS),用于动态调整图像中每个像素的渲染细节或“着色”速率,通过降低采样点数目,将一定数量的采样点作为一个Unit进行渲染,以此控制 Shading Rates。开启 VRSVirtual Reality More info
See in Glossary 后,可以在保证视觉表现的情况下,减少 GPU 的工作负担,从而提高渲染效率,特别是在资源有限的情况下。
团结引擎从 1.4.0 版本开始,全面支持 VRS。在 Tuanjie Editor 中,可以通过对不同的 Renderer 设置不同的 Shading Rate,从而实现屏幕的不同位置有不同的渲染速率,以达到降低 GPU 开销的目标。同时,除了支持自定义设置 Shading Rates 外,团结引擎提供了一种 Camera-Relative Shading 算法,开启后可以为未手动设置 Shading Rate 的 Renderer 自动计算近似 Shading Rate 值,以降低逐一手动修改 Renderer 的开发成本。
点击可快速跳转至各章节说明:
Tuanjie VRS 目前已支持大部分主流平台及图形 API,并且引擎将根据不同的平台和不同的图形 API 自动调整可用的 Shading Rate。
注意: VRS 对于目标平台的适配,取决于目标平台系统的图形 API,请确保目标设备/平台对于图形 API 充分支持。
图形 API | 是否支持 | 版本要求 |
---|---|---|
OpenGLES | 支持 | 3.2及以上 |
Vulkan | 支持 | Vulkan 1.2版本及以上 |
DX11 | 不支持 | DX11 本身不支持VRS |
DX12 | 支持 | / |
Metal | 当前版本不支持 | / |
在 Tuanjie Editor 中,依次点击 Project Settings >> Graphics >> Shading Settings,默认为关闭状态。
点击展开下拉菜单,选择开启VRS,有两种模式可以选择:
开启后可以使用 VRS 功能,且可以自定义每个 Renderer 的 Shading Rate。
选中需要修改的 Renderer,在 Inspector 面板中,找到 Additional Settings,选择 Shading Rate 值。
共 9 个可选项:Size 1x1(表示每个采样点作为一个 Unit 进行渲染,渲染结果画面不变,与不启用 VRS 的表现相同)、Size 1x2、Size 2x1、Size 2x2、Size 1x4、Size 4x1、Size 2x4、Size 4x2、Size 4x4(表示每 4x4 的采样点作为一个 Unit 进行渲染,渲染结果画面最模糊)。
若不修改,默认 Size 1x1。
开启后可以使用 VRS 功能,且默认使用 Camera-Relative Shading 算法,为未手动设置 Shading Rate 的 Renderer 自动计算近似 Shading Rate 值。
因不同的图形 API 支持的 Shading Rate 有差异,且部分图形 API 对 Shading Rate 并非全量支持,基于实际调试和研究结果,Camera-Relative Shading 算法对图形 API 原生不支持的 Shading Rate 自动计算均进行了统一处理,设置合理的 Shading Rate 值。
图形 API / Shading Rate | 1x1 | 1x2 | 2x1 | 2x2 | 2x4 | 4x2 | 4x1 | 1x4 | 4x1 |
---|---|---|---|---|---|---|---|---|---|
D3D12 | Y | Y | Y | Y | Cap (Cap/2x2) | Cap (Cap/2x2) | Cap (Cap/2x2) | N (2x2) | N (2x2) |
Vulkan | Y | Y | Y | Y | Y | Y | Y | Y | Y |
GLES(EXT) | Y | Y | Y | Y | Y | Y | Y | Y | Y |
GLES(QCOM) | Y | Y | Y | Y | N (2x2) | Y | Y | N (2x2) | N (2x2) |
注意:
在 Tuanjie Editor 中,依次点击 Window >> Analysis >> Rendering Debugger >> Rendering,Map Overlays 选择“Shading Rate Value Map”,可以开启 VRS Debug 工具。
开启后,Scene 窗口中将通过颜色实时展示当前每个 Renderer 使用的 Shading Rate 值。
Map Sizes:调试工具在 Scene 窗口中的占比,拖动以调整 Scene 窗口中调试工具大小。
Show Shading Rate Map:勾选后,打开 Shading Rate 颜色图例。
开启后,可在 Scene 窗口中实时查看当前场景中设置的 Shading Rate。
VRS 在保证视觉质量的前提下,优化 GPU 的开销。理论上,Shading Rate 越高,则渲染结果画面越模糊,GPU 的优化收益越大。 以下为同一场景中,全部开启最高程度(Shading Rate:Size 4*4)的 VRS 和不开启 VRS 的渲染结果对比。
Tuanjie VRS 可针对场景中任一 Renderer 进行自定义设置并生效。VRS 的目标是降低 GPU 的 Fragment Instructions / Second 和 Fragments Shaded / Second。
Shading Rate 越高,则渲染结果画面越模糊。因此,推荐在渲染内容较重的场景中,对于非视觉重心的 Renderer,设置较高(如 Size 4x4)的 Shading Rate;对于视觉重心的 Renderer,设置较低的 Shading Rate(如 Size 1x1),以保证视觉质量。