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 )
提交队列化的图层用于显示.
关于直连模式的理解:
- 直连模式是渲染模式的一种.使用直连模式,NVIDIA驱动程序将把VR头盔作为 VR应用程序唯一可以访问的头戴式显示器.而非Windows桌面上的监视器.
- 直接在显示器上运行,这可以更方便地运行VR内容,而无需摆弄显示设置
IVRDriverDirectModeComponent在编写发送到头显的最终图像(图像旋转,扫描线交错等)时也允许更大的灵活性。 - 此外,直接模式确实可以减少延迟.
IVRDriverDirectModeComponent可以随时激活显示,从而可以提高帧率.
Cannot enable “Direct Mode” with IVRDriverDirectModeComponent implemented