![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
VR&VR
文章平均质量分 81
AR VR记录
x-2010
这个作者很懒,什么都没留下…
展开
-
Windows orb-slam2 单目测试工程
VS2015 + Opencv2.4.13.6-vc14 + cmake 3.8.0+logi HD720P+ Intel Core i7-8700@3.2GHz 3.19GHz RAM 8G 64Bit1.有现成依赖库的,打开翻墙软件下载快.a. opencv:下载OpenCV库,直接解压安装在D:\ORB-SLAM2\Thirdparty目录下。b.eigen库: 下载地址,同样解...原创 2019-12-26 21:19:10 · 412 阅读 · 0 评论 -
Dioram
原创 2019-09-20 10:00:05 · 104 阅读 · 0 评论 -
光波导
原创 2019-08-15 14:36:22 · 831 阅读 · 0 评论 -
Oculus SDK创建一个应用程序流程-(libOVR)
优化整合的Oculus SDK让C/C++游戏引擎或应用程序的开发更为方便。在这讨论初始化LibOVR,HMD设备枚举,头部追踪,帧时序,以及画面渲染到Rift。Oculus所提供的一些样例程序,比如OculusRoomTiny demon源码,可用于验证某个特殊系统或功能。SDK概要:对该SDK的使用有三个主要的阶段:setup(安装配置),game loop(游戏逻辑循环)以及sh原创 2017-09-21 09:37:01 · 1039 阅读 · 0 评论 -
渲染到Oculus Rift
Rift属于分屏立体渲染,通过透镜若要观看到正常自然的立体图像,就需要为每只眼睛做畸变校正处理以消除镜头相关的畸变。这里以OculusWorldDemo应用程序为例进行讲解。立体渲染:畸变校正的畸变参数因镜头类型以及个人眼睛的接受能力不同而不同,可知这是个颇有挑战性的事情。为了让开发者更容易处理畸变校正,Oculus SDK在Oculus图像混合阶段自动处理畸变校正;在此阶段还会处理降原创 2017-09-21 10:15:12 · 933 阅读 · 0 评论 -
ReviveOverlay
主程序:{ // Open the log file and install our handler. QString logPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); logPath.append("/Revive1"); if (QDir().mkpath(logPath)) {原创 2017-09-11 16:44:14 · 427 阅读 · 0 评论 -
QT托盘小图标多菜单片段-ReviveOverlay
Windows Vista之后的文件打包复制重命名, QT托盘程序运行,Winspark在线升级程序原创 2017-12-08 17:08:24 · 603 阅读 · 0 评论 -
OpenVR之IVRChaperone
IVRChaperone是一个访问软硬件监护范围的接口。1.GetPlayAreaSize返回游戏区域宽度/深度值(以米为单位)2.GetPlayAreaRect(以前叫做GetSoftBoundsInfo)返回一个矩形,它定义了玩家拥有清晰VR空间的位置(从地板到天花板)。在此空间中可保持所需要且可实现的交互,它始终环绕站立追踪空间的原点。3.校准参数按universe保存,un原创 2018-01-30 17:43:27 · 551 阅读 · 0 评论 -
OpenVR之IVRCompositor
IVRCompositor允许应用程序用它来渲染3D内容。vr::IVRCompositor接口提供访问Compositor子系统的接口。Compositor通过关注那些容易影响VR体验的操作比如畸变,预测,同步以及其他细微问题来简化显示图像到用户的流程。应用程序调用WaitGetPoses来获得一系列姿态数据,用来渲染相机和其他追踪对象,像往常一样(使用IVRSystem接口提供的信息)原创 2018-01-31 11:37:50 · 2560 阅读 · 1 评论 -
OpenVR之IVROverlay
IVROverlay允许应用程序通过VR混合器渲染2D内容。vr::IVROverlay接口提供在3D场景中绘制2D图像的方法,与特定应用程序运行无关。所提供的函数运行应用程序来控制每个overlay的程序方式,包含的内容,以及接收的事件。最常用的类型就是Dashboard overlay,它添加一个选项卡到VR控制面板,用户选择一个活动选项卡同时通知应用程序。在控制面板上来自用户的指向一原创 2018-01-31 17:20:02 · 1100 阅读 · 0 评论 -
OpenVR之IVRRenderModels
允许应用程序访问渲染模型。vr::IVRRenderModels接口提供访问相关硬件的3D模型的函数,这些模型都尽可能地反映设备的实际外观。接口函数:vr::IVRRenderModels接口包含下面的函数:LoadRenderModel:bool LoadRenderModel( const char *pchRenderModelName, RenderModel_t原创 2018-01-31 17:50:39 · 720 阅读 · 0 评论 -
异步时间扭曲
时间扭曲(TW):VR中,时间扭曲可显著减少头部运动与显示在HMD内的图像之间的延迟。理想状态下,渲染引擎应该使用图像在屏幕上显示前的那一瞬间的头部姿态(旋转信息和位置信息)数据来渲染图像。而实际中,因为渲染需要耗费一定的时间,导致渲染引擎使用的头部姿态数据不是显示前一瞬间的数据,而是显示前还隔了一小段时间之前的数据。而就在这一小段时间内,头部移动了,因此屏幕上显示出来的图像就会比当前实际...原创 2019-08-30 18:18:45 · 629 阅读 · 0 评论 -
Oculus log工具
OculusLogGatherer包含了所安装的每个实例,并且当在运行Oculus出问题时,可以使用它们来抓取log信息。打开目录C:\Program Files\Oculus\Support\oculus-diagnostics或者目录C:\Program Files (x86)\Oculus\Support\oculus-diagnostics,运行文件OculusLogGatherer.ex原创 2017-09-11 18:29:16 · 341 阅读 · 0 评论 -
OpenVR之IVRSystem
简介:vr::IVRSystem接口可访问 显示配置信息,追踪数据,畸变函数,控制器状态(主要是按键信息),事件以及设备属性。它是OpenVR的主要接口,且它可以通过openvr::VR_Init函数来初始化与获取到。翻译 2017-08-23 16:19:40 · 2569 阅读 · 0 评论 -
Oculus 0.7.0 SDK DX11渲染流程
分四个大阶段:初始化(initialize),加载(load),渲染(render),销毁(release)。一.初始化初始化DX11设备(DIRECTX.InitDevice),分以下几步:1.创建DXGI(DirectX Graphics Infrastructure)对象,枚举系统中的显卡设备。其中DXGI是直接与硬件打交道的,它是Windows系统中用户模式下最底层原创 2017-09-08 09:25:15 · 812 阅读 · 0 评论 -
SteamVR和OpenVR异同
SteamVR是一个runtime,它是通过Steam安装在电脑上的,OpenVR是提供API的,通过SteamVR,不同的VR系统(Unity,UE等)调用OpenVR的API来开发应用程序,还可在OpenVR中添加驱动来对接VR硬件。SteamVR平台主要是为Vive服务的,但是它也兼容了osvr, Rift和Touch的驱动。还有些人编写了Razer Hydra的驱动来匹配旧的雷蛇手翻译 2017-07-24 18:15:56 · 4577 阅读 · 4 评论 -
VR帧传递流程
Oculus Rift和HTC Vive,刷新率为90HZ,每11.1ms刷新一次,使能VSYNC来禁止tearing。tearing是引起用户不舒服的主要原因。VR软件传递帧可分为两部分:VR Game和VR Runtime当时序要求得到满足以及流程工作正确时,以下流程还需要遵守:1.VR Game采样当前头显位置信息,并且更新Game中的摄像头位置信息以正确跟踪用户翻译 2017-07-24 18:29:42 · 1054 阅读 · 0 评论 -
OSVR HMD的Json描述符文件结构分析(V1)
基于OSVR-Core 0.6-1962-g59773924所用到的例子为zSight 1920-100. zSight是什么意思?该实例在部分OSVR发行版上可用。因为并不是所有的JSON解析器(尤其是Python JSON解释器)接受C风格的注释。因此,这里采用独立文档形式来表述这些描述符。也可参考JSON规范文件。文件开头于一个版本号,随后才展开主体hmd对象。翻译 2017-07-24 18:41:51 · 706 阅读 · 0 评论 -
添加一个新的HMD到OSVR
以下基于OSVR-Core 0.6-1962-g59773924简介:OSVR为多种设备创建一个抽象层,包括头显。也就是说,启动OSVR Server,只需要修改配置文件,就可以使同一个APP运行在不同头显设备上。以下是添加一个新HMD到OSVR的关键步骤:1>.创建一个json显示描述符文件。这里会指定头显的关键属性比如视场角。2>.提供畸变信息。OSVR翻译 2017-07-24 18:33:41 · 901 阅读 · 0 评论 -
OSVR-Vive
DriverWrapper类(DriverWrapper.h),主要有:1.openvr_driver.h中接口:vr::ITrackedDeviceServerDriver:@brief:表示一个追踪设备。在驱动动态库中实现,如vive的driver_lighthouse.dll,运行时被vrserver加载,可用ITrackedDeviceServerP原创 2017-07-25 08:52:42 · 1468 阅读 · 3 评论 -
SteamVR-OSVR(build 342)
新版本SteamVR-OSVR驱动。修改点:该版本包含以下修改点:1.OpenVR版本更新到V1.0.72.将客户端update调用移到一个独立线程中处理。这将减少追踪数据的不稳定性。如下:vr::EVRInitError ServerDriver_OSVR::Init(vr::IVRDriverContext* driver_context)翻译 2017-07-25 08:53:24 · 1863 阅读 · 0 评论 -
IVRSystem::GetControllerState
bool GetControllerState( vr::TrackedDeviceIndex_t unControllerDeviceIndex, vr::VRControllerState_t *pControllerState )bool GetControllerStateWithPose( TrackingUniverseOrigin eOrigin, vr::TrackedDevic翻译 2017-08-04 13:49:16 · 824 阅读 · 0 评论 -
OpenVR API
概览:SteamVR游戏 提供统一的数据交互方式,而不是依赖特定厂商的SDK。翻译 2017-08-18 16:42:17 · 10706 阅读 · 0 评论 -
OSVR Reset Yaw
作用:该工具可用来对/me/head坐标系进行短期(在osvr server运行期间)校准,将头部的方向校正为正前方。它主要是为只有orientation数据的追踪器准备的;而带有完整pose信息的追踪器就不需要这个工具了,它们一般都会带有外部固定的已知位置的地标或者摄像头,而由于已知位置就能够建立一个不变的期望的坐标系。如何使用:在运行OSVR reset yaw之前,OSVR se翻译 2017-08-04 20:04:03 · 378 阅读 · 0 评论 -
OSVR头部追踪数据格式及VRPN数据处理流程
头部追踪器是以一个普通HID设备呈现的,并且不断的以高速率(一般为400次每秒,除了早期的硬件达不到这个速率之外)上报输入数据,但是在设备过渡时(比如在HDMI状态过渡时)会暂时性地挂起追踪器数据的上报。以下为它的协议(以字节为单位):第0个字节: 位0~3:上报版本号,当前为3 位4:只存在于版本3中,如果检测到视频数据则为“1”,否则为0 位5:只存在于版本3中,如果原创 2017-08-11 19:47:20 · 2195 阅读 · 3 评论 -
Revive
Revive是一个兼容中间层,它连接Oculus SDK与OpenVR。它允许HTC Vive机器上运行Oculus的游戏。若碰到问题,可参考维基,还可找到一份可正常运行的社区贡献编译的游戏列表清单,可自行添加。安装:在购买游戏前,请检查兼容列表是否一直:1.安装Oculus Home,并跳过首次安装2.下载最近的Revive安装包3.安装Revive4.启动Steam原创 2017-08-28 16:28:16 · 1028 阅读 · 0 评论 -
osvr::clientkit::ClientContext
客户端上下文对象:在应用程序中创建并保存。用于管理生命周期以及访问ClientKit功能函数。在Context_decl.h的第57行声明。构造函数:osvr::clientkit::ClientContext::ClientContext(const char applicationIdentifier[], uint32_t flags = 0u)翻译 2017-07-25 08:52:18 · 271 阅读 · 0 评论