openvr显示相关接口
来源:互联网 发布:软件著作权申请网址 编辑:程序博客网 时间:2024/05/22 17:20
概述
本文档介绍openvr上关于显示接口的内容,基于目前(2017.10.09)最新版本(openVR V1.0.10)进行描述,并你可以基于开源项目openvr_survivor对这些接口进行修改和验证.
显示接口
目前显示接口包括IVRDisplayComponent,IVRVirtualDisplay,IVRDriverDirectModeComponent
IVRDisplayComponent
GetWindowBounds
void GetWindowBounds( int32_t *pnX, int32_t *pnY, uint32_t *pnWidth, uint32_t *pnHeight )用来设置窗口的位置和尺寸.
参数说明:
- pnX和pnY
设置显示窗口左上角的起始坐标,比如你有2个显示器,显示器1的分辨率为1920x1080,显示器2的分辨率为1280x1024,那么如果希望在第一个显示显示,将pnX和pnY设置为0,如果希望在第二个显示器显示,则将pnX设置为1920,pnY设置为0即可. - pnWidth和pnHeight
显示窗口的大小,这个与显示屏的实际分辨率相对应.
IsDisplayOnDesktop
bool IsDisplayOnDesktop( )显示是否是桌面扩展显示
IsDisplayRealDisplay
bool IsDisplayRealDisplay( )显示是否真实显示器
注:”IsDisplayRealDisplay”和”IsDisplayOnDesktop”,在实际使用中,这2个接口的返回值,并不会影响扩展显示和直接渲染,应该是一个弃用的接口,官网上查不到更多信息.
GetRecommendedRenderTargetSize
void GetRecommendedRenderTargetSize( uint32_t *pnWidth, uint32_t *pnHeight )获取处理过程中被畸变影响的渲染目标的大小.
这个接口设定的参数是一个建议值,应用程序仍然可以随意设定渲染目标的大小,合成器会根据情况进行缩放.一般设定为显示屏大小一致.
注:这里我在survivor工程上做了一个实验,如果把”renderWidth”和”renderHeight”设置为分辨率的1/4,也许处理效率上会增加(这里我没实际测量)将会看到画质被降低了很多.这里还是建议设定为与显示器分辨率大小一致.
GetEyeOutputViewport
void GetEyeOutputViewport( EVREye eEye, uint32_t *pnX, uint32_t *pnY, uint32_t *pnWidth, uint32_t *pnHeight )获取左/右眼视口的位置和大小
参数说明:
- eEye
Eye_Left或Eye_Right - pnX和pnY
起始位置 - pnWidth和pnHeight
宽/高大小
这里如果有横竖屏切换的,可以调整这里的参数来实现.
GetProjectionRaw
void GetProjectionRaw( EVREye eEye, float *pfLeft, float *pfRight, float *pfTop, float *pfBottom )用来设置你的投影矩阵
参数说明:
- eEye
Eye_Left或Eye_Right - pfLeft,pfRight,pfTop,pfBottom
透视投影后所成的像的左,右,上,下的坐标位置.
关于投影矩阵可以参考这个资料opengl projection matrix.
关于这个接口使用有一个详解的链接
ComputeDistortion
DistortionCoordinates_t ComputeDistortion( EVREye eEye, float fU, float fV )基于左/右眼的UV做反畸变功能的接口,UV坐标的(0,0)表示视口的左下角,(1,1)表示视口的右下角
参数说明:
- eEye
Eye_Left或Eye_Right - fU或fV
UV坐标
这个接口还可以用来配合GetEyeOutputViewport来做横竖屏的切换,以及视图的旋转.
IVRVirtualDisplay
IVRVirtualDisplay接口目前存在闪黑的bug,等修复后整理.
IVRDriverDirectModeComponent
IVRVirtualDisplay和IVRDriverDirectModeComponent这两个接口用来实现”扩展显示”和”直接渲染”的,后续再做详解.
- openvr显示相关接口
- openVR之十二大驱动接口
- openVR驱动接口之IServerTrackedDeviceProvider简介
- openVR驱动接口之IClientTrackedDeviceProvider简介
- openVR驱动接口之IServerDriverHost简介
- openVR驱动接口之IClientDriverHost简介
- openVR驱动接口之IVRSettings简介
- openVR驱动接口之ITrackedDeviceServerDriver简介
- openVR驱动接口之IVRDisplayComponent简介
- openVR驱动接口之IVRDriverDirectModeComponent简介
- openVR驱动接口之IVRControllerComponent简介
- openVR驱动接口之IVRCameraComponent简介
- openVR驱动接口之ICameraVideoSinkCallback简介
- openVR驱动接口之IDriverLog简介
- OpenVR——驱动接口之IClientTrackedDeviceProvider简介
- OpenVR——驱动接口之IServerTrackedDeviceProvider简介
- OpenVR API
- 相关接口
- 17.12.04,web学习第十八天,还有一年,努力吧青年EL和JSTL
- kail linux 几种代理方式
- Python GUI Cookbook —— 布局管理
- CentOS配置virtualenv
- 上传plupload的使用
- openvr显示相关接口
- 机器学习的算法——用最通俗的例子去理解
- 通过函数名的字符串来调用这个函数
- javascript之异常捕获
- 多线程之并发与并行概念总结
- 读
- [C]求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12
- css
- 【MD5】MD5校验文件的正确性