VR系列——Oculus Mobile SDK文档:二、移动SDK安装指南(三) Android Studio基础该指南针对在Android Studio和Gradle中使用Oculus Mobile SDK提供了一些建议,用以补充Android Studio相关文档。将Eclipse项目迁移到Android Studio关于如何将Eclipse项目导入到Android Studio的具体信息可以参考安卓的说明文档:http://developer.android.com/sdk
VR系列——Oculus Mobile SDK文档:二、移动SDK安装指南(二) Android Studio开发环境安装(测试版)本节介绍了构建原生的Oculus公司的移动应用程序时,Android Studio IDE 和Gradle的安装配置。Android已经弃用了对Eclipse、ADT和Ant的支持,现在指定 Android Studio和Gradle作为核心的开发工具。Oculus公司的移动SDK 1.0引入了与Android Studio和Gradle的
VR系列——Oculus Mobile SDK文档:二、移动SDK安装指南(一) 移动SDK安装指南这个指南将引导你设置你的三星设备和准备移动VR应用程序的开发环境。安装Oculus移动SDK下载移动SDK的地址:https://developer.oculus.com/downloads/.移动SDK包是.zip的压缩格式,它包含了源码和媒介文件:ovr_sdk_mobile_<版本号>.zip。下载之后,解压到你指定的目录(例如:C:\Oculus\Mobile)。Unity
VR系列——Oculus Mobile SDK文档:一、Mobile SDK的介绍 Mobile SDK的介绍欢迎进行Gear VR移动应用开发。 这篇指南提供了开发所需的SDK内容及细节的概述。入门准备好开始开发了吗?移动端SDK安装指南指导你一次性地准备和配置你的开发环境。 这有编辑好的建议,用于开发、调试以及分析VR应用,推荐给所有开发者:移动VR应用开发指南Android调试性能分析Unity和Unreal的开发者作为安装指导,请一定回顾移动端SDK安装指南的U
VR系列——Oculus Rift 开发者指南:八、性能平视显示器及Oculus调试工具 性能平视显示器性能平视显示器(HUD)可以使你或你的用户能够查看任何使用SDK 0.6或之后版本构建的应用程序的性能信息。性能HUD屏幕是由合成器渲染呈现的,使他们能够由单一SDK调用来显示。在OculusWorldDemo,您可以按F11来实现性能HUD界面切换。延迟时间HUD的延迟时间显示了APP到中期光子、时间异常到光子-启动和时间异常到光子-启动的曲线图。下面的截图显示了HUD的延迟时间:
VR系列——Oculus Rift 开发者指南:七、SDK样品和手柄的使用及低级传感器详述 SDK样品和手柄的使用Oculus SDK的一些样品通过使用手柄控制器来支持在虚拟世界的运动。本节介绍目前支持的设备和安装说明。Xbox 360有线控制器支持Windows系统建立控制器将该设备插入USB端口。window应该能识别控制器并自动地安装一些必要的驱动程序。罗技F710无线游戏手柄设置Windows游戏手柄:通过将控制器前面的开关移动到“X”位置来把控制器调为“XInput”模式。
VR系列——Oculus Rift 开发者指南:六、Oculus触控 Oculus触控Oculus SDK为获取每个Oculus触控的位置、状态提供了API。这些数据体现在两个地方:ovrTrackingState::HandPoses[2]——返回每个触控的姿态以及跟踪状态。ovrInputState——ovr_GetInputState返回的结构体,包含按钮、操纵杆、触发器和电容触摸传感器的状态。把触控的手势数据从输入状态中分离出来是因为他们来源于不同的系统
VR系列——Oculus Rift 开发者指南:五、色差 色差色差是通过透镜观察产生的一种视觉假象。这种现象会导致在物体周围产生彩色条纹,并且越接近透镜边缘越明显。这是由不同波长的光通过透镜时的折射率不同导致的(波长较短的蓝光折射小于波长较长的红光)。Rift的图像由红、绿、蓝像素组成,很容易受到色差的影响。图像的红、绿、蓝像素点会呈放射状向外扩展,并且数量也会不同。受影响的效果取决于图像内容以及用户对边缘区域的专注程度。色差幸运的是可编程GPU能够大大减
VR系列——Oculus Rift 开发者指南:四、高级渲染配置(五) 使用单视角渲染提高性能立体渲染的一个显著成本是渲染两个视图,分别对应每个眼睛。对于一些应用程序来讲,立体渲染可能不是特别重要,并且为了提高一些性能使用单视角也是可以接受的。在其他情况下,立体视图可能会给一些用户带来用眼疲劳,他们会希望切换成单视角。即便如此,他们也仍然希望戴上能给他们提供大视场和头部跟踪的HMD(译者注:FOV–Field Of View 视野、视场;在刘越教授的透视式头盔显示器的设
VR系列——Oculus Rift 开发者指南:四、高级渲染配置(四) 通过缩小视场来提高性能除了减少中间渲染目标的像素数目外,还可以通过减少FOV的横跨像素来提高性能。由于FOV的缩小,可能会使视野收缩从而导致沉浸感的降低。尽管如此,还是有两种方式可以用来缩小FOV、提高性能。最明显的就是填充率。对于一个在视网膜上的固定像素密度而言,较小的FOV具有较少的象素。首先,因为投影公式的性质,FOV的最外边缘在像素数量上而言是最多的。其次则因为当每一帧中有更少的可见对象时,
VR系列——Oculus Rift 开发者指南:四、高级渲染配置(三) 通过减少像素密度提高性能DK1拥有1280x800像素的分辨率,其在两眼之间划分。然而,由于Rift的宽FOV和透视投影工作的方式,位于显示器中心的匹配原始分辨率的中间渲染目标所需的大小会显著更大一些。例如,要在DK1上实现将一个1:1的像素映射在作者视场的中心,需要一个大得多的达到2000 x1056像素大小的渲染目标。即使现在的显卡可以在规定的60Hz渲染这个分辨率,但未来的HMD可能拥有更高的
VR系列——Oculus Rift 开发者指南:四、高级渲染配置(二) 强制对称的视场通常该API将为每一边眼睛返回一个不对称的视场(译者注:FOV(Field of View)视场:在任何特定时刻可观察到的有限范围),这意味着左边缘与右边缘到中心的距离是不一致的。这是因为人类以及Rift在向外看的时候具有更宽的视场。当你向内看时,你的鼻子是一个阻碍。我们同样相比向上看更善于向下看。出于同样的原因,Rift的视场不是对称的。它是由透镜的形状、塑料材质的种类以及屏幕的边缘
VR系列——Oculus Rift 开发者指南:四、高级渲染配置(一) 高级渲染配置默认情况下,SDK为优化渲染质量生成配置值。它也提供了一定程度的灵活性。例如,在创建渲染目标纹理的时候,你可以对它进行修改。本节讨论的是,当在渲染质量及性能之间进行选择的时候,或者你正在使用的引擎有限制时你可以做的修改。应对图形接口或硬件渲染目标粒度SDK是以你想要尽可能小心地使用你的视频内存并且你可以根据你的需要创建正确的渲染目标大小为假设所设计的。然而,真正的显卡和真正的图形API有
VR系列——Oculus Rift 开发者指南:三、Oculus Rift的渲染(八) 排队为了提高CPU和GPU的并行性和增加GPU的处理帧的时间,SDK提供了默认的2.8毫秒的时间提前排队。当提前队列被禁用,中央处理器在上一帧显示后立即开始处理下一帧。CPU处理完后,GPU处理帧,排序将失真,并且把帧显示给用户。下图显示了在没有提前排队时,GPU和CPU的利用率: 图6:CPU和GPU使用提前排队时的利用率:如果GPU无法及时处理以显示帧,将显示前一帧。这将导致画面抖动。提前
VR系列——Oculus Rift 开发者指南:三、Oculus Rift的渲染(七) 图层和多个窗口组成监视器画面的原理类似,头戴设备的画面展示也可由多个图层组成。这些图层中至少有一个是由用户的虚拟眼球渲染得到的画面,其他图层可能是HUD层,信息面板,附着于虚拟物体的文字标签,瞄准点等。每个图层有着不同的分辨率,使用不同的纹理格式,有着不同的视野和尺寸,有可能是单色画面,也可能是立体画面。应用程序也可能被设定当信息没有发生变化时,不对图层纹理进行更新。例如,从最后一帧起信息面板中的文
VR系列——Oculus Rift 开发者指南:三、Oculus Rift的渲染(六) 不同线程上的渲染在某些引擎中,渲染分布在多个线程中处理。例如,线程一为每个场景中的目标进行挑选和渲染设置(我们称之为“主”线程),线程二创建D3D或OpenGL API调用(我们称之为“渲染”线程)。这两个线程都可能需要精确的帧展示时间估算值,以便计算出最恰当的头部动作预测。该方法的异步特性带来一个挑战:当渲染进程还在为某个帧进行渲染时,主线程可能已经开始处理下一帧了。并行的帧处理可能会导致某一帧或
VR系列——Oculus Rift 开发者指南:三、Oculus Rift的渲染(五) 帧计时Oculus SDK通过ovr_GetPredictedDisplayTime方法来记录帧计时信息,该方法依赖应用程序提供的帧索引来确保不同线程的计时正确。头部运动预测需要精确的帧数据和传感器时间,这对良好的VR体验来说是必需的。预测要准确地知道当前帧会在将来的哪个时候出现。如果我们知道传感器和显示器的扫描时间,我们可以预测出将来的头部动作,提高图像的稳定性。若这些值计算错误,可能会造成过少或