Meta Quest 多重采样抗锯齿分析
多重采样抗锯齿 (MSAA) 是一种可以提高计算机图片质量的技术。与在 Meta Quest 上使用 MSAA 相比,在基于电脑的平台上使用该技术的成本更低。根据要渲染的内容数量和运行应用的 GPU 级别,使用 MSAA 的总体开销范围从每帧 0.5 毫秒到 1.5 毫秒不等。
一般来说,您应该始终在 Quest 设备的应用中使用 MSAA,但是不应该超过 4 倍 MSAA 抽样。与进一步增加 MSAA 相比,将 GPU 时间花在分辨率更高的渲染目标上的效果更好。
以下测试和示例图像展示了在使用不同类型应用的 Quest 设备上开启或关闭 MSAA 4x 的结果。
测试参数:
- 视觉缓冲区分辨率 1216 x 1344
- 硬件:Meta Quest
此测试使用一个包含灯光的 Unity 简单场景进行。
测试结果:
| 指标 | MSAA 关闭 | MSAA 4x 开启 |
|---|
渲染成本 | 2.65 毫秒 | 3.15 毫秒 |
解析成本 | 0.17 毫秒 | 0.44 毫秒 |
渲染的图像:

此测试使用一个包含曼德博集合可视化的场景进行。
测试结果:
| 指标 | MSAA 关闭 | MSAA 4x 开启 |
|---|
渲染成本 | 10.449 毫秒 | 11.497 毫秒 |
解析成本 | 0.313 毫秒 | 0.626 毫秒 |
渲染的图像:

此测试使用一个包含点渲染的复杂顶点场景进行。此测试包含很多个几乎看不到的微小顶点。它展示了 MSAA 对分块的影响。无论 MSAA 关闭还是开启,分块成本都非常相似:1.419 毫秒对比 1.534 毫秒。Qualcomm 分块算法的分块计数约为 O(1),被认为具有较好的效果。
测试结果:
| 指标 | MSAA 关闭 | MSAA 4x 开启 |
|---|
分块 | 1.419 毫秒 | 1.534 毫秒 |
渲染成本 | 0.4 毫秒 | 1.38 毫秒 |
解析成本 | 0.14 毫秒 | 0.43 毫秒 |
渲染的图像:

此测试针对低 GPU 工作量的场景。此测试的目的是在 GPU 上几乎没有负载时获得纯粹的开销。通过此测试,可以查看 MSAA 是否关闭,几乎没有解析成本。在这种简单的情况下,驱动程序足够智能,可以直接渲染到系统内存,而不是渲染到平面器,然后从平面器复制到系统内存。
根据 Qualcomm,直接渲染只在 MSAA 关闭时进行。大多数时候,应用非常复杂,直接渲染并无意义。有一些特殊情况,例如,如果需要将一个四边形渲染到一个较小的 RT,直接渲染可以节省一些成本。此外,Qualcomm 提供了一个扩展,可在您不希望由驱动器做决定时用来控制是否直接渲染某个对象。
测试结果:
| 指标 | MSAA 关闭 | MSAA 4x 开启 |
|---|
渲染成本 | 0.044 毫秒 | 0.388 毫秒 |
解析成本 | 0.0 毫秒 | 对比 0.44 毫秒 |
渲染的图像:

MSAA 增加了一些成本。
渲染比较:
测试显示,随着场景片断复杂度的增加,MSAA 的呈现开销百分比会减少,但会产生一些成本。例如,当您在中等复杂度的应用上启用 4x MSAA 时,可以合理地预计 MSAA 会增加约 10-15% 的时间开销。
- GPU 2:高顶点,低片断:0.4 毫秒(MSAA 关闭)对比 1.38 毫秒 (MSAA 4x)
- GPU 2:正常片断工作量:2.65 毫秒(MSAA 关)对比 3.15 毫秒 (MSAA 4x)
- GPU 4:复杂片断工作量:10.449 毫秒(MSAA 关闭)对比 11.497 毫秒 (MSAA 4x)
解析比较:
在同一 GPU 级别下,无论 GPU 工作量如何,解析成本差异都是固定的。根据 Qualcomm,解析成本差异来源于 4x MSAA 的分块计数,每块成本大致相同。
- GPU 2:0.17 毫秒(MSAA 关闭)对比 0.44 毫秒 (MSAA 4x)
- GPU 4:0.14 毫秒(MSAA 关闭)对比 0.30 毫秒 (MSAA 4x)
还要考虑到,一些开销可能来自这些测试使用的分析器,而解析成本的真正差异可能更小。