ImageVerifierCode 换一换
格式:PPTX , 页数:28 ,大小:6.92MB ,
资源ID:5138      下载积分:11 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/5138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OCULUS-VR-ppt.pptx)为本站会员(g****t)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

OCULUS-VR-ppt.pptx

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

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

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

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

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

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

7、的中间帧会使物体边缘不闭合,由于没有原始帧中的数据,会导致中间帧某些区域不能被覆盖。Yaw Correction(脑补翻译)随着时间的改变,可能会方向会产生偏移,但是现实中人的方向还是正前方的。如下图:Architecture Architecture Terms and definitions HMD:Head Monitor Display 头戴式显示器 OVR:Oculus VR CA:chroma aberration 色散 Timewarp:时间扭曲 Distortion:畸变 Pitch,Yaw,Roll:俯仰,偏航,翻转(右手笛卡尔)EGL,OpenGL,JNI,SensorFu

8、sion 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 LocalPreferences.h Sensors OVR_Android_DeviceM

9、anager.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.h VIP File JAVA:VrActivity.java /实现实现VrActivity接口

10、接口,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 HMDDevice SensorInfo SensorDevice class VrApp

11、Interface Class APP enum DeviceType HMDInfo class HMDDevice 这个机构体代表了HMD这个device,涵盖了基本操作。这个结构体被DeviceManager创建。class SensorInfo Sensor HW本身的一些信息 class SensorDevice virtual void SetCoordinateFrame(CoordinateFrame coordframe)-转换坐标系,将Sensor的坐标系转换成HMD坐标系 class DeviceManager:public DeviceBase class Device

12、Manager:public DeviceBase EnumerateDevices:获取可用的Device,并且把内部指针指向next,再次调用的时候就是第二个DEVICE.Instance:上面就是创建上面就是创建DeviceManager,再有,再有Manager获取第一个获取第一个对应的对应的HMD或者或者Sensor Device,创建它,再操作它。,创建它,再操作它。class VrAppInterface Class App 参考源码:app.h ATW 线程 TimeWarpLocal:TimeWarpLocal:在这个类的构造函数里面实现,即由下面实现。主要功能在WarptoScreen 函数中实现 Wait for sync point Read sensor data Warp both eyes Return the next vsyncbase 演讲完毕,谢谢观看!

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2