OpenXR、OpenVR傻傻分不清楚?简单科普一下
柔情猫猫头妮可
编辑于 2026年01月14日 16:14

前言

如果你经常搜索VR游戏优化相关的教程的话,你或许会经常看到人们推荐你换用OpenXR之类的言论。那OpenXR到底是什么,它又怎么会给你带来性能优势?没有关系,我会尽量简单易懂地解释这些东西。

(本来想着做张图好理解,结果发现其实看懂了这张图就没必要继续往下看了)

API和运行时

要解释OpenXR,我们得先说说API和运行时(Runtime)是什么。打一个非常不准确的比方,现在有两位厨师,一个会普通话,但另一个只会方言,两位厨师的做菜手法也略有不同,但最后都能做出来同一道菜。这里的厨师便是运行时,你与厨师交流的语言就是API。

对于OpenVR API来说,只有SteamVR这个厨子会这门语言,所以要玩OpenVR游戏就必须得用SteamVR,在很多情况下OpenVR和SteamVR这两个词也可以互相指代。SteamVR有两大优势:第一是兼容性 – 现在但凡是能连电脑的VR头显一般都会支持SteamVR,何况不支持的早就被市场淘汰了;第二是生态 – 背靠Steam游戏平台,以及十几年的积累,有不少游戏和工具只支持SteamVR。但这两大优势也反映出它的缺点:臃肿。为了兼容各厂商的各种头显以及各种游戏等等,SteamVR本身会带来额外的性能开销,尤其是如果你的头显不是SteamVR原生头显的话,SteamVR和头显的私有运行时合起来就能吃掉一大半显存。(比如牢派Super,光是PimaxPlay和SteamVR就已经吃掉我5GB显存了)

另一方面,OpenXR是目前最新的行业公共标准,各大VR厂商都可以按照这个标准制作专门为自家头显优化的OpenXR运行时(当然SteamVR本身也支持OpenXR),并且得益于“模块化”的设计,各厂商可以往自家的运行时上添加各种API扩展(如眼追,四视图渲染等等),玩家也可以在其上安装各种API层(例如向OBS直接输出画面数据以获得最优的录制分辨率和FOV)。硬要说缺点的话那就是支持的游戏比较少(毕竟还是新标准)以及想要让你的OpenXR运行时通过Khronos标准认证的话得给那个组织缴纳三万美元的测试费,当然这是开发者要考虑的,和我们玩家没啥关系,而且就算没有认证也不是不能用。

绕过SteamVR(OpenVR转译OpenXR)

上面我提到使用OpenVR的游戏必须使用SteamVR,这是因为支持OpenVR API的运行时只有SteamVR。但是,就像你可以用DXVK把DirectX游戏转译成Vulkan游戏一样,你其实可以把OpenVR API转译成OpenXR,这样一来你就可以绕过SteamVR,减小内存和显存的占用率,并且可以使用OpenXR Toolkit之类的优化工具。

对于Windows用户目前唯一的工具是OpenComposite (https://gitlab.com/znixian/OpenOVR) ,Linux用户还可以用xrizer (https://github.com/Supreeeme/xrizer)。不过OpenComposite的那个自动全局安装器不怎么管用,如果你发现游戏还是会唤起SteamVR的话就用替换dll的方法。两种使用方法在readme里都有写,网页机翻应该足够看懂。

结论

没了...本来是想做成视频给后面的注视点渲染技术概述做铺垫的,但是体量有点小而且目前不是很想自制视频,所以就这样吧

另外如果你有一定的英语阅读能力的话我非常推荐看mbucchia大佬写的wiki(https://github.com/mbucchia/VirtualDesktop-OpenXR/wiki/Oculus-%22Runtimes%22)讲的比我好,我基本也只是复述一遍