杨栋:Unity 5.4支持多种VR设备 左右眼同时渲染
在今日举行的全球虚拟现实与增强现实中国峰会中,Unity大中华区平台技术总监杨栋在活动中进行了《Unity跨平台VR开发详解》的主题演讲。
杨栋表示,“Unity 5.4版本整合了主流VR硬件的SDK,提供统一API用于和不同VR设备进行交互,能在同一个项目中切换不同的设备做测试,并进行底层的渲染管线优化,尽量做到左右眼一起渲染。”
“索尼为了保证用户体验,PS VR进入的时候一开始渲染的是非VR模式”杨栋提到了PS VR需要注意的一个点,“首先会进行检测头盔和手柄是否已经正确连接。只有这些检测通过,玩家才能进入PS VR模式。在开发游戏的时候需要注意加入这一个过程,否则提交可能会失败。”
以下是演讲实录:
杨栋:Unity是从前年开始进入VR相关开发,今天给大家分享下Unity对于不同平台的支持以及未来我们想要做的一些事情。
首先看下市面上主流的一些设备,大家都很熟悉,Oculus、HTC vive、PS VR、谷歌carboard以及Gear VR。
Fove这个设备也是今年年底发布,主要的功能是实现眼部追踪。Meta其实是属于混合现实的。
对于内容开发者来说,希望的是能够一次把内容编译到所有的设备上。国外的开发者们不喜欢做内容之后,来适配各种设备。手游时代iOS还好,安卓平台的设备和屏幕是千千万万。
对于Unity来说,目前VR设备整合模式我们支持两种。一种是第三方插件模式,尤其是自己写的插件。如果足够了解Unity系统模式,完全可以自己写个插件,把系统架在上面。当然这种方式需要双倍的CPU/GPU渲染成本。
第二种方式是我今天想重点提的。我们可以把第三方硬件比如说vive的SDK直接整合到我们的编辑器中,整合的好处在于我们可以进行底层的渲染管线优化,尽量做到左右眼一起渲染。后面我也会解释如何做到一起渲染来提高帧率,大家都知道帧率对于VR体验来说非常重要。未来我们也会加入对daydream平台的支持。
给大家解释下如何原生支持多种VR设备。只要下载我们最新版本的Unity 5.4就可以支持Oculus、GearVR、OpenVR(SteamVR/HTC vive)以及PS VR。因为已经集成到Unity中,所以无需添加额外的SDK。接下来,可以在同一个项目中切换不同的设备做测试。我们现在有一个添加列表,将设备添加进去就可以进行切换测试。
一些主要接口包括控制头盔的不同模块之间的交互、获取当前连接设备的基本信息、切换设备以及连接GPU等。这个蓝色的部分就是支持同时左右眼渲染的按钮。
这是专门针对PS VR的相关选项,其实基本模式是一样的。对于头盔信息的交互、如何控制它的手柄。PS VR的游戏放上去以后一开始渲染的是非VR的模式,在这里你可以检测头盔和手柄是否已经正确连接。只有这些检测通过,玩家才能进入PS VR模式。
为什么要这么做?索尼是从用户体验角度来看。如果用户打开游戏,头盔和手柄没有连接,就没法玩,但用户也不知道怎么回事。如果开发游戏不做这个过程,提交的时候就可能被拒绝。
给大家解释下Virtual Reality Supported选项的问题。打开这个选项之后,如果头盔连着电脑,系统会自动把相机所看到的画面渲染到HMD头盔。当然,你也可以使用摄像机组件上的stereo TargerEye属性来禁用。头部移动跟踪以及适合于所连接设别的Filed of View(FOV)会自动设置好。主要就是干这三件事。
这个功能主要是为了减轻主线程占用的CPU。目前主要的三种渲染中,Forward Rendering以及Deferred Rendering是支持这个功能的,而比较老的Legacy Deferred不支持。这个功能其实并不是专门为VR而开发的,而是为了整个系统图像性能和效果的提升。但任何为了实时渲染效果提升而做的工作对于VR来说都是非常关键的。