苹果 Vision Pro 的有效分辨率与 Quest 3 相同……有时?并且目前应用开发者对此做不了太多。

这是一篇关于苹果 Vision Pro 与 Meta Quest 3 光学和渲染相关的文章,主要内容总结如下:

  • 前言:对 KGOnTech 关于苹果 Vision Pro 光学模糊和对比度低于 Meta Quest 3 的文章进行部分反驳和部分确认,文章分为两部分,包括可变光栅化率(VRR)和 visionOS 的帧渲染方式,以及用于测试眼跟踪世界后的基准工具。作者是 ARM64 和 VR 爱好者,拥有 Quest 3 并对 Vision Pro 进行了实验。
  • 第一部分:苹果 VRR 入门

    • VRR 的作用:VR 渲染是实时任务,Meta Quest 3 和 PC 应用通过降低渲染目标分辨率来管理时间预期,而 Vision Pro 则通过 VRR 由操作系统控制 GPU 计算和内存带宽。VRR 基于减少片段光栅化数量、渲染纹理写入和读取数量的关键思想,与可变率着色技术不同,Apple VRR 纹理会压缩周边细节。
    • visionOS 的 VRR 模式:visionOS 有两种渲染模式,固定中心凹渲染(FFR)26PPD(无眼跟踪)和动态中心凹渲染(DFR)40PPD(眼跟踪)。大多数 Metal 应用限于 FFR 26PPD,只有 RealityKit 没有限制。非 Metal 应用的动态 foveation 范围从 5PPD 到 40PPD,不确定性为±8deg。在渲染 FFR 26PPD Metal 应用时, compositor 也会应用眼跟踪 VRR,有减少纹理采样读取的好处,但也有层未进行 mipmap 处理可能出现锯齿的缺点。
  • 第二部分:构建眼跟踪后世界的基准工具

    • 利用 mipmaps 窥视 Apple 的中心凹:通过在 RealityKit 中使用 DrawableQueue API 发现,创建并渲染启用 mipmaps 的纹理时,采样的 mipmap 级别取决于视图的光栅化率。作者创建了一个 28”虚拟 1080p 显示器的 RealityKit 应用程序,通过上传不同颜色到不同 mipmap 级别来检查显示细节。实验发现,由于 OS 的帧缓冲区固定,1080p 显示在固定中心凹渲染中会使用 mipmaps,且正常 40PPD 渲染在中心凹大多不使用 mipmaps,但无眼时分辨率会减半。
    • 哪种 mipmap 热图与 KGOnTech 的照片匹配:对比发现测试结果与动态中心凹渲染更匹配,但存在一些差异,如 box 11 和 12 的模糊程度与 KGOnTech 的照片不一致。推测可能是 DSLR 镜头的 gaze 置信窗口较宽或面板距离镜头视图较远导致 mipmap 混合更多。同时计划测试 Quest 3 在 mipmap 混合方面的优势。
    • 通过 mipmaps 量化近似有效显示器分辨率:对于 30 英寸外的 28”虚拟显示器,1080p 似乎处于有效分辨率的阈值,4K 显示器会立即使用 mipmaps,1.5x 1080p 也会开始混合较低分辨率的 mipmaps。对于 1000”电影屏幕,边缘会出现 mipmap 级别 1 的下降。将 1080p 显示器靠近 5 英寸,黄色光晕会消失。
    • 桌面流是否使用 mipmapping:检查文本渲染任务发现,无 mipmaps 的纹理在中心凹渲染时有明显的锯齿伪影,而有 mipmaps 的纹理则较为均匀,说明黄色光晕的存在可能意味着在特定距离和渲染分辨率下容易出现锯齿和清晰度问题。
    • 能否优化清晰度:对于动态图像,作者的渲染方法可实现远距离渲染对象的超采样,但无眼跟踪 VRR 的 40PPD 会导致 Vision Pro 热节流。对于静态图像和普通应用开发者,可通过锐化或过滤低 mipmap 级别来确保线性模糊不会影响虚拟显示器。同时提到在 GPU 或 shader 级别使用随机蓝噪声进行不同 mipmap 级别之间的抖动、羽化或混合可能增加感知清晰度,但作者不是图形程序员。
  • 总结:苹果 Vision Pro 在特定条件下(如眯眼或特定距离渲染文本)与 Quest 3 有相同的有效分辨率,但由于其低帧缓冲区分辨率和易出现 mipmap 混合的问题,在某些情况下文本可能更模糊。未来的眼跟踪头戴设备在拍摄时可能不会如此宽容。苹果应改进超采样和 mipmap 控制。
  • TL;DR:如果在距离 30 英寸处的虚拟 28”1080p 面板上渲染文本,Vision Pro 可与 Quest 3 有相同的有效分辨率。Quest 3 有更好的层超采样,Vision Pro 基本无超采样且渲染纹理分辨率低易出现 mipmap 问题,但这些都是可软件修复的,且 Vision Pro 仍有更多像素,ALVR 的 40PPD 渲染在 PCVR 流中不受 mipmap 限制。
  • 源代码:VRR 测试基准的源代码可在 GitHub https://github.com/shinyquagsire23/VRRClarityTestbench 上找到。
  • 编辑说明和忘记的数字:文中对一些数据进行了编辑和更正,如垂直 Drawable 分辨率为 1824,无中心凹/VRR 时 1920x1824 分辨率的 PPD 为 18.387PPDx19.339PPD,OS 开始加载 mipmaps 前的最大全视图渲染纹理分辨率为 4800x4560 等。
阅读 10
0 条评论