基于Blender的地震灾害仿真实验与科创教育实践
2023-01-16李姝娴朱权洁王大仓羊科宇林浩然吴晨曦
李姝娴,朱权洁,王大仓,羊科宇,林浩然,吴晨曦
(1.华北科技学院 应急技术与管理学院,北京 东燕郊 065201;2.华北科技学院 矿山安全学院,北京 东燕郊 065201)
0 引言
我国位于环太平洋地震带中段和环亚欧太平洋地震带正中央,地震产生的各类灾害危害面大、发生多频,地震波及我国大半个大陆及海外多个大陆亚洲地震国家[1-2],传统地震模式及对地震模型的研究和模式设计表现均显复杂,仿真模型技术方面也有所欠缺;人力物力方面投入成本较大,不能满足为广大高校、科研创业团队免费提供自主开发的虚拟现实与仿真教学系统培训的需要[3];软件多为商用,源代码不能公开,无法持续开发等问题显现。
随着当代科技突飞猛进的发展,三维遥感仿真及模拟分析技术日益成熟,现有研究的重要成果中,杜浩国等[4]所提到的无人机航拍遥感技术和卫星地理空间信息技术等虽然大部分已逐步开发成熟和应用于三维地震灾害分析预测,但其对三维地震模拟预测数据计算的时间精确度也有一定地要求;肖丽萍[5]所提到的3DSMAX软件结合C语言把地震活动现场的三维构造情况以及随地震时间发生变化的地形全貌以活动场景图像形式直观、生动、真实的表现出来,但较为复杂;曹彦波等[6]所提到的以Oracle 10g数据库为基础,通过ArcSDE 9.2进行三维数据可视化管理,使用高级组件来实现多维空间数据可视化的实时显示、管理、分析、存储等多种二维功能扩展;在高年级本科生进行的仿真科研项目训练环节中,逯燕乐等[7]提到的利用True-Terrain等辅助教学插件,鉴于Blender软件平台建模学习与交互设计训练方面提供的便捷操作体验以及本身开源软件属性开展出了三维动态仿真模拟实践教学,但整个模拟实验过程较为繁琐复杂;在构建矿山三维安全模型方面,梁娟等[8]所提到的采用基于Blender的开源可视化软件,利用Python语言自动编写出矿山实体三维的数据表达方法模型与数据生成算法,实现了对矿山三维的实时快速模型构建过程;梁娟等[9]还对地震进行了现场三维安全可视化技术演示,演示和结果验证表明所构建出的现场三维仿真结果均具有相对较强的科学性。
基于上述原因,以Blender平台为基础,通过Wave模拟器实现快速建立地震传播三维演示模型,其成本低廉、方法简单、对人员数量要求不高、有较强的扩展性,服务于《灾害学》课程教学和防灾减灾专业学生科创活动,同时为高校和科研团队提供了解决三维可视化模型的新思路。
1 开发环境及总体思路
1.1 开发环境介绍
Blender三维建模工具是一款高质量的三维实体建模、动画特效绘制处理和三维图像的渲染处理工作的开源软件,Blender的程序内核主要由C语言编写,界面部分主要是由C++语言编成,Python语言则作为一个支持对其应用程序进行编程处理的接口及脚本编辑语言。Blender将一个自定义用户界面模块(User Interface,UI)中的开发代码封装到BPY库中,用户能够通过UI轻松编写用户界面;另外,用户界面可分别置于工具栏、属性栏和中等不同位置,用户还可以灵活添加各种自定义控件。在建模方面,Blender齐全的功能可以媲美3Dmax,其具有以下几个特点:
(1) 软件体积小,功能多,大程度节省内存。
(2) 为开源软件,Blender软件源代码完全公开。
(3) 拓展性强,可跨多平台,Blender软件包在不同系统上可免费下载。
1.2 研发背景
《灾害学》是华北科技学院防灾减灾科学与工程专业的专业必修课,主要讲述灾害学的原理解释、研究方法,各类灾害现象的基本概念、形成原因、发生、发展、演变过程和致灾机理及防灾减灾的基本方法。基于《灾害学》,致力于培养学生的思维分析能力,在理解常见灾害现象产生和演化机理的前提下,对学生做出以下期望:(1)认识灾害的概念、分类及灾害学的研究方法。(2)认识自然灾害和人为灾害的成因与规律。(3)掌握自然灾害、环境灾害、生产安全事故、突发公共卫生事件和社会安全事件的特点、分级分类方法及其治理措施。(4)掌握防灾减灾系统工程方法。(5)培养、锻炼学生查阅、整理文献资料的能力。
1.3 总体研究思路
为了实现上述目标,利用Blender建模软件,结合地震波表现形式,对地震场景进行三维建模与仿真,并利用权重绘制插件Weight Paint对地震影响程度进行可视化表征。研究思路如图1所示,主要内容如下:
图1 研究思路
(1) 搜集地震波相关资料,明确地震波的形成原理和表现形式。
(2) 使用Blender对地震场景(地形、房屋、树木等)构建,并利用“Wave”功能对地震波进行仿真模拟。
(3) 使用Blender中的权重绘制插件Weight Paint,对地震影响程度进行可视化表征:第一步:制作地震效果热图;第二步:分配热图中的权重比影响地震效果;第三步:对地震发生效果进行可视化展示。
2 地震灾害的特点
地震会破坏人类的生活环境,如房屋倒塌、工业设施、林地农田等遭到破坏,对人类社会造成巨大经济损失;同时,地震也会严重危害人类的身心健康,让人们长时间陷入天灾的恐惧与亲人离世的悲伤中。例如,2008年的汶川大地震造成大量人员伤亡,直接经济损失达8451亿元。因此,对于地震造成的危险程度描述意义重大。基于这一背景,在《灾害学》教学和本科生科创活动中加入可视化仿真内容,用于形象描述地震灾害带来的巨大影响。首先给学生介绍地震灾害的概念、特点等内容,包括地震波的特点、分类以及地震的影响程度(地震烈度)。在上述背景下,以Blender平台为基础,通过Wave模拟器实现快速建立地震传播三维演示模型;并利用权重绘制插件Weight Paint构建地震热图,显示地震活动中的受力情况。通过上述研究过程,使学生更加直观、形象的理解地震形成原理及其危害性。
2.1 地震的特点及描述方法
要完整描述地震灾害的特点,需要从地震发生时的显现感受入手。地震发生时,所处地区会有明显的地表颠簸,这与地震的发生机理密切相关——地震的发生是由于地球内部巨大能量的释放,以震动的形式向四周传播。地震波主要包含体波和面波。面波是弹性分界面附近传播的波,主要包括瑞利波和勒夫波:瑞利波(R波)在表层附近,运动轨迹为一个椭圆,振动振幅随深度增加而逐渐减小至零;勒夫波(L波)地面上质点运动幅度最大,越往地下运动幅度越小。体波包括纵波(P波)和横波(S波),限于篇幅,为便于演示,下文将以横波、纵波作为典型进行介绍。
(1) 纵波(P波):粒子振动方向平行于波的前进方向,在所有地震波中,前进速度最快。P波能在固体、液体或气体中传递。来自地下的纵波能够引起地面上下颠簸振动。
(2) 横波(S波):前进速度仅次于P波,粒子振动方向垂直于波的前进方向。S波只能在固体中传递,无法穿过液态外地核。来自地下的横波能引起地面的水平晃动。地震P、S波形示意图如图2所示。
图2 地震分类及其影响
2.2 地震烈度的表述方法
为了直观地表述地震的危险等级,引入烈度示意图,以三维可视化的形式表达地震烈度的分布情况。地震烈度是指地震时某一地区的地面和各类建筑物遭受到一次地震影响的强弱程度。地震烈度可以反映地震的强弱程度,因此,如何直观显示地震的烈度十分重要。
我国将地震烈度分为12度,烈度值的大小与地震感知或破坏程度相对应,如地震烈度为1度时,一般无感;烈度为3度时,人或感受到门窗轻微作响、悬挂物微动;烈度8度时,多数人摇晃颠簸,行走困难,且房屋中等破坏,地面出现裂缝,房屋破坏导致人畜伤亡;最高烈度12度时,地面剧烈变化,山河改观。可以看出,烈度越大所造成的影响越大。由于烈度的大小与所处位置与震源的距离有关,因此,对于烈度大小的描述可以结合常规的地震动烈度分布图进行展示,即以多色图(云图)的形式进行展示。
3 地震三维场景构建与仿真
Blender作为开源程序,体积小且容纳不亚于专业级软件的功能储备,在三维建模、动画制作、视频剪辑等方面性能优越且表现出色。目前,该软件已被广泛应用到各行各业,包括影视、生物、地震、天文、矿业、交通、城市规划等行业和领域。在地震方面,基于其与Python语言融合的特点,被用于复杂地质模型开发、地震场景仿真与可视化展示等方面。本文基于其特点,开展了基于Blender的地震灾害仿真研究。
3.1 使用位移修改器绘制地形
使用Wave修饰符制作一个地震动画过程较为复杂,首先使用位移修改器制作地形,然后添加一些树木,最后制作一个震动地面动画。简述而言,地震灾害三维场景的构建步骤如下:
第一步,首先制作地形。使用“位移修改器”打开带有默认场景的Blender,通过顺序点击“添加-网格-平面”添加一个平面。使用Scale工具放大平面。选择“平面”并转到“纹理属性”,单击“New”添加新纹理。使用纹理创建一个地形,在新的纹理中,选择“云絮”类型,更适合该场景。其中纹理选择,如图3所示。
图3 纹理选择
第二步,选择“平面”并按Tab键进入编辑模式,按鼠标右键,在顶点菜单中,单击“修改菜单”,将菜单中的“削减次数”更改为50,增加削减的数量使其细分更多的网格,如图4所示。
图4 网格细分
第三步,进入“对象模式”,按Tab键,进入“修改器属性”,添加修改器“细分曲面修饰符”,将LevelViewport和Render更改为3,使网格更加光滑,如图5所示。
图5 添加曲面修饰符
第四步,再次单击“添加修饰符”并添加“置换修饰符”。在置换修改器的帮助下,可以使用之前制作的“云絮”纹理置换网格,如图6所示。
图6 纹理取代网格
第五步,网格移位过多时,可以调整参数来修复。通过改变“位移修饰符”的强度,得到如图7所示结果。在对象模式下按鼠标右键,上下文菜单中点击“阴影平滑”,直到网格足够光滑,但仍有一些可见的多边形面。光滑的阴影使表面光滑,并覆盖这些面孔。
图7 修改修饰符强度
3.2 外部对象追加
此时可以添加或导入对象,比如使用一个“粗壮桦树”模型。如果有其他模型的Blender文件,可以通过单击File-Append追加该模型,或者通过点击File-Import导入一个其他格式的文件,如图8所示。
图8 “粗壮桦树”模型
复制多个“粗壮桦树模型”并将它们分布在地形中。使用“粒子系统”,点击“粒子属性”并添加一个新的粒子设置。如果希望对象保持静态,将“发射器”更改为“毛发”,此时可以更改对象的数量,为对象实例添加粒子系统,将看到许多像毛发一样的对象形成。在渲染下,选择渲染为“物体”。在“物体”下选择“实例物体”作为树或任何其他对象。如对象的方向和大小不正确,可以通过禁用对象刻度以更正大小,如图9所示。
图9 使用粒子系统
启用高级选项并点击旋转,选择方向为“无”,按下Space键,动画就会运行。选择希望实例对象区域更密集的顶点组。(建议使用“太阳光”)启用“接触阴影”,“接触阴影”将使场景更优化。把摄像机调到一个最适合场景的角度,通过按‘CTRL+ALT+Numpad 0’将相机设置为视口视图。选择结束点为‘140’。
在“渲染属性”中,通过减少渲染采样以使动画渲染更快,在“输出属性”中,将文件格式改为FFmpeg video。如要渲染动画,单击“渲染-渲染动画”,最终的渲染效果将与此类似。
3.3 地震波效果仿真
在“对象模式”中,添加Wave修饰符,选择平面,单击“修饰符属性”并添加一个Wave修饰符,波浪调节器可以增加波纹的网格影响。在添加波修饰符后,按下空格键,可以看到涟漪正在形成。
改变运动到X,调整波的高度。对于更真实的Wave类型,选择之前创建的顶点组,现在按下空格键,动画看起来如下,可以在平面上添加物体,如图10所示。
图10 wave动画
4 地震影响程度可视化表征
使用权重绘制插件Weight Paint,首先创建一个顶点组,点击“对象数据属性”,在顶点组单击“+”符号下,创建一个新的顶点组。在动画中使用“顶点组”,此顶点组将被绘制为砝码。通过“权重绘制”,制作一个热图,并指定顶点或对部分网格的影响。在“索具”、“修饰符”或“粒子系统”中使用这些顶点群,并在左上角将“对象模式”改为“权重绘制”。用重量值1(红色区域)绘制受地震影响最大的部分,并用重量值0(蓝色区域)绘制受影响较小的区域,重量值从顶部更改,如图11所示。
图11 地震烈度描述示意图
5 讨论
随着信息化、机械化、智能化的不断发展,虚拟现实技术与仿真技术将在应急领域扮演越来越重要的角色。由此可见,将可视化仿真应用于自然灾害(含地震、滑坡、泥石流等)方面,具有较强的现实意义和开发前景。此外,数字应急是我国应急十四五规划明确提出的建设内容,这也为防灾减灾科学与工程专业学生提前了解和掌握相关信息化知识提出了要求。因此,引入Blender平台,实现了对地震灾害的可视化仿真和动态演示,以创新的形式形象地展示了地震灾害的原理和特点,增加了课堂的趣味性,使学生能够更深刻地认识和理解地震灾害。
基于《灾害学》的特点和防灾减灾专业学生的需求,在满足基础理论教学的同时,引导学生涉猎当前热门的大数据、人工智能等知识;引导学生积极开展大创活动,为学生创造了更多的科技创新思路和方法;利用多学科知识开展相关教学活动,培养出掌握有综合性知识和实践性技能的创新创业人才。未来,在我校防灾减灾教学团队的策划和指导之下,这些举动的实施将进一步形成师生互动、科教融合新局面,并形成“基础理论+应用知识+实操技能”的全方位培养模式。
未来将进一步深入研究,在开展教学和指导学生大创的同时积极开展科学研究,利用Blender平台模拟的典型灾害场景并服务于应急领域,实现快速模拟灾害活动,判断可能造成的影响,为应急救援过程和应急救援数字化预案提供有力的技术支撑工具,使应急救援更精准、数字化应急救援更客观。
6 结论
(1) 利用Blender软件对地震及地震效果的建模、仿真等均具有较好的模拟效果,且容易上手,且不需消耗大量的人力物力来支持完成整个地震灾害可视化程序的开发;此系统采用开源代码,有利于地震建模工具的继续开发,可充分利用该插件来开展诸如地震场景可视化构建、灾害现场仿真、模拟应急和救援技术等几个方面的研究。
(2) 以Blender平台为研究基础,结合Python等语言的编程技术实现对地震灾害全过程的仿真模拟,研究方法具有成本低廉、人员需求量少、可拓展性更强的优点,后期开发人员可基于Web3D模型的建模方式进一步完善地震相关知识的仿真模拟,有利于地震灾害知识的科普教学;且该软件建立基于Python平台的大量模型库时,可同时对各种地震灾害产生后现场人员的快速疏散、避灾救援路线的优化设计、仿真与三维模型可视化设计等工作开展研究。
(3) 基于Blender软件,防灾减灾专业本科生的科研训练方式具有很大优势:既培养了学生进行三维地质建模、四维地质过程动态模拟等实际操作能力;同时又在一定程度上解决了传统地质教学过程中的概念模型难以展示、野外教学又受天气、场地和经费等问题的限制,使学生能更快掌握灾害现象及其内在规律。该技术不仅十分有利于地震事件发生后灾区的抗震应急及救灾抢险工作,也对制定城市经济建设对策和经济社会发展综合规划具有现实指导意义。