谁在使用 Steam 的 OpenVR 时调用 Present()(如果有的话)?

Who calls Present() (if anyone) when using Steam's OpenVR?

我是 directx 和 openvr 的新手,正在尝试了解 OpenVR 合成器 API 的工作原理。文档要求渲染每只眼睛并通过 Submit() 将每只眼睛交给合成器。但是我对 Present() 如何影响此流程感到有点困惑。我预计需要调用 Present() 来渲染每只眼睛,但通过检查一些现有的 VR 游戏,这并没有发生。 Present 被调用以在主(非 VR)监视器上渲染任何视图,但对于合成器绘制的内容根本不被调用。

是否有人调用 Present() 或更低级别的东西?

Present 是在传统的交换链中以 window 显示在您的屏幕上。因为在 VR 中,您使用替代机制和 API 将图像呈现给 HMD,所以您根本不需要 Present。

如果你想在显示器上显示一个副本或其他任何东西,你只需要一个。