基于Unity3D的游艇码头虚拟仿真设计

2023-06-25 14:40郭可盈王琪焱朱闽邱佳欣王宇林
现代信息科技 2023年10期

郭可盈 王琪焱 朱闽 邱佳欣 王宇林

摘  要:随着经济的发展,游艇的数量及规模将呈线性增长的趋势,具有停泊功能的游艇码头,也受到越来越多使用者的青睐。文章基于Unity3D软件开展湛江红嘴鸥游艇码头的虚拟仿真设计,从地形模型导入、海面模型建立、建筑模型建模、天空场景构建、局部细节装饰等方面展示游艇码头虚拟仿真设计过程,为相关研究提供一种新的方向。

关键词:Unity3D;游艇码头;虚拟仿真系统;场景建模

中图分类号:TP391.9  文献标识码:A  文章编号:2096-4706(2023)10-0092-04

Abstract: With the development of economy, the number and scale of yachts will show a linear growth trend. The marina with berthing function is also favored by more and more users. Based on Unity3D software, this paper carries out the virtual simulation design of Zhanjiang Hongzuo Gull Marina, and demonstrates the virtual simulation design process of the marina from the aspects of terrain model import, sea surface model establishment, architectural model modeling, sky scene construction, local details decoration, etc., providing a new direction for related research.

Keywords: Unity3D; marina; virtual simulation system; scene modeling

0  引  言

随着我国船舶技术的提升、经济的发展及人们消费观念的转变,游艇作为高附加值的娱乐设施已经成为个人或家庭的消费品,逐渐蓬勃发展并获得关注。游艇码头作为其停泊设施也将有广阔的发展前景[1]。然而游艇的设计及建造需要大量的人力、财力,在游艇设计结束后,没有找到客户而直接进行生产建造所承担的风险是不可估量的。将虚拟仿真技术应用到游艇场景虚拟仿真上已经成为一种新的传播媒介,客户对游艇的品质、设计和配置会有深刻的了解,能够增加客户获取游艇信息的渠道,加大游艇吸引力,提高交易成功率,用户对于游艇初步设计方案有最为直观、最易理解、最简单的理解接受方式,准确地将设计思想传达给用户。本文基于Unity3D软件开展湛江红嘴鸥游艇码头虚拟仿真设计,从地形模型导入、海面模型建立、建筑模型建模、天空场景构建、局部细节装饰等方面展示游艇码头虚拟仿真设计过程,为相关研究提供一种新的方向。

1  Unity3D技术简介

Unity3D是一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具[2]。作为性能优秀的游戏模拟引擎,其在3D场景相关模块中的功能极为丰富,可使用C#语言进行代码编辑,建立合适的系统模型,通过脚本控制完成模拟游戏操作,具备完善一个虚拟仿真系统的绝大部分功能。

2  案例模拟的过程

本研究设计码头场景为广东省湛江市红嘴鸥游艇码头的布局规划,前期依托Blender建立部分场景模型以及贴图绘制,在Unity3D软件中实现了模型的搭建组合及第一人称漫游功能,本研究结合Blender及Unity软件制作虚拟仿真系统构建,其在效率、性能及真实性等方面皆能得到保障,建立出最佳效果。具体流程图如图1所示。

2.1  地面建模

对于虚拟仿真系统而言,地面场景的搭建尤为重要,与其功能的实现相辅相成,本研究对游艇码头进行了实地考察以及利用网络资源收集相关资料,通过对卫星地图中游艇码头的俯视图进行截取,导入Unity3D软件,尽可能真实还原码头整体布局及各个部分之间的比例和位置关系,达到更加真实的感觉;同时在实地考察中收集了各种素材照片,对地形的高低起伏进行轻微的调整,着重模拟地形中地面高度的变化、在码头与内岸的衔接部位等,从而完成游艇码头地形的建模;为了更加真实还原在游艇码头所看见的画面,可以利用軟件自带地形设置进行沙滩模型建立,以达到最真实的地面场景还原。构建码头地面模型如图2所示。

2.2  海面模型

海面的建模是在Unity3D中完成的,本质上即为一个普通的平面,通过使用插件Shader Graph可编程渲染管线着色器进行渲染。插件Shader Graph可编程渲染管线着色器很好地解决了创建材质的效率不高且操作比较烦琐的问题,它使渲染的过程可视化、图形化、简洁化[3]。海面的材质球由着色器通过颜色、法线及表面光泽三个基础属性对海面进行调整。在颜色接口部分,定义合适的海水颜色属性,并结合菲涅尔效应进行对其材质球的融合,以实现材质中间颜色较亮,而周围颜色较暗地模拟海水的效果;在法线接口部分,使用两张模拟海水波浪的法线贴图对不同方向进行偏移设置,即可实现海水波浪的不规则运动效果;使用这种方法可以很真实地模拟海面波动的效果;在表面光泽接口部分,对海水表面反射的光泽强弱进行调节,并将其设置为可在预览界面中调节的数值属性,即可实现便捷地调整海水的表面光泽,模拟真实的效果[4]。模拟海面效果如图3所示。

2.3  建筑模型

为了高效还原码头的真实性,需要对中心建筑进行建模。针对案例中的中心建筑营销中心进行建模,整个建筑呈上大下小、稍微倾斜的椭圆形,在最高层呈现一个三角形的落地大窗,提供客户良好的观景视野。在建模中,通过修改细分之后的圆柱体,对其外观进行模拟,此处使用了Blender软件中的切割循环边功能,能够快速地识别实体模型的循环边,并快速创建,对建立建筑上大下小的形态帮助很大,可以真实还原其每层楼之间的高度关系,建筑高度与角色高度的比例关系效果[5]。建筑的渲染采用导出UV展开图,并绘制贴图的方法。由于贴图在一个平面上并不能体现出阴影效果,所以应在每一个平面上明暗关系的绘制上,秉承着上亮下暗的原则进行绘制。对于反光玻璃贴图绘制也要注意绘制出反光的效果,建筑模型效果图如图4所示。

2.4  天空场景

天空场景是案例中最为重要的场景布局,为了更真实地模拟码头天空及远距离的环境,并兼顾提高建模效率,在对离码头较远的建筑环境进行贴图绘制,素材来源于实地考察时的拍摄,对拍摄的照片进行拼接,并模糊边界,再导入生成天空盒。这种方法既能更真实地模拟出码头现场的天空环境及较远距离可视物视野,又节省了程序运行时的内存性能,是在虚拟仿真技术模块中常用的技术方法。天空场景效果图如图5所示。

2.5  局部细节装饰

对于一个真实的场景来说,树木、浮板及定位桩等功能物体也是不可缺少的,为场景提供了丰富的视觉效果,在建立游艇码头模型的过程中,应做到尽量还原场景中本身拥有的细节建模。游艇码头中树木往往是场景中美化功能很高的物体,能有效地对场景进行细节丰富,在案例中使用模型树进行旋转及拉伸,再分别布置于地形上,创建出视觉上的差异,而棕树的叶片同样建立大致模型,做出树叶因重力自然弯曲垂落的物理形态,模拟其绿化效果。同时使用UV展开绘制贴图方法表现树干表面不规则的形状轮廓及树叶纹理,要注意对叶片颜色深浅及脉络的绘制。通往游艇停靠地的道路一般都为浮板,建模相对复杂,案例中将绘制贴图的道路设置为浮动在水面上,随水面的升降而升降,模拟出其随水面升降的效果。在渲染上也采用绘制贴图的方式模拟其表面的木质地板材质,定位桩在海水与空气的交界处有氧化或水生物的寄生现象,在贴图绘制中都进行了还原。此外通过对栏杆、草地、路灯、沙滩躺椅等装饰品的绘制,在渲染方面使用贴图模拟了其真实效果,可以完整地呈现游艇码头的局部细节。

2.6  搭建组合

场景搭建是虚拟现实技术研究的基础,整个工程以湛江红嘴鸥游艇码头作为主场景,接着选择性地建立较远场景作为可漫游的次场景。在搭建部分中,主要的工作是将分别建立的游艇模型、码头模型及其他细节模型等整合起来,在Unity3D界面中进行完全的场景搭建,需要特别对模型之间的水平及垂直的相对位置关系进行合理的设置,防止出现模型之间穿透带来的问题[6]。本研究中的大部分码头模型使用Blender建立及进行贴图的绘制,在具有贴图的完整模型导入Unity中时,应先将其贴图、材质、模型等分别归类,以提升工作效率,还应按照导入贴图再导入模型的操作进行导入,使Unity自动识别模型上的贴图文件,充分杜绝模型与贴图不符的问题。在导入素材库之后,即可进行游艇码头场景的搭建,模拟在场景中行动的视野范围变化及移动位置变化,实现第一人称视角的功能,使用户享受身临其境般地进行游艇码头的漫游体验,对游艇外觀及游艇码头的布局进行更真实地认识及欣赏。最终效果如图6所示。

2.7  功能实现

在一个虚拟仿真漫游系统中,有必要对漫游功能进行描述,类似于游戏中的角色控制系统。本研究着重于使用Unity3D软件的游艇码头虚拟仿真技术,为便于使用者身临其境般的进行游艇码头的漫游体验,对游艇外观及游艇码头的布局进行更真实的认识及欣赏,系统建立了以第一人称视角对整体模型进行观察的玩家,以模拟在场景中行动的视野范围变化及移动位置变化。

要达到第一人称视角的功能实现,主要依靠挂载在模型上的脚本文件,结合Unity3D软件中的物理模块组件,对模型的位置及旋转角度信息进行修改,以实现第一人称的位置移动及视角随鼠标移动进行旋转,完成在游艇码头中的虚拟漫游。

本研究为目标在PC端上流畅运行的项目,在设置导出数据时,应提前设置Unity中导出到PC端模块,并可以进行导出偏好设置,例如可调节渲染质量、可调节工程视图为窗口,并可以设置其窗口大小,丰富整个研究工程的完善度。

2.7.1  胶囊体水平移动

使用胶囊体模型作为可操控的玩家角色,摄像机作为他的子物体跟随胶囊体的运动提供可视范围。脚本文件是基于Unity3D中的胶囊体角色控制器组件来进行编写的,它决定了角色模型的碰撞体积,角色必须要使用实体模型,对第一人称的模拟有着重要的仿真效果

2.7.2  胶囊体垂向移动

经过上述Move方法运行的胶囊体模型不会自动拥有重力,导致胶囊体模型无法上下移动,缺乏虚拟漫游的真实感。基于胶囊体模型垂直方向(y方向)移动的部分不足,予以胶囊体模型重力系统以实现在垂直方向上的移动。

2.7.3  摄像机视角转动

设置一个胶囊体模型,作为一个常用的角色模型,同时在胶囊体的子级中设置一个摄像机,胶囊体作为摄像机的父级,在胶囊体进行移动和旋转等行为时,可以达到摄像机自动跟随胶囊体模型移动或转动的效果,并适当调整摄像机与胶囊体的物理相对位置,使用摄像机照射到的画面模拟角色亲眼所见视角范围的效果。

我们可以将摄像机想象成“眼睛”,那么在设备上的输入输出都是由眼睛看的构成,我们就需要对摄像机组件的旋转属性进行可操作的更改,通过鼠标的移动的方法来实现摄像机组件视角移动,获取鼠标的移动值,转化为摄像机组件在视角旋转的角度,更新之后的视角属性等于原来的视角属性结合鼠标在轴上的移动,以达到模拟第一人称视角的效果。

3  结  论

本文使用Blender软件建立了游艇码头地形模型、海面模型、建筑模型,结合绘制模型贴图完成对材质的编辑处理以及天空场景的构建,结合Unity3D虚拟开发平台完成了游艇码头视景仿真,以虚拟仿真的方式进行游艇及码头的全貌展示,利用虚拟现实系统的沉浸式和互动性,带给用户身临其境的体验,更能使客户以立体的角度加深对游艇码头的了解程度,丰富客户、设计师及制造方三方的沟通形式,便于三方进行交流讨论,为相关领域的发展提供了一种新的思路。

参考文献:

[1] 庄乾宝.浮码头工程控制要点探讨 [J].建筑与预算,2021(2):83-85.

[2] 胡静,胡欣宇.基于Unity3D引擎的游戏设计与开发 [J].电子元器件与信息技术,2021,5(2):138-140+154.

[3] 邓德荣.基于Unity3D的VR交互场景设计与运行监控 [D].广州:华南理工大学,2018.

[4] 郑茂琦,马春翔,王志波,等.基于海浪谱的海浪模拟的改进 [J].系统仿真学报,2014,26(2):369-375.

[5] 刘文韬.Blender 3D渲染机制研究 [D].南京:南京邮电大学,2016.

[6] 刘德建,吴玉龙,郭玉湖.基于Unity3D的场景持续构建方法、存储介质:CN201810536785.2 [P].2018.05.30.

作者简介:郭可盈(2001—),女,汉族,广东广州人,本科在读,研究方向:船舶与海洋工程;通讯作者:王宇林(1986—),男,汉族,广东吴川人,讲师,硕士研究生,研究方向:机械设计。