OCULUS-VR-ppt_第1页
OCULUS-VR-ppt_第2页
OCULUS-VR-ppt_第3页
OCULUS-VR-ppt_第4页
OCULUS-VR-ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oculus SDK HMD-ALOG Architecture Terms and definitions VrLib/VrApi目录 Important struct/class ATW线程HMD-ALOGl 反畸变算法 (Distortion)多采样着色(Multi-Resolution Shading)l 反色散(Chromatic Aberration correction,CA)l Stereo Renderingl 时间扭曲(Timewarp,ATW)l 位置扭曲(Positional Timewarp)l Yaw Correctionl Sensor Algo(暂时忽略)反畸变

2、/DistortionVR眼睛看正常2D图像:上图圆圈所覆盖的位置是一样的。从左到右,是一个从边缘往中间内缩的过程。而内缩的幅度,与圆圈的半径,也就是像素点到图像中间的距离成比正比。 所以为了从VR的凸透镜看到正常的图形,所以我们需要将原始2D图像经过一些反畸变,再通过眼睛的突变之后恢复成正常图像。 经过VR渲染畸变图像:多采样着色(Multi-Resolution Shading) Why? 通过上一页我们知道,我们需要做Distortion。但是如果我们按照上张图来实现,就会引入一个问题,我们对每个2D图像每个像素点都进行渲染的话,不但边角毫无意义,主要会造成极大的硬件和软件的资源浪费。

3、How?在中央视区仍保留完整分辨率的情况下,外围视区则用类似于传统后处理阶段的扭曲方式进行渲染。当这一切完成后,同样用户感知效果的图像相比原来的像素数量可减少25%到50%,而像素渲染效率则提升为原来的1.3倍到2倍。反色散/CA Correction 色差(Chromatic aberration;chromatic aberration):色差又称色像差,是透镜成像的一个严重缺陷,色差简单来说就是颜色的差别,发生在以多色光为光源的情况下,单色光不产生色差。 现象:VR头盔在使用时候都会在边缘区域(边缘位置)出现红绿蓝的色边反色散方法:1. 使用低色散的透镜,无法根本解决问题,并且成本还不知

4、道贵不贵2. 软件补偿Stereo Rendering 对同一图像需要渲染两次。简单的说,人的双眼看同一物体时,由于左右眼视线方位不同,视网膜上的图像会略有差别,即双眼视差,VR利用双眼视差原理在左右眼屏幕上分别显示两幅具有微小差别的图像,用户将两幅图像融合后得到一幅具有立体效果的图像。时间扭曲/Timewarp 时间扭曲:时间扭曲:是一种图像帧修正的技术,在使用虚拟现实眼睛设备时,由于头部运动过快,而造场景渲染的延迟,即头已经转过去了,但是图像还没有渲染出来,或者渲染的是上一帧的图像, 时间扭曲它通过扭曲一副被送往显示器之前图像,来解决这个延迟问题。 最基础的时间扭曲是基于方向的扭曲,这种只

5、纠正了头部的转动变化姿势,这种扭曲对于2D图像是有优势的,它合并一副变形图像不需要花费太多系统资源。对于复杂的场景,它可以用较少的计算生成一个新的图像帧。 异步时间扭曲:异步时间扭曲:(Asynchronous Timewarp简称ATW)是一种生成中间帧的技术,当游戏不能保持足够帧率的时候,ATW能产生中间帧,从而有效减少游戏画面的抖动,但是,ATW不是灵丹妙药,有一定局限性(局限性在后面介绍),开发人员也应该意识到。指在一个线程(称为称为ATW线程线程)中进行处理,这个线程和渲染线程平行运行(异步),在每次同步之前,ATW线程根据渲染线程的最后一帧生成一个新的帧时间扭曲/Timewarp

6、位置扭曲,Positional Timewarp ()位置抖动(Positional Judder):位置抖动是最明显的用基于方向的时间扭曲带来瑕疵之一, 在使用虚拟现实设备时,当头部移动了, 如果在ATW产生图像帧时只考虑了旋转分量,那么任何头部平移分量都将被忽略了。这就意味着当你的头部从一边移动 到另一边时,甚至是旋转你的头并且你的转动眼睛,你讲看见离你很近的物体会有多个图像的抖动,这种效果是非常明显的。 ()位置扭曲(Positional Timewarp):解决位置颤抖的一个可能的方法是实现全位置扭曲,它应用平移和旋转两个分量来修正原始帧,位置扭曲,位置扭曲需要考虑原始帧的深度信息,由

7、不同的量替代图像的一部分。 然而,这样产生的中间帧会使物体边缘不闭合,由于没有原始帧中的数据,会导致中间帧某些区域不能被覆盖。 WHY?HOW?Yaw Correction(脑补翻译) 随着时间的改变,可能会方向会产生偏移,但是现实中人的方向还是正前方的。如下图:ArchitectureArchitectureTerms and definitions HMD: Head Monitor Display 头戴式显示器 OVR:Oculus VR CA :chroma aberration 色散 Timewarp:时间扭曲 Distortion:畸变 Pitch,Yaw,Roll:俯仰,偏航,翻

8、转(右手笛卡尔) EGL,OpenGL,JNI,SensorFusion MIP: 纹理特别大的时候,渲染物体小的情况下,效果不好。所以在一开始将纹理按照2的倍数缩小成很多大小不同的纹理,这样我们就可以很快的用任意大小进行纹理贴合。VRApi Dir DirectRender.cpp DirectRender.h Distortion.cpp Distortion.h HmdInfo.cpp HmdInfo.h HmdSensors.cpp HmdSensors.h ImageServer.cpp ImageServer.h LocalPreferences.cpp LocalPreferen

9、ces.h Sensors OVR_Android_DeviceManager.cpp SystemActivities.cpp SystemActivities.h TimeWarp.cpp TimeWarp.h TimeWarpLocal.h TimeWarpProgs.cpp VrApi_Android.h VrApi.cpp VrApi.h VrApi_Helpers.h VrApi_local.h Vsync.cpp Vsync.h WarpGeometry.cpp WarpGeometry.h WarpProgram.cpp WarpProgram.hVIP File JAVA:

10、VrActivity.java /实现实现VrActivity接口接口, public class MainActivity extends VrActivity Native: VrApi.cpp,VrApi.h /JNI接口接口 App.cpp,App.h /实现了实现了VrAppInterface基本接口,以及基本接口,以及Class App的接口的接口 Oculus360Videos.cpp eg. Oculus360Videos.h eg. /实现这个实现这个app的基本功能接口的基本功能接口Struct/Class/enum DeviceType: HMDInfo HMDDevic

11、e SensorInfo SensorDevice class VrAppInterface Class APPenum DeviceTypeHMDInfoclass HMDDevice这个机构体代表了HMD这个device,涵盖了基本操作。这个结构体被DeviceManager创建。class SensorInfoSensor HW本身的一些信息class SensorDevicevirtual void SetCoordinateFrame(CoordinateFrame coordframe) -转换坐标系,将Sensor的坐标系转换成HMD坐标系class DeviceManager : public DeviceBaseclass DeviceManager : public DeviceBase EnumerateDevices:获取可用的Device,并且把内部指针指向next,再次调用的时候就是第二个DEVICE. Instance:上面就是创建上面就是创建DeviceManager,再有,再有Manager获取第一个对应的获取第一个对应的HMD或者或者Sensor Device,创建,创建它,再操作它。它,再操作它。class VrA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论