项目记录 : OpenVR直连模式的理解

openVR驱动接口之IVRDriverDirectModeComponent简介

IVRDriverDirectModeComponent

  • 这个组件是用来实现直接渲染功能的.
  • 该接口是非必须实现的.
  • 用于实现自己HMD的直接渲染模式. 多数人认为这个驱动是为oculus特殊提供的.都没能使用这个接口来.

主要的接口

void CreateSwapTextureSet( uint32_t unPid, uint32_t unFormat, uint32_t unWidth, uint32_t unHeight, void *(*pSharedTextureHandles)[3] )

为oculus的compositor提供,纹理必须使用这个方法来创建.

void DestroySwapTextureSet( void *pSharedTextureHandle )

销毁CreateSwapTextureSet创建的内容.

void DestroyAllSwapTextureSets( uint32_t unPid )

清理所有纹理集.

void GetNextSwapTextureSetIndex( void *pSharedTextureHandles[ 2 ], uint32_t( *pIndices )[ 2 ] )

获取用于绘制的下一个索引号.

void SubmitLayer( void *pSharedTextureHandles[ 2 ], const vr::VRTextureBounds_t( &bounds )[ 2 ], const vr::HmdMatrix34_t *pPose )

每层调用一次来绘制这个帧.每个眼睛共享纹理句柄.纹理必须使用CreateSwapTextureSet创建,每一帧交替进行.所有图层提交后调用.

void Present( void *hSyncTexture )

提交队列化的图层用于显示.

关于直连模式的理解:

  1. 直连模式是渲染模式的一种.使用直连模式,NVIDIA驱动程序将把VR头盔作为 VR应用程序唯一可以访问的头戴式显示器.而非Windows桌面上的监视器.
  2. 直接在显示器上运行,这可以更方便地运行VR内容,而无需摆弄显示设置
    IVRDriverDirectModeComponent在编写发送到头显的最终图像(图像旋转,扫描线交错等)时也允许更大的灵活性。
  3. 此外,直接模式确实可以减少延迟.
    IVRDriverDirectModeComponent可以随时激活显示,从而可以提高帧率.

Does the OSX version of SteamVR support IVRVirtualDisplay or IVRDriverDirectModeComponent based drivers?

Cannot enable “Direct Mode” with IVRDriverDirectModeComponent implemented

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值