自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 openvr_survivor第二期开发活动:VR畸变

开发简介 开发主题:VR畸变 参与人员:helen,xin,云淡风清,ice等(VR开发者QQ群:538874606) 项目代码 gitter讨论链接 主要内容 VR畸变/反畸变介绍 openVR显示接口介绍 zemax软件设计光学系统 反畸变处理 这里主要是分享一下我们对于这方面问题的一些看法...

2017-12-04 20:19:14 4987 2

原创 插值(Interpolation)

前言 插值计算普遍存在于图像处理中,最近在做畸变优化时,看了一些资料中提到了插值&双线性插值,开始没明白,觉得一定很难,直接跳过,到最终写代码时,又不得不使用.于是就这里对这个功能进行学习,记录,并使用vs2017进行实际验证,验证后发现这个原理其实并不复杂. 插值 插值的数学...

2017-10-20 00:14:25 5828 0

原创 openvr_survivor第一期开发活动:复位与定位追踪

开发简介 开发主题:VR复位和定位追踪. 参与人员:helen,ice,bikasuo.(VR开发者QQ群:538874606) 项目代码 gitter讨论链接 分享一下我们对于这方面问题的一些看法,文档可能存在一些错误和不足,希望能够得到大家的批评和建议,希望与大家一起将这部分内容做的更加完善...

2017-08-30 18:14:13 4216 4

原创 一个基于openVR的开源项目

基于openVR接入steamVR的开源项目

2017-05-27 18:21:39 10538 3

原创 VR技术分享交流

VR技术分享交流

2017-04-13 20:35:59 4238 0

原创 VR中的9轴传感器(重力加速度/陀螺仪/磁力计).md

前言 传感器的调试过程,一般根据原厂提供demo代码,调试数据接口,将数据流打通即可,在VR中,当带上头显设备,运行应用时,出现漂移、延迟、不回归问题,往往束手无策,解决这些小问题,往往占用很多的时间,希望通过自己整理的知识,明确调试的方向,提高调试效率,达到好的调试效果。自己近几年在Andro...

2016-12-23 10:39:04 32347 5

原创 Android传感器源码分析(AOSP)

简介 上一节制作了一个传感器的应用,应用程序获取传感器数据代码流程大致如下 //get sensor manager mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); //show senso...

2018-06-18 19:49:27 3479 1

原创 Android传感器应用

概述 Android Sensor Framework为应用程序提供了下面几个类和接口 SensorManager 为你提供一个sensor service的实例,它能够为了提供多种服务(查询sensor数量,注册/卸载sensor事件监听函数,获取sensor精度、速率、校准等信息) S...

2018-06-15 00:13:47 2494 0

原创 Android传感器简介

sensor Android的sensor架构如下 sensor大致流程:APP–>Framework—>lib—>HAL层,HAL层以下部分,不同平台实现方式不同,可能会是HAL—>Kernel也可能...

2018-06-12 00:06:05 2407 0

原创 Android之BitTube

概述 在Android的Sensor框架代码里看到BitTube,这里对其进行学习整理. BitTube是用来处理进程间通讯的机制,和管道类似,主要是对socketpair的封装.先了解一下socketpair socketpair socketpair用来创建一对未命名、互相连接的套接字...

2018-06-08 23:35:19 2489 0

原创 Android之Handler、Looper、MessageQueue源码分析.md

概述 Android中的Handler、Looper、MessageQueue是用来解决线程间通讯问题的一种机制.介绍它们的文章非常多,这里做一些学习和整理,帮助自己理解,也希望能方便大家. 一句话 “Looper不断获取MessageQueue中的Message,然后由Handler来处理...

2018-05-29 22:59:21 2230 0

原创 epoll简介

概述 在阅读Android的Looper代码时需要对epoll进行了解,这里整理了一下epoll相关信息. epoll提供了一种IO访问服务,能够同时监听多个文件描述符,监听文件数据变化,并且不会因监听的文件数量增加而导致效率急剧下降的情况,在绝大多数情况下,优于select和poll。(在监...

2018-05-15 00:40:36 2407 1

原创 openvr显示相关接口

概述本文档介绍openvr上关于显示接口的内容,基于目前(2017.10.09)最新版本(openVR V1.0.10)进行描述,并你可以基于开源项目openvr_survivor对这些接口进行修改和验证.

2017-12-04 20:06:31 2992 0

原创 高精度/微秒级线程的实现

前言 在项目中需要实现一个功能,来对项目做一些特殊的工作.这个工作中需要实现某个线程中按照特定间隔(100微秒~10毫秒)来定时执行.实现过程中发现只要使用执行休眠的函数(sleep,sleep_for,sleep_until)每次线程轮询的时间都必定大于1.5毫秒(不同主频的CPU,可能时间会...

2017-11-13 19:38:44 1211 2

翻译 AnglesToConfig

AngleToConfig该文章英文地址,翻译中有一些个人添加的辅助信息,以括号标识,以粗体表示,例如(以下为个人翻译,水平有限,欢迎指正). AnglesToConfig的源代码可以在distortionizer代码仓库里找到.这个程序获取从视角到物理屏幕位置的映射关系,然后生成一个osvr ...

2017-10-19 01:12:52 893 0

翻译 projection and view matrices

OSVR视图变换该文章英文地址,翻译中有一些个人添加的辅助信息,以括号标识,以粗体表示,例如(以下为个人翻译,水平有限,欢迎指正). 本文档介绍OSVR的视图变换,包含投影矩阵和设置视口所需的模型矩阵的部分内容.可以查看distortion document获得关于如何处理畸变矫正的文档(透镜是...

2017-09-27 21:13:29 950 0

翻译 osvr_distortion_correction

OSVR畸变矫正这是一个关于VR畸变的文章,有理论描述,有源代码,学习之后觉得非常不错,将文章翻译过来,该文章英文地址,翻译中有一些个人添加的辅助信息,以括号标识,以粗体表示,例如(以下为个人翻译,水平有限,欢迎指正). 本文档描述OSVR畸变矫正功能,这种矫正在显示被渲染到平面矩形(屏幕)上之...

2017-09-26 19:24:46 1320 0

原创 C++类成员函数作为回调函数(提供完整工程代码)

遇见在我们使用一些第三方SDK、不同框架层之间的事件通知或第三方的C库时,经常需要用相应的接口来注册一些回调函数来处理特定的事件。这里以NOLO SDK为例来描述这样的一个问题。

2017-06-28 23:33:37 1789 1

原创 glog使用教程

glogglog是一个轻量、稳定、开源的日志系统,详细见上一篇文章所述.这里主要介绍glog的使用.

2017-05-05 00:33:12 12676 0

翻译 glog简介

Google glog是一个应用级别的日志系统库.它提供基于C++风格的流和各种辅助宏的日志API.

2017-05-03 18:52:57 1540 0

翻译 眼球追踪如何预测头部追踪

眼球追踪如何预测头部追踪我将于本周末访问DC州的神经科学学会会议,而且能够看到一些关于眼球追踪方面的最新进展. 很多时候,人们问为什么眼睛追踪对促进研究和为残疾人提供用户界面是很有帮助的. 一个有趣的应用是使用眼球追踪来最小化头部追踪的延迟.看如下所示的图: 上图所示,黑线是眼睛的位置...

2017-04-05 20:08:03 2337 0

翻译 解释VR的时间扭曲(time-warp)

解释时间扭曲原文英文链接.翻译中有一些个人添加的辅助信息,以括号标识,”注:”开头,以粗体表示,例如(注:以下为个人翻译,水平有限,欢迎指正). 在虚拟现实的背景下,时间扭曲是一项减少运动和图像之间延迟的技术. 在理想的情况下,渲染引擎发送给显示之前使用测量好的实时的头部姿态(方向和位置)....

2017-04-05 19:54:34 3677 0

翻译 理解VR预测追踪

理解VR预测追踪原文英文链接.翻译中有一些个人添加的辅助信息,以括号标识,”注:”开头,以粗体表示,例如(注:以下为个人翻译,水平有限,欢迎指正). 在AR/VR系统里,预测追踪指的是预测物体未来(很短的一个时间,比如几毫秒)的姿态方向或身体的位置.例如,人们可能想要预测头部的方向或手的...

2017-04-04 21:58:49 2383 0

翻译 VR光学设计的关键参数

光学设计的关键参数原文英文链接.翻译中有一些个人添加的辅助信息,以括号标识,”注:”开头,以粗体表示,例如(注:以下为个人翻译,水平有限,欢迎指正).

2017-04-03 21:57:06 6024 2

原创 openVR驱动接口之IDriverLog简介

IDriverLog驱动日志接口. void Log( const char *pchLogMessage ) 将日志信息输出到log文件,并附带了驱动的名字.

2017-04-02 22:31:03 2237 0

原创 openVR驱动接口之ICameraVideoSinkCallback简介

ICameraVideoSinkCallback摄像头视频接口,目前还没有资料和demo,官方处于开发当中,等后续补充.

2017-04-02 22:30:28 1654 0

原创 openVR驱动接口之IVRCameraComponent简介

IVRCameraComponent摄像头组件,目前还没有资料和demo,官方处于开发当中,等后续补充.

2017-04-02 22:29:56 1776 0

原创 openVR驱动接口之IVRControllerComponent简介

IVRControllerComponent单一追踪设备的控制器. VRControllerState_t GetControllerState( ) 获取控制器当前的状态,控制器的状态,你需要了解一下VRControllerState_t结构体. bool TriggerHapticPul...

2017-04-02 22:29:03 2455 0

原创 openVR驱动接口之IVRDriverDirectModeComponent简介

IVRDriverDirectModeComponent这个组件是用来实现直接渲染功能的(关于什么是直接渲染,直接渲染的好处,建议去OSVR上找一下这方面的介绍),这个接口是非必须的.在openVR社区里多数人认为这个驱动是为oculus特殊提供的,并且表达了不满.多数人都没能使用这个接口来实现自...

2017-04-02 22:28:21 2468 0

原创 openVR驱动接口之IVRDisplayComponent简介

IVRDisplayComponent单个追踪设备的显示相关的接口 void GetWindowBounds( int32_t *pnX, int32_t *pnY, uint32_t *pnWidth, uint32_t *pnHeight ) VR显示需要通过这个接口来获取窗口的位置和尺寸...

2017-04-02 22:26:39 2557 0

原创 openVR驱动接口之ITrackedDeviceServerDriver简介

ITrackedDeviceServerDrivervr::ITrackedDeviceServerDriver接口代表VR系统中的单个追踪设备.它在驱动动态库里实现. 这个接口的实例一旦提供给vrserver,它应该保持有效,直到vr::ITrackedDeviceServerDriver对象...

2017-04-02 22:25:33 2512 0

原创 openVR驱动接口之IVRSettings简介

IVRSettings 用来处理设置信息的接口. const char *GetSettingsErrorNameFromEnum( EVRSettingsError eError ) 将eError以字符串的形式返回. bool Sync( bool bForce = false, EV...

2017-04-02 22:23:15 1873 0

原创 openVR驱动接口之IClientDriverHost简介

IClientDriverHost这个接口由vrclient提供,允许回调和查询驱动各种各样的信息. ETrackedDeviceClass GetTrackedDeviceClass( vr::TrackedDeviceIndex_t unDeviceIndex ) 返回追踪设备的类型.如果...

2017-04-02 22:21:56 1864 0

原创 openVR驱动接口之IServerDriverHost简介

IServerDriverHost这个接口由vrserver提供,用来允许驱动向系统发送通知事件.这些事件不能是修改序列号或设备的类型,因为这些值永久与设备相关联. bool TrackedDeviceAdded( const char *pchDeviceSerialNumber ) 告诉s...

2017-04-02 22:19:51 2575 0

原创 openVR驱动接口之IClientTrackedDeviceProvider简介

IClientTrackedDeviceProvider这个接口在SDK的openvr_driver.h文件中定义的.用来处理应用场景中各种各样的客户端操作.驱动中必须实现的接口,它将被vrclient.dll加载. EVRInitError Init( EClientDriverMode eD...

2017-04-02 22:16:46 2040 0

原创 openVR驱动接口之IServerTrackedDeviceProvider简介

IServerTrackedDeviceProviderIServerTrackedDeviceProvider这个接口必须实现,vrserver用来查询追踪设备或关于追踪设备的一些信息.驱动动态库必须实现它. HmdError Init( IDriverLog *pDriverLog, vr:...

2017-04-02 22:13:22 2667 8

原创 openVR之十二大驱动接口

openVR之十二大驱动接口目前市场上有大量的VR SDK,大多数的HMD厂商都推出自己的VR平台(如oculus, psvr,deepon,3glass等),与这些特定HMD平台有所不同的是,有一些开放的VR平台,例如OSVR,steamVR.他们的目标是能够接入所有的厂家设备(包括HMD、眼球...

2017-04-02 22:05:06 5920 9

原创 设计模式后记

设计模式后记设计模式的好处在前言已经说过了,通过自己动手实现一遍每个模式加深印象,当然这离真正理解设计模式还有很长的路要走,在写这系列文章要纠结了很久,最后的结论是:”入门级的东西,简单说”,所以就让每个设计模式只提其中的六点,深入的东西还是需要在实际编码中不断的思考,修改,修正,思考…….学习过...

2017-04-02 15:36:11 2984 0

原创 行为型模式-访问者(visitor)

访问者表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.

2017-04-01 20:29:25 2621 0

原创 行为型模式-模版方法(template_method)

模版方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类,可以不改变一个算法的结构即可重定义该算法的某些特定步骤.实例main.cc:#include <windows.h> #include "zhangsan_runner.h&q...

2017-04-01 00:03:57 2663 0

提示
确定要删除当前文章?
取消 删除