邱晨涵
摘要:利用OGRE图形引擎(Object-oriented Graphics Rendering Engine)中的场景管理、材质系统、骨骼动画、粒子系统等功能,设计一款场景编辑器,用于高效便捷的开发制作数字城市3D场景。
关键词:OGRE 场景编辑器 数字城市
一、研究意义
随着信息时代的深入发展,人们对生活品质的要求不断提高,日常生活中越来越多地应用到数字城市相关的应用服务。其中,3D场景是数字城市视觉体系的重要组成部分。采用免费开源的OGRE引擎制作一款场景编辑器,可以明显提高开发3D场景的制作效率,增强产品质量。
二、场景编辑功能分析
一个自然环境包含有许多项元素,可以大体分为四类:地形、地表、附属元素以及特定交互对象,均是场景辑辑器中要实现的。
基于OGRE引擎的mesh网格,形成一般概念上的地形。在操作上,利用地形笔刷修改地形的海拔高度。并且,可设置地形笔刷的覆盖范围、硬度、平滑度、变化比率等参数。
地形地表由多层纹理构成,可分别设置各层纹理的贴图、UV密度、纹理光照效果、地形雾化效果等参数,并混合显示。场景地形切割为若干块,每一块的地表可单独设置纹理帖图和静态阴影渲染。
附属元素,包括光源、天空盒、雾气、动态云、天气、水体等。其中,光源至少有三种类型:环境光、方向光、局部点光源,设置光线颜色、角度、位置、作用范围、漫反射强度、镜面反射强度等参数。水体的海拔位置、顏色、表层波纹、水岸波浪以及波纹波浪的速度、UV密度等参数。
特定交互对象,指场景内所有基于场景节点进行管理的实体对象,包括摄像机、人物角色、物体、光效、音效、脚本触发器、标注等。可以对这些实体对象进行载入、放置、缩放、保存、定义逻辑类型等行为。
三、场景编辑器结构
编辑器结构由底层、中间层、交互层三部分构成。底层为OGRE引擎提供的基本模块,主要包括:场景节点、材质系统、角色动画、粒子系统等,对中间层提供支持。中间层是场景开发的具体业务模块。交互层负责用户与编辑器的直接接触,主要包含:身份验证、工作界面、显示模式。
这种方式编辑器的用户不用关心底层如何实现,只需要依照平常对自然环境、场景的理解,打开编辑器后,进入对应功能界面就能进行场景制作。所见即所得,以实现易用高效的设计需求。
出于安全考虑,进入编辑器时,先进行身份验证。经过验证后,根据该用户的授权,开放对应界面及功能。用户身份信息和场景数据采用DES算法加密后存放在服务器集中管理的资源目录下,增强系统健壮性。
编辑器内用到的实体对象有很多类型(物体、NPC、光效、行走路径、逻辑数据、标注等),用户切换到某个对象的工作界面,画面上就以包围框方式显示该类型的所有实体对象。采用该机制,便于检查者针对性查验、修改相关项目对象,满足易纠错的设计需求。
这种结构,用户操作简单直观,所见即所得,易学习,易上手。将不同业务功能、不同类型的实体对象分开处理,开发者可以逐步添加编辑器功能,不必一次性完成全部编辑器开发的工作量。在项目管理上,采用身份验证可有效阻止用户使用未被授权的编辑器功能,降低人为错误因素,也方便明确划分不同身份用户的职责。当然,该结构也存在缺点,即,对服务器的依赖较大,并且需要借助版本管理软件对编辑器和相关资源进行版本控制和更新,才能保障身份验证的有效性。
四、底层与业务模块的关系
OGRE是基于场景节点的场景图,对场景内各元素进行管理,包括:“创建、放置和变换活动物体(MovableObject)、灯光(Light)以及摄像机(Camera)”,“对环境光按由近到远的顺序进行组织和排序”,“渲染场景中的静态阴影(Static Shadow)”等,通过这些底层模块来实现场景编辑器里放置、调整各种实体对象(摄像机、光源、建筑、树木、人物等)。对应业务模块为:摄像机、地形、场景静态阴影的渲染、场景物体、光效、NPC、逻辑数据等。
材质系统(Material),是利用其封装的表面材质属性、组成Material的纹理层、纹理混合(Blend)方式、光照、雾化等属性,来实现编辑器设置不同类型、尺寸、形态的实体对象,在受到太阳光、点光源、雾气时所表现出来的光线反射效果。比如,一栋建筑物表面的墙砖、木材、钢铁、玻璃等不同部件,在阳光照耀下,反射光线的明亮程度就有显著差异。对应业务模块为:地表纹理、环境光照、场景物体、光效、NPC等。
OGRE常用骨骼动画来实现具有行为动作的可活动对象(MovableObject)的动画,可以很好地模拟场景中各种人物、怪兽、NPC等一系列角色的动态表现,并且有助于美术人员合理分工,提高工作效率。对于场景编辑器而言,只需要支持载入骨骼动画相关的美术资源并缩放旋转即可。对应业务模块为:场景物体(动态物体)、NPC等。
利用OGRE四边形粒子的多项属性(长宽、方向、数量、材质和重量等),模拟现实生活中的雨、雪、喷泉、爆炸等各种光效。配合盒状粒子发生器(BoxEmmitter)和点状粒子发生器(PointEmmiter),分别控制粒子从单一的点发射,或是从一个区域发射粒子,以及运行轨迹,在视觉上形成变化丰富的光效。对应业务模块为:光效、雾、动态云、天气、水体等。
五、小结
围绕“高效、易用、易纠错、安全”原则,采用OGRE图形引擎的场景管理、材质系统、骨骼动画、粒子系统等功能,进行3D场景的开发设计,适用于三维地图、楼堂馆所三维拟真漫游等项目制作。
参考文献:
[1]王艳.基于图形图像的三维建模技术探讨[J].计算机光盘软件与应用,2013,(2):139-140.
[2]任丙忠,孔文焕.基于OGRE的煤矿安全虚拟现实3D软件设计与实现[J].计算机与现代化,2011,(11):44-46.
[3]吴帅.基于OGRE引擎的预警仿真系统的设计与实现[D].北京交通大学,2012.