APP下载

线路构造物三维景观仿真方法研究

2010-01-01周小平吕希奎刘博航

图学学报 2010年3期
关键词:构造物模型库建模

周小平, 吕希奎, 刘博航

(石家庄铁道学院交通工程分院,河北 石家庄 050043)

虚拟现实中的建模与仿真是目前计算机图形学中最热门的技术之一,而虚拟对象的三维表现是整个虚拟现实系统建立的基础。如何快速高效和高精度、高逼真度的建立模型是仿真建模关心的主要问题。OpenGL 虽然提供了球体、立方体和圆柱十几个生成三维实体模型的辅助函数,但这些函数难以满足建立复杂三维实体的需要。对于复杂的铁路构造物三维模型,单纯利用OpenGL 实例库提供的几何体构建方法非常困难,建立的模型在效率上、逼真度上都较低[1]。因此,需要考虑借助其它第三方建模工具建立模型,避免在程序中建立模型的复杂过程,然后将复杂模型导入三维场景中实现绘制与控制,以实现三维景观仿真。许多文献对第三方模型的读取都进行了研究[2-4],但线路构造物作为线路的重要组成部分,其景观仿真不仅仅涉及模型的简单读取问题,更重要的是如何在复杂线路三维场景中实现模型的精确控制和操作,以保证构造物模型与线路模型成为统一整体,使所建立的景观成为统一的景观,而在这方面的研究却比较少。因此,本文从模型的建立、读取、管理、三维场景控制到景观仿真实现给出了完整的解决方案,实现了基于外部模型的线路造物在线路三维场景中的高逼真度的景观仿真,并给出了实例。

1 建模工具的选择

目前常用三维建模工具主要AutoCAD 、3DSMAX 、XSI 、MAYA、MultiGen Creator 等。AutoCAD 是一种灵活而可靠的三维建模工具,其图形文件格式.dwg 和.dxf己经成为国际工业标准,3DSMAX 具有强大的渲染功能。利用AutoCAD 可以得到精确的工程模型,利用3DSMAX 就可以建立复杂的渲染动画模型。因此,通过对各建模工具的特点比较分析,本文先用AutoCAD 建立线框模型,再导入3DSMAX 中实现模型的的渲染,最后的模型文件为 3DS 文件格式。该方法集合了两个软件的所长,并使建模过程简化,同时模型具有较高的逼真度。最后在OpenGL 中提取3DS 模型,实现对其控制和变换,营造出逼真的三维场景,实现与线路三维场景的无缝集成。流程图如图1 所示。

2 模型的导入

在3DSMAX 中建立好模型后,可以用多种文件格式存储(.Max;.OBJ;.ASE;.3DS 等)。3DS格式以块状结构存储3D 模型数据,由三角网方式保存的三维几何图形,即用三角面组成的网格面来近似各种曲面[4]。其中,还包含了模型的位置信息,基本材质参数和灯光等信息。考虑到OpenGL 提供了最基本的由多边形构造三维模型的方法,故以三角形网格方式存的3DS 文件最为适合。

图1 三维模型建模流程图

读取3DS 文件方法主要有两种[5]:

方法1 通过3D exploration 或Deep explora- tion 等转换工具将3DS 文件转换为OpenGL 显示列表,并在程序中调用。

方法2 读取3DS 文件到自定义的图形数据结构中,生成OpenGL 显示列表。

以上两种方法中,方法1 需要预先对每个模型建立相应的显示列表,灵活性较差。方法2 则灵活性高,直接读取3DS 模型,系统自动建立相应的显示列表。因此,本文采用第二种方法来读取3DS 模型,流程如图2 所示。

图2 OpenGL 与3DS 接口流程

3 构造物三维模型库

3.1 模型库体系结构

为了更加有效地对模型进行管理和重用,加快建模速度,需要有一个数据库管理系统来对这些模型以及建模所用到的纹理等进行管理。构建三维模型库集中存放模型资源,并对这些资源进行有效地管理与维护是模型资源集中式管理的典型解决方案[6-7]。建立三维视景仿真模型库是开发具有扩展性和逼真性的视景仿真系统的前提。 模型库中的所有模型,按照各自的属性、功能或用途等方面的不同被分为若干类型,每种类型都是一个独立的存储目录,存放着所有属于该类型的模型单元。最后所有的类型被包含于模型库根目录下,组成了完整的模型库体系结构。从上面可以看出模型库的本质就是一个树型存储结构,其根节点是模型库目录,枝干节点是模型类型,叶子节点是模型单元(见图3)。

图3 模型库体系结构

3.2 模型库功能设计

为从宏观、整体的角度管理模型库中的模型资源,维护模型库体系结构的独立性和完整性,实现线路三维场景中模型资源的自动配置。本文采用Oracle 数据库,基于OCI(Oracle Call Interface,即Oracle 调用接口)实现所有构造物模型的数据库管理。具备如下功能:模型预览及属性查询、添加模型、删除模型、编辑模型、查询和统计模型等功能,如图4 所示。

4 三维景观仿真实现

建立三维模型是前提,管理三维模型是保证,而将三维模型应用到三维场景中,实现景观仿真才是最终目的。

图4 模型库管理模块界面

4.1 三维模型与三维场景的匹配问题

目前在三维建模研究中,主要集中在单个模型的读取显示问题,并不涉及到具体的三维场景环境,而在线路三维场景中构造物模型应用,就必须解决与其它三维模型(如路基、三维线路模型等)的匹配问题。主要有以下3 个问题是必须解决的:

(1) 模型位置的匹配

构造物类型的不同,决定了其在线路三维场景中的位置也不同。如桥墩应该在桥面的下方并且是应设置桥梁处;隧道门应该在隧道的进口和出口处等等。只有模型位置的精确匹配,才是正确的,也是三维景观所要求的。

(2) 模型大小的匹配

在建立单元模型时,不可能将单元模型的尺寸刚好设置成与三维场景中对应的大小。以桥墩为例,其宽度是由三维道路模型设置桥梁处的宽度决定。由于地形等因素影响,该宽度是不固定的,因此,也就无法固定单元模型的尺寸。

(3) 模型方向的匹配

这涉及到模型旋转的问题。只有三维模型的方向与其相关联的模型方向一致时,才能实现模型位置的精确匹配。

4.2 三维模型匹配的实现

为了实现构造物三维模型与整体三维场景的匹配,可通过平移变换、比例变换、旋转变换解决。其中旋转变换又可分为绕X 轴、Y 轴、Z轴3 种变换。OpenGL 提供了平移变换、比例变换和旋转变换3 种模型变换方法。

为了保证模型精确匹配,必须考虑模型变换的顺序问题,即旋转、缩放、平移3 种变换的先后顺序。OpenGL 对于模型矩阵的变换是按照栈式进行存储的,根据栈的原理,后进先出,因此,变换顺序如下:

(1) 旋转操作,实现模型方向的匹配;

(2) 缩放操作,模型大小的匹配;

(3) 平移操作,模型位置的匹配。

下面以桥墩模型为例说明,其核心程序如下:

实现效果如图5 所示。

5 结 论

构造物的三维景观仿真是线路整体三维场景仿真的重要组成部分。采用Visual C++、OpenGL 和Oracle 9i 数据库相结合,建立了构造物三维模型数据库,实现了对构造物的有效管理。基于OpenGL 的图形变换技术,解决了构造物模型与线路整体三维场景的精确匹配问题,实现了构造物模型在三维线路场景中的景观仿真应用,构建了线路三维场景的统一景观,提高了景观仿真的逼真度。

图5 构造物三维模型的应用效果图

[1] 蒋红斐. 铁路线路三维设计模型建立方法的研究[J]. 铁道学报, 2000, 22(4): 73-76.

[2] 张正波, 牟 彦, 黄 华. OpenGL 实现3DS 文件中的模型自由旋转[J]. 计算机工程与应用, 2005, 41(13): 98-100.

[3] 殷素峰, 高雪强, 杨胜强. 在OpenGL 环境下开发3DS 文件浏览器[J]. 工程图学学报, 2005, 26(6): 22-24.

[4] 蔡 勇, 杨振中. 3DS模型在虚拟仿真软件开发中的应用[J]. 西南科技大学学报, 2004, 19(2): 7-11.

[5] 吕希奎, 易思蓉, 何 丽. 基于OpenGL 环境的模型数据库管理与复杂三维建模[J]. 工程图学学报, 2007, 28(2): 12-16.

[6] 赵定海, 黄玺瑛. 三维造型库的设计与实现[J]. 装甲兵工程学院学报, 2005, (3) : 29-33.

[7] 薛文革, 周俊林. 模型库管理的工程化[J]. 计算机应用研究, 1995, (4): 24-28.

猜你喜欢

构造物模型库建模
基于Creo参数化建模的设备模型库建立方法
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
高速公路构造物的价值寿命匹配
公路桥涵及构造物防腐蚀技术创新研究
电镀废水综合处理技术与工艺研究
Pro/E的三维往复压缩机参数化模型库的建立
基于模型库系统的金融体系流动性风险预警机制研究
高填土通道、涵洞的设计与施工