- 联系我们
- 技术支持: vrsupport@qiyi.com
- 商务合作: business@iqiyismart.com
- 人才招聘: 查看职位 >
- 公司地址:北京市朝阳区宏泰东街绿地中心B座11层
奇遇UnityXR SDK基于UnityXR Plug-in Framework(https://docs.unity3d.com/Manual/XR.html (opens new window))开发,目前支持以下UnityXR子系统,具体接口说明参见UnityXR说明文档:
Subsystem | Reference |
---|---|
XRDisplaySubsystem | https://docs.unity3d.com/Manual/xrsdk-display.html (opens new window) |
XRInputSubsystem | https://docs.unity3d.com/Manual/xrsdk-input.html (opens new window) |
XRSettings | https://docs.unity3d.com/ScriptReference/XR.XRSettings.html (opens new window) |
XRNodeState | https://docs.unity3d.com/ScriptReference/XR.XRNodeState.html (opens new window) |
本指南介绍了UnityXR为开发者提供的统一XR Rig prefab及功能。
用于设置追踪原地的模式。
Device:以头显位置和方向作为参考进行追踪,Recenter会复原虚拟相机的位置。
Floor:以头显检测到的地面为参考面进行追踪,Recenter不会改变虚拟相机的高度。
注:对于多场景应用中,XRRig的使用注意,参见6.1 XRRig的使用注意 (opens new window) 。
本指南介绍了奇遇为开发者提供的一些常用功能,在工程中找到 Packages/QIYU XR Plugin/Assets/QiyuManager.prefab,将QiyuManager.prefab拖进场景。
Foveation Level等级越高帧率越高,但是像素损失越多,会影响边缘区域清晰度,请根据渲染需要选择合适的等级。详细说明参见3.6.1注视点渲染。
设置RenderTexture缩放系数,默认为0.7(推荐),开发者可根据场景需要调整。系数越小,画面清晰度越低,但帧率会提升,功耗降低;系数越大,画面清晰度提升,但是帧率会降低,功耗和内存会增加。建议最大值不要超过1。
使用Unity专业版,如果取消了ShowSplashScreen,且“VirtualRealitySplashImage”为空,在 应用初始化阶段设置eyeTextureResolutionScale会失效,请在程序启动1s后再设置。(此问题为Unity bug)
URP工程,设置eyeTextureResolutionScale=1.0会失效,请设置非1值。
注:UnityXR提供的“Tracked Pose Driver”没有模拟头部转动的“脖子模型”和模拟手柄运动的“手臂模型”,故3Dof的效果不是很自然。推荐使用奇遇提供的3Dof接口,加入了“脖子模型”和“手臂模型”,可以更加自然的模拟身体运动。接口参见4.4 奇遇3Dof模式 (opens new window)。
本指南描述了SDK支持的输入交互功能。
UnityEngine.XR.InputDevices封装了所有的设备输入接口,目前包括手柄控制器的输入、震动等接口。开发者可查阅XR Interaction Toolkit教程 (opens new window)接入输入功能。
注:为了达到更自然的手柄交互体验,从v1.4.0开始,deviceRotation值做了调整,将手柄握持杆斜向上35°的姿态作为初始值,如下图所示。如果在游戏中调整过手柄角度,在升级SDK后,需要将模型角度水平向上旋转35°,达到自然的握持姿势。
如果开发者需要在场景中使用奇遇手柄模型,可将需要的手柄模型拖进XRcontroller指定Model Prefab位置。
注:
Demo:
QiyuXRController脚本可以替换默认的XRController实现模型自动切换功能(开发者也可以根据设备类型自行开发),使用前需要拖拽两个模型prefab到脚本对应位置。
奇遇 SDK中提供了VR输入法键盘,方便开发人员将虚拟键盘放置在应用程序中。
本指南介绍了在Unity中创建引人入胜的VR音频体验的开发资源。
添加AudioSource组件,设置3D音效。
开发者可在ProjectSettings-Audio中配置空间音频插件。
Resonance Audio是一个多平台的空间音频SDK,可提供高保真度、强大的空间音频技术,对于VR游戏和视频的真实体验有很大的帮助。 插件下载地址:https://resonance-audio.github.io/resonance-audio/develop/unity/getting-started
奇遇设备支持多款Unity开发者常用的第三方音频插件,比如Fmod、Wwise、Photon语音等。由于插件个别配 置项默认值不兼容,导致系统录屏功能声音异常,需要修改个别配置项,具体参见#6.8 常用音频插件 (opens new window)。
本指南介绍了有助于提升性能的高级渲染功能。
注视点渲染(Foveation Rendering)可以优化VR场景的渲染,该技术通过为视野中心提供全分辨率(无损),降低周边视野(人眼焦点区域之外)分辨率的方式来达到优化渲染的目的。静态注视点渲染(FFR)是指将视野焦点固定在视口中心位置,实现从中心向周围逐渐降低清晰度的效果。
开启和配置"Foveated Rendering"选项如下图所示,在QiyuManager对象上QiyuManager.cs脚本中控制。
开发者也可以通过4.1章节提供的接口设置注视点渲染级别或自定义注视点渲染参数。
FFR已知问题:
开启HDR的时候,设置FFR会失效。
UnityXR提供了Single Pass立体渲染技术(https://docs.unity3d.com/Manual/SinglePassStereoRendering.html),通过一个Camera实现立体渲染,可降低50%的DrawCall,对于CPU占用高的场景帧率提升明显。 开发者可通过Project Settings->XR Plug-in Management->QIYU,选择MultiView,该选项全局生效。
Vulkan是一种现代图形API,在许多方面与OpenGL ES类似(OpenGL ES是奇遇3应用程序开发中使用的主要图形API),可以带来更好的CPU渲染性能,但无法提高GPU性能。 具体打开Vulkan设置的步骤如下:
Vulkan已知问题
为了提升文字、图片、视频等资源的渲染清晰度,可以将需要高清显示的图形图像区域在合成层中进行渲染。由于合成层渲染会使系统负载增加,在使用过程中不建议统一场景使用过多的Overlay或Underlay,建议小于5个。
在XR Camera上,添加QiyuOverlayManager组件。
场景中Create Empty GameObject,添加QiyuOverlay组件。
Overlay Type: 渲染方式Overlay或Underlay,Overlay会遮挡场景中的所有物体,Underlay可以使用Shader挖洞处理,实现在EyeBuffer后渲染。
Layer ID: 渲染顺序,值越小越先渲染。
注意:场景应该遵循近处物体遮挡远处物体的规则来设置 Lay ID值,以确保正确的景深遮挡关系,否则可能会出现对焦不舒服的情况。
Overlay Shape
Mesh Face: 决定渲染合成图层的正反面。
Is External Surface: 是否是Android OES纹理,OES纹理需要指定图像宽高,并使用SetAndroidOESTextureID(int oesID)方法设置纹理id。请参考图3.7.2.2。
示例场景参见5.2.4。
Passthrough为制作混合现实的内容提供了可能性。通过VR头显上的摄像头拍摄到实时的真实环境作为背景,与虚拟内容叠加、融合后,呈现出虚实结合的效果。奇遇各型号设备支持的透视效果如下:
设备型号 | Passthrough |
---|---|
奇遇 MIX | 双目彩色透视 |
奇遇Dream Pro | 黑白透视 |
奇遇Dream | 不支持 |
奇遇 3 | 不支持 |
点击场景中的QiyuManager,在属性面板中勾选PassthroughAsBackground,加载该场景即可自动打开Passthrough作为背景,场景销毁时会自动关闭Passthrough。
注意:
奇遇SDK提供了一些可供开发者参考、体验的MR 示例场景,在导入QIYU UnityXR SDK之后,再导入QiyuMRSamples.unitypackage,可以看到以下场景,打包运行在奇遇VR设备上浏览MR效果:
使用步骤:
下载完成后,导入工程:先导入奇遇SDK,再通过Menu-Assets-Import Package-Custom Package导入。
设置XR Rig-Tracking Origin Mode为Floor。
按照快速入门 (opens new window)提供的打包步骤,编译出包,在奇遇VR设备上运行。
同时我们提供了一个完整的Sample Project:MRDinosaur,点击下载MRDinosaur工程。 (opens new window)
如果shader里ColorMask是 RGB,请修改为RGBA。例如:
请修改为:
如果shader最后输出想要显示纹理的alpha,请确保finalRGBA的alpha正确。例如:
请修改为:
本指南介绍了奇遇提供的简化开发者部分工作的功能。提供入口Menu-QIYU。
一键自动修改工程配置至推荐配置,详细介绍参见快速入门步骤8 (opens new window)。
如果开发者需要在Manifest文件中加入额外的内容(比如权限),可通过“Menu-QIYU-Tools-Create Manifest”一键自动生成Manifest文件。详细介绍参见快速入门步骤9 (opens new window)。
为了提升开发效率,场景快速预览功能帮助开发者可以快速在设备里查看效果,打包使用AssetBundle方式进行场景打包,如果预览过程中修改代码,需要卸载应用后重新安装。
功能说明
为了提升开发效率,避免开发过程中频繁打包耗时,PC Direct Preview功能可以帮助开发者在Unity Editor中运行场景,同时在头显中可看到实时的画面。
支持的电脑配置:
操作系統:Windows10及以上
显卡:NVIDIA GeForce GTX 1060 / AMD 5700
CPU:Intel Core i7-6700 / AMD FX 8320及以上
内存:8G及以上
使用方法: