VR喷漆涂鸦系统的 设计与实现
2021-08-16刘涵剑罗旭
刘涵剑 罗旭
【摘要】 随着科技与经济的发展,全世界各个地区的文化交流趋于紧密,人们对于艺术方面的追求与创作也呈现多元化的趋势。而虚拟与增强现实技术在稳步发展的同时正渗透于各个领域,为喷漆涂鸦艺术的发展与推广提供了一条新的途径。本文主要介绍了借助虚拟现实软件开发引擎Unity 3D所设计的VR喷漆涂鸦系统的实现方案,通过对系统的框架与功能设计、3D建模、渲染技术和系统交互等多个技术方面进行设计及分析此系统所潜在的问题,阐述了其实现的可行性,为以现代科技为载体的艺术创作形式的推进与提升提供了新的思路与有效途径。
【关键词】 虚拟现实 喷漆涂鸦 3D建模 图形渲染
一、系统总体设计
对于系统开发过程,采用快速原型模型。首先确定喷漆涂鸦系统的基本需求是实现涂鸦绘画的功能,然后在对系统结构框架快速分析的基础上,根据基本需求编写一个可大致实现这一功能的原型软件。此阶段暂时忽略最终系统对于某些更加具体的功能模块上的细节要求,将考虑的重心放在需求分析阶段所提出的能够充分体现所要实现功能的基本特性,并对形成的原型进行相应的测评[1]。在原型系统的测试运行期间,对所展现的效果与预期制定的涂鸦系统功能实现进行对比分析,从而找出前一阶段所出现的决策或技术上的错误并加以修改与完善[2]。同时在原型系统的基础上不断增添新的功能需求,讨论并制定新的修改与实现方案,根据明确的功能模块需求对系统原型进行迅速且完整地修正,反复迭代,一步步实现最终系统。
二、系统模块组成
2.1场景模型模块
此模块主要作为虚拟现实场景中的仿真建筑物与自然景物,作为喷漆涂鸦的载体,从而更好地模拟现实中涂鸦的流程与操作步骤。考虑到此模块中模型的数量较多,需采用合适的数据结构与搜索算法,将其分区分类进行存储,简化后续的功能拓展与管理。
2.2喷漆实现模块
此模块主要需实现用户选择不同种类的喷漆工具并在虚拟场景中进行涂鸦创作的功能。因仿真的喷漆基本功能大致相同,主要的区别体现在其喷漆样式的呈现上,所以可设计统一的接口,在降低系统的耦合度同时,方便后续喷漆样式种类的增添与新功能的拓展[3]。
2.3涂鸦存储与展示模块
涂鸦作为一种艺术的载体,应该在系统中提供对其进行存储的功能,同时当用户需要进行观赏时可将作品展示出来。一种方案是将作为涂鸦载体的相关模型连同涂鸦以三维的方式一同保存在虚拟世界的用户个人仓库中,为用户提供全景还原的涂鸦存储形式,更利于后续的观赏与学习等操作。
2.4社区交流模块
搭建系统内置的社区平台,可供不同地区的涂鸦艺术爱好者进行交流、相互展示查阅涂鸦作品。此模块可激发用户在虚拟系统中进行创作的热情,促进文化交流与艺术思维的碰撞,契合系统开发的初衷。
三、三维模型构建
在虚拟场景中,用三维模型作为喷漆涂鸦的载体,而这些模型中大部分为虚拟建筑物,所以在模型制作软件上采用与建筑方面有着密切联系的3D Studio Max(简称3D Studio Max)。为减少内存开销,着重突出可视效果展现,在建模时对于虚拟场景中用户很少交互或观察到的模型,进行适当简化,并尽量用参数化的方法进行构建。
为进一步获得高效率的渲染运算,此系统采用LOD(Levels of Detail)技术。LOD可根据虚拟场景中物体模型与摄像机的距离而调用不同复杂度的模型,远距离物体使用低模,近距离物体使用高模[4]。所以在模型制作時,应该根据不同精确度与复杂度的需求制作不同品质的模型。同时,为便于在集成系统中进行统一管理与操作,对模型进行合理化分割并分别建模。
四、系统功能设计与实现
系统开发引擎主要采用Unity3D,其为由Unity Technologies开发的面向多平台的全面整合开发工具。首先将上一步由3D Studio Max制作好的模型添加到虚拟场景中,搭建一个适用于喷漆涂鸦的较为合理的场景布局。为更真实地模拟现实场景中的天气、光线等自然环境因素对景观的影响,在虚拟场景中添加Skybox(天空盒)和不同种类光源。
在场景布局的初步完成后,便进入代码编写阶段,通过编写C#脚本代码来实现用户与虚拟场景的交互,其中包括菜单选择、移动和主要功能——涂鸦创作。菜单选择可初步通过在UI中选择创建一个“Dropdown”控件并编写相应代码实现。UI界面的设计往往直接影响着用户的体验。高品质的UI设计不仅可以让场景交互变得简单舒适,而且可以将涂鸦系统的个性化风格体现出来[5]。考虑到用户适应性和场景限制方面所存在的问题,用户在虚拟场景中可借助传送的方式进行移动,其步骤包括:用户通过按压手柄发射射线从而在场景中选择一个传送点,并将此点所在的目标物体进行标记;通过碰撞检查此物体上是否挂载相关组件,若是则将其记录为碰撞点;将用户在虚拟场景的位置传送到碰撞点上。最后,为实现涂鸦喷漆各种各样的颜色样式等效果,需要借助采用ShaderLab编写的Shader脚本来实现。考虑到当前所设计系统中的模型大多是贴合生活的棱角较为分明的立体建筑或表面不规整的自然山体景物,而Surface Shader(表面着色器)对于实现描边效果存在只适用于表面平缓模型的弊端[6],所以主要编写Shader脚本的为Vertex/Fragment Shader (顶点/片断着色器)。
五、图像渲染优化
在图形渲染方面,为了提高系统性能,采用遮挡剔除技术(Occlusion Culling)和LOD技术。遮挡剔除技术的主要功能为:在物体进入渲染管线之前,将摄像机视角内看不到的物体进行剔除,从而达到减少被渲染对象个数、降低每帧渲染时间的效果[7]。需要进行遮挡剔除的区域是由一个个单元格构成,而这些单元格是待剔除场景区域的进一步分割。遮挡剔除与视锥体剔除 (Frustum Culling) 有一定区别。视锥体剔除只将相机视野外的物体渲染剔除掉,不剔除视野内被遮挡的物体的渲染[8]。此系统将遮挡剔除作为视锥体剔除的一个补充,两者共同应用于图形渲染以加强对性能方面的优化。
LOD技术是在不对画面流畅度和所需视觉效果造成影响的情况下,借助按层次简化模型的精细度来降低场景的几何复杂性的方法提高CPU及渲染管线的效率。LOD技术的聚类算法可通过检测模型相邻顶点并将其聚类合并的方法来简化网格,因其不考虑原始网格的拓扑几何结构,可能生成的网格会非常粗糙[9]。由于此系统主要实现的功能是喷漆涂鸦的创作过程,对于在虚拟场景中处于用户活动范围之外的景物模型的视觉效果要求不高,鉴于聚类算法实现简单且效率高的特点,将其作为此系统实现LOD技术的主要算法。
六、结束语
本文基于虚拟现实的喷漆涂鸦艺术创作的设计与实现,介绍了其相关的技术,并借鉴市面上已有的类似系统的设计经验,给出了VR喷漆涂鸦系统的设计思路与方法。虚拟现实技术是一项将计算机虚拟世界以一种仿真的形式呈现给现实感官的实用技术,它激发了人们天马行空的想象,将各个领域与此技术结合,催生了诸多造福人类的创造性成果。可以展望,未来虚拟现实技术将与我们生活的各个方面相结合,发挥出其巨大的潜力。
参 考 文 献
[1]何聚厚,梁瑞娜,韩广欣,肖鑫,梁玉帅.基于虚拟现实技术的深度学习场域模型构建研究[J].电化教育研究,2019,40(01):59-66.
[2]张越.瀑布模型、快速原型模型和增量模型的对比[J].电子技术与软件工程,2019(03):32.
[3]焦航涛.3d studio max建筑漫游动画制作流程[J].硅谷,2011(05):171.
[4]吕慧玲,李佩瑶,汤圣君,朱庆,许丽.BIM模型到多细节层次GIS模型转换方法[J].地理信息世界,2016,23(04):64-70.
[5]陈昭霓.认知心理学在UI界面设计中的应用[J].包装工程,2017,38(16):30-33.
[6]王传鹏. 基于WebGL的建筑大模型实时显示系统设计与实现[D].华南理工大学,2018.
[7]胡德龙. 虚实遮挡技术及实验验证研究[D].武汉理工大学,2019.
[8]郭洁畅. 多种VR设备下的三维模型交互技术研究[D].杭州电子科技大学,2018.
[9]周力虹,韓滢莹,屠晓梅.国内外高校图书馆虚拟现实技术应用对比研究[J].图书与情报,2017(04):1-7.