vivie往Focus移植

平台差异

一般而言,CPU和GPU运算能力在PC上是相当程度地优于mobile。

在VIVE上的Arcade Saga上,我们保持了90 FPS,Drawcall大约是250,而三角形数量大约是140K。

在手机上,我们尝试去最佳化以保持60 FPS,Drawcall大约是50,而三角形数量大约是20K。

使用者行为差异

控制器的自由度(Degrees of Freedom,DoF)以及控制器功能是两个主要的使用者行为与体验的要素。

自由度

VIVE是6个自由度的机器,在头部装置以及控制器上都可以获得位置和旋转的资讯。Wave VR可以支持3和6个自由度的追踪装置。举个例子,HTC Link是6个自由度的头部装置并且有两只6个自由度的控制器。除此之外,Wave VR可以用来结合3个自由度以及6个自由度。因此,在你开始移植之前,你必须要注意使用者体验的差异在VIVE以及Wave VR上。

控制器功能

按钮数量在VIVE和Wave VR上有可能有差异

在VIVE上你可以使用四个按钮:触碰(Touch),触发(Trigger), 紧握(Grip) 以及表单(Menu)。

在Wave VR上你可以使用三个按钮(基于 HTC Link):触碰(Touch),触发(Trigger)以及表单(Menu)。

所以我们必须要在移植之前完成按钮的对照。

StreamVR Wave VR
SteamVR_Controller.ButtonMash.Touchpad wvr.WVR_InputId.WVR_InputId_Alias1_Touchpad
SteamVR_Controller.ButtonMash.ApplicationMenu wvr.WVR_InputId.WVR_InputId_Alias1_Menu
SteamVR_Controller.ButtonMash.Grip wvr.WVR_InputId.WVR_InputId_Alias1_Grip
SteamVR_Controller.ButtonMash.Trigger wvr.WVR_InputId.WVR_InputId_Alias1_Trigger

移植 VIVE 到 Wave VR

在开发者了解VIVE以及Wave VR的差异后,我们将会展示如何移植Unity开发的应用。

Unity专案设定

  1. 导入Wave VR SDK到你的专案。
    _images/portingguide_import.png

在导入SDK后,你会发现SteamVR以及Wave VR会有冲突因为SDKs互相有重叠。因此,你必须要 删除所有的SteamVR设定以及代码 从你的专案以防万一Unity无法识别从OpenVR来的功能。

你必须用Wave VR置换它们。 这里是一些需要的操作:

StreamVR Wave VR
StreamVR_Controller.Device WaveVR_Controller.Device
StreamVR_Controller.Device.GetPress WaveVR_Controller.Device.GetPress
SteamVR_TrackedObject WaveVR_PoseTracker
SteamVR_ControllerManager WaveVR_ControllerManager
  1. 在喜好设定中,下载Android SDK以及JDK,接着在喜好设定中指定它们。
    _images/portingguide_preference.png
  2. 在编译设定中,把平台从PC切换到Android。
    _images/portingguide_Buildsetting.png
  1. 从玩家设定中关掉”虚拟现实支持”。
    _images/portingguide_project_setting.png

相机

在相机设定之中,移除SteamVR的功能。从专案中移除 Main Camera (origin) 并重新挂载 WaveVR prefab 当作新的相机。

原始:
_images/portingguide_remove_camera_before.png
更新:
_images/portingguide_remove_camera_after.png

控制器

挂载两个预设的控制器prefabs。一个是 右手 ,一个是 左手

_images/portingguide_add_controllerprefab.png

猜你喜欢

转载自blog.csdn.net/alone_ws/article/details/80701794