Oculus SDK创建一个应用程序流程-(libOVR)

来源:互联网 发布:c语言预处理指令格式 编辑:程序博客网 时间:2024/06/10 17:48

优化整合的Oculus SDK让C/C++游戏引擎或应用程序的开发更为方便。在这讨论初始化LibOVR,HMD设备枚举,头部追踪,帧时序,以及画面渲染到Rift。

Oculus所提供的一些样例程序,比如OculusRoomTiny demon源码,可用于验证某个特殊系统或功能。

SDK概要:

对该SDK的使用有三个主要的阶段:setup(安装配置),game loop(游戏逻辑循环)以及shutdown(应用结束,销毁申请空间等)

使用Oculus开发一个应用程序的流程如下:

1.调用ovr_Initialize函数初始化LibOVR

2.调用ovr_Create函数并检查返回值查看是否成功。调用函数ovr_GetHmdDesc(nullptr)周期性的轮询以检查HDM是否存在。

3.将头部追踪功能的代码插入到应用程序的视野以及运动相关代码中。涉及到以下:

a.调用GetPredictedDisplayTime以及ovr_GetTrackingState函数,为当前帧获取头盔的预测方向。

b.在与其他应用的控制行为结合时,将Rift的方位值应用到摄像头视野上。

c.动作以及游戏可玩性的修改要考虑头部方向。

4.初始化渲染HMD

a.基于HMD的属性,选择渲染参数,比如分辨率和视场角。参考:ovr_GetFocTextureSize和ovr_GetRenderDesc.

b.通过创建D3D/OpenGL纹理交换链将数据渲染到头盔中。参考,ovr_CreateTextureSwapChainDX和ovr_CreateTextureSwapChainGL.

5.修改应用程序帧渲染以整合HMD和帧时序。

a.确保引擎支持渲染3D立体视野。

b.添加帧时序的逻辑到渲染循环中,以获取正确的眼部渲染姿态。

c.渲染每只眼睛的视野到中间渲染目标。

  d.调用函数ovr_SubmitFrame提交渲染的帧到头盔

6.头盔内部的UI屏幕显示正常。

7.调用shutdown函数销毁创建的资源,参考:ovr_DestroyTextureSwapChain,ovr_Destroy,以及ovr_Shutdown。


参考网址。

原创粉丝点击