网站首页  词典首页

请输入您要查询的论文:

 

标题 Daydream在基于VR的校园漫游项目中优化作用的研究与应用
范文

    闫斌

    

    摘要:校园漫游作品是各高校普遍在做的产品项目,校园漫游作品的实现,不但丰富了各高校的网站内容,在走进校园之前就可以看到校园的风光,而且显示了在VR创作领域的技术水平和实力。项目使用Daydream Renderer中优化过的照明、着色器和编辑工具等,以此来在保证场景质量的情况下,对场景渲染过程进行优化,从而解决大负载情况下的人机交互问题。

    Abstract: Campus roaming works are one of the project execution in colleges and universities. The realization of campus roaming works not only enriched the contents of the websites of colleges and universities, but also showed the technical level and strength of VR creation. ?In order to solve the human-computer interaction problem under heavy load, the project uses the optimized lighting, shaders and editing tools in Daydream Renderer to optimize the scene rendering process while ensuring the scene quality.

    关键词:校园漫游;VR;Daydream渲染;用户体验

    Key words: campus roaming;VR;Daydream render;user experience

    中图分类号:TP311 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文献标识码:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章编号:1006-4311(2020)19-0225-03

    0 ?引言

    2016年被人们称之为VR元年,也是从2016年开始到现在,VR应用从爆发式的增长到趋于稳定,关于VR技术的应用开发、技术讨论、培训等迅速的发展起来,从而带动起VR产业的快速兴起,基于VR的应用也从片面的游戏上的认知进入了各行业的应用。工业生产的环境仿真、城市规划和建筑业的漫游仿真、医疗行业的专业模拟教学、文物保护及旅游的产品开发等不断出现优秀的VR产品。而VR的行业生产,要具有延续性,要有稳定的团队作为基础,成熟的技术平台作支撑,这样才能稳定VR的产品空间。作为团队的源头,大学生创新团队的建设就成为VR团队的主力源泉。作为基础开发,在完成了校园漫游的作品后,可以形成一套自己的开发模式,结合不同的行业需求,实现后期更多VR作品、产品的开发。

    1 ?VR的展示方式的优势

    与传统的平面媒体相比,无论是照片还是基于3D的效果图,VR技术将校园的景象数字化、立体化、空间化,在时空上进行延展,实现足不出户就能够直观、身临其境的体验校园生活,这是平面、静态媒体所无法比拟的。

    校园漫游项目的VR体现:VR项目作品追求的让用户在虚拟世界中得到沉浸式的体验,用户可以通过各方向的移动(由于该项目运行平台为支持Daydream的智能手机而非具有独立计算能力的VR设备,所以此处的移动为在3DoF方式基础上结合Daydream控制器产生的用户交互性移动)来改变视角,而Daydream控制器等输入设备则允许他们与虚拟环境的各个部分、角落进行浏览、交互。同時,所编写的VR驱动程序以流畅,逼真的方式处理视点的变化和控制器输入的变化,从而保证沉浸式体验的舒适感和真实感。

    校园漫游项目在VR中的展示:VR作品运行平台的屏幕是用户查看的窗口,在此项目中则是放在Daydream View中的手机屏幕。屏幕前面的镜头会扭曲屏幕上显示的图像,以填充用户的视线并通过交互以及显示、头显设备的跟踪和音效的组合实现用户体验的沉浸感。

    2 ?项目开发工具

    ①Unity3D(项目使用版本为:2019.1.14f1),并要求已经安装Android Build Support组件或者iOS Build Support组件,从而能够满足Android和iOS环境下的使用。

    ②Visual Studio Code,用于开发、调试Unity程序代码。

    ③GVR SDK for Unity(项目使用版本为v1.110.0),该VR开发工具包由Google提供,本项目使用2017.4版本及以上版本的Unity。

    ④Daydream-Elements。

    ⑤unity-ugui-Xcharts。

    ⑥Instant Preview:项目的开发过程在真机上测试所用的软件,通过本工具可以跳过项目的构建过程使其立即在设备上测试项目。

    ⑦支持Daydream的手机,分辨率要尽可能的高,支持以60 帧(部分VR模式需要至少75帧)运行的VR体验,要有精确头部跟踪的高保真传感器。

    ⑧Daydream控制器,由于3DoF 类型的交互方式可以为本项目提供让用户更加方便与舒适的VR交互体验,所以需要使用Daydream控制器,来实现一些常见的的交互方式,例如使用Ray-pointer来与2D UI交互,使用Gesture-based input来代替用户移动来对物体产生力的影响等。

    3 ?项目设置

    在构建VR项目前需要在Unity的File>Build Settings选择Android后点击Switch Platform,在Build Settings窗口中点击Player Settings,之后在Player Setting窗口中勾选XR Settings并在下方Virtual Reality SDKs一栏中添加Daydream,最后在Other Setting中设置最低Android API Level,Daydream最低支持Android版本为Android 7.0 'Nougat' (API level 24)。其他项目名称、应用版本、公司名称和应用图标均可以根据项目组的规则输入。

    4 ?项目关键功能描述

    4.1 场景描述:本项目中包含三个场景分别为:校园场景,教室、办公室场景(含实验室、食堂、宿舍等室内环境场景)及图书馆场景三部分。

    4.2 项目主要功能

    ①3DoF头显跟踪运动:根据用户头部的运动,实时地将渲染后的画面显示到用户查看场景用的显示器上,让用户感觉仿佛置身于场景当中,可以自由、低延迟的改变视角。需要注意的是在制作VR应用程序时,不建议由程序控制场景中头显的运动,即使只是暂时的,因为突然将视角进行非用户主观的运动会极大可能地使用户出现晕车等生理不良反应,从而降低用户的VR体验。

    ②显示Daydream控制器模型:当用户使用Daydream控制器时,场景中会出现Daydream控制器模型,以此来实时反馈给用户控制器位置,与激光射线与工具提示来让用户方便地使用控制器与场景的物体交互。

    ③激光射线与光标点:Daydream控制器模型前方会反射一条可见且一定距离的激光射线,并且有一个光标点在射线末端。射线在使用鼠标时会在电脑桌面显示的光标一样用来告诉用户所控制输入设备的位置,而VR场景与电脑桌面不同的是:VR场景是3D的,所以在射线末端所添加的光标点为的是告诉用户与场景物体之间的距离。用户与物体距离大于射线长度时,射线末端并没有光标点而且无法与物体交互,用户与物体距离小于射线长度时,射线末端出现光标点且可与物体交互。

    ④VR模式下运动:在VR应用程序中,通过VR模式下的运动让用户在虚拟场景中自由移动来增加用户VR沉浸体验。在Daydream中提供传送、隧道、追逐相机三种移动方式。由于追随相机为第三人称的移动方式,所以本项目只实现了另外两种运动方式。

    ⑤人机互动(操控):本项目允许用户使用Daydream控制器来对场景中的物体进行交互,本场景所包含的不同类型交互为:打开滑动抽屉、打开含有铰链门的箱子、提起和放置不同重量的物体。

    ⑥替换手臂模型:本项目中用户可以使用不同的图形模型来替代使用场景的Daydream控制器模型。替换后的模型可以使用Daydream控制器进行交互,从而在场景中更好地模拟出现实中的物体。在项目中,如果用户执行图书、拉开抽屉等动作,则图书就成为用户所操控的手臂,用户可以通过控制器的按钮来实现图书放大以及翻页等动作。

    4.3 Daydream渲染

    在项目开始时使用传统解决方案,即Unity中的烘焙技术,虽然实现了较高的质量的界面,但是出现了图像失真、程序帧不稳定等问题。由于显示性能的高低对VR应用程序至关重要,而且本项目需要在移动设备上运行,所以渲染问题是项目的有一个关键技术点。针对 渲染问题,使用Daydream Renderer(Daydream渲染器),它是由Daydream所提供的渲染工具包。本项目中使用Daydream Renderer中的优化过的照明、着色器和编辑工具等,以此来在保证场景质量的情况下,对场景渲染过程进行优化。项目着色器包的结构如图1所示。

    渲染延迟是指从用户移动其头部或移动输入设备到程序渲染该变化并展示在显示器上的时间差。渲染延迟必须在300毫秒以内才能够让用户感到舒适的身临其境感并且没有不适感,如果等待时间太长,则用户会感觉到响应延迟,直接表现就是屏幕的模糊、延滞、卡顿。GVR为了将渲染延迟的尽可能地缩短到理想系统延迟,使用了异步重投影技术。

    在项目开发过程中,需要在Unity编辑器播放模式中查看场景的效果,此方法更为快捷和便利,节省了构建程序安装包的时间。想要使用键盘与鼠标来控制模拟器与头显,需要在场景中创建名为GvrControllerSimulator的空物体,物体无需设置空间坐标,只需存在于场景中即可。为空物体添加GvrControllerInput脚本代码(组件),此组件为Daydream控制器API的主要入口,之后创建名为GvrEditorEmulator的空物体并添加GvrEditorEmulator脚本代码,该组件用于在Unity编辑器中提供鼠标模拟控制的头部跟踪。监听键盘鼠标事件并调用ClickButton方法来手动触发模拟器按键状态,进而模拟出控制器按下按钮的行为。

    5 ?项目后期完善工作的注意点与挑战

    5.1 图像快速渲染

    作为VR的显示器需要快速渲染图像,以便在用户移动头部时,控制器围绕显示器进行更新,而不会出现明显的延迟。显示器必须具有低持久性,以防止用户在移动其头部时出现运动模糊。像素持久性是指每帧显示的实际点亮时间,但不包括黑色。低持久性就是让屏幕只照亮画面的一小部分。部分智能手机有低持久性的设置选择模式,在运行该应用前应开启持久性模式,这样可减少运动模糊以便减少。同样FPS(Frame Rates)对VR显示器与应用也是一大挑战,所以,项目应用程序应该以60帧的稳定运行帧率作为最低性能要求,实际表明,任何运行低于每秒90帧速率的VR应用都可能引起方向混乱、恶心等不适症状,所以本项目需要在保证的内容的情况下尽可能实现性能优化。

    5.2 应用异步重映射技术

    异步重映射是一种图形显示处理技术,它可以保证在稳定的帧频率下舒适的用户体验及帧率保持较高的值,即用户感觉流畅不抖动、不延滞、不模糊。即使在系统负载较重的情况下,也可以确保高性能的VR渲染。比如在当用户头部旋转时,要能够提供一致无抖动、无延迟的运动。在该项目开发前期,由于场景中存在大量动态场景对象与负责初始化的程序代码,所以经常出现场景加载后头显跟踪失效、Physics Raycaster(物理射线)与Graphic Raycaster(图形射线)使用不正常等问题,并出现用户无法触发场景UI所对应的事件以及无法与场景中的动态对象进行交互,还出现过无法检测用户所操控的动态对象等问题。在后期的开发编码过程中还要针对帧的加载变化及帧的渲染进行算法设计、代码优化,通过不丢帧、及时完成帧渲染来弥补加载帧过程的抖动、延迟,从而解决大负载情况下的交互问题。

    参考文獻:

    [1]向春宇.VR、AR与MR项目开发实战[M].北京:清华大学出版社,2018.

    [2]胡良云.HTC Vive VR游戏开发实战[M].北京:清华大学出版社,2017.

    [3]唯美映像.3ds Max 2013+VRay效果图制作自学视频教程[M].北京:清华大学出版社,2015.

    [4]保罗·米利(Paul Mealy).虚拟现实 VR 和增强现实 AR 从内容应用到设计[M].人民邮电出版社,2017.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/5 23:04:25