- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
摘要 针对飞机座舱系统复杂,利用单一的系统仿真软件开发平台进行模拟往往顾此失比。本文阐述了利用3DS MAX 和MultiGen Creator相结合的模型构建方法,并以歼某机驾驶舱的几何模型制作过程为例,探讨了两者相结合的建模方法。
* U# U% b& g* |2 d$ V5 i关键字 3DS MAX ; MultiGen Creator;虚拟现实;驾驶舱的建模
7 p8 X+ f/ V$ ^4 V C$ A5 U中图分类号 :TP391 文献标识码:A
* i. u. J; l" n1 u. ~
5 C* K i. `7 s5 o9 e" d. @: ?( l0 F: k1 r7 ^* X2 i: l3 N
4 B# R, _5 d4 `7 m( R
( F. ^, W! C8 z+ \" P
9 s; d2 B/ e7 w8 e; l! F6 T
) H. @ Z/ Z1 k$ U$ ]7 x% X+ M" b) J( g2 E+ m# O
1 引言
( }8 }/ j N0 H几何建模技术是虚拟现实技术中最重要的技术领域和关键技术之一。计算机图形领域的一著名学者伊万•萨瑟兰说到:“计算机屏幕只是一个窗口但通过这个窗口,我们可以看见一个虚拟的世界。我们面临的挑战是如何使这个世界看起来真实、动起来真实、听起来真实、摸起来真实”,而所有这些“真实”的实现,主要依靠建模技术。
# w: K# z0 Z" G目前,Autocad、3ds max、maya、creator是国内建模设计的主流软件,随着时代的发展,基于Creator的虚拟仿真技术在建模领域逐渐深入应用,使得这些软件更加广泛的满足了建模设计者的各种要求。众所周知,Autocad在二维平面绘制、编辑功能强大;3dx max对精细建模、复杂建模和材质的真实表现上占优;maya在人物建模方面更具有一定的优势, Creator则在实时虚拟仿真方面独领风骚。 7 w6 c$ q% m0 N* B1 P
若利用单一的系统仿真软件作为开发平台进行模拟往往顾此失比。例如在Creator中用Wall拉伸好的立体,却很难再改变它高度且只能通过手动移动节点实现高度改变,而这样就不能保持模型的精度。所以多个建模软件的联合使用,使得模型更加的逼真。
! e+ u7 {. k; J8 _9 k% U/ C; F若以歼某机的驾驶室为例进行建模,由于驾驶室的内部结构复杂,有大量的仪表,在建模过程中就要求所建立的模型比较精细,故根据驾驶室的特点利用3DS MAX非常强大的点、线、面、几何体编辑功能和MultiGen Creator 强大的仪表模块功能相结合对驾驶室进行具体建模可以达到模型精细、数据量小的要求。但是在具体的建模过程中会遇到一些相应的典型问题, 例如由于3ds max中的模型较大需要在Creator中进行模型简化,或者由于Creator对3DS max中的一些经典命令无法识别而导致模型在导入时出现数据丢失和部件错位影响建模效果需要尽量使用简单命令而对于庞大的数据量需要模型尽量简单化。
( ?# W3 v3 F" O# ]; p2 j* F' q9 M% e2歼某机驾驶舱的几何建模
0 @& G" M- D9 `2.1数据的准备
" ]' d% A6 c& E% C数据准备是建模的关键,它的好坏直接关系到模型的质量,它涉及两个软件相结合的接口处理,取飞机驾驶室的三视图以及实际拍摄的数码照片。
: a: A$ k2 @1 a3 I2.2对歼某机的驾驶舱几何建模 8 k* I8 y I+ A% E7 K
3DS MAX建模的一般原则就是由整体到局部,由粗到精,具体包括以下几个步骤: ! ~1 t9 u, r: p" c
1)首先,在3DMAX中导入飞机机舱的三视图,勾画出最能体现机舱的轮廓线,使用Extrude命令拉伸一定的高度,完成机舱的主体建模。 5 [; V! O0 W6 q. J9 K7 C# W
2)为三维模型映射纹理。在建模过程中贴纹理是很重要的一个环节,直接影响到模型的质量。 5 d! G( M/ X7 q1 d8 F
3)数据格式的转换,在3DS MAX 中将格式为max的文件导出为3ds格式,导出时选择保留纹理坐标选项,然后导入到Creator中,并保存为flt 格式。 ) K) |8 E# z. i6 l" ^# r
4)修改纹理路径和关联了透明纹理的面属性,将3ds文件导入到Creator中后纹理丢失了,需要重新指定纹理路径。 6 d0 ^% k6 p! s: O& y+ g( J
5)导入的3ds文件的数据库没有层次结构,所有的对象都存放在是同一个父节点下,应该按照模型各部分的主、次重新组织数据库。由于场景渲染时是从左往右绘制,因此较重要的对象放在树状结构中兄弟节点的左边,次要的放在右边。为了防止渲染时发生错误,必须删除空的组和对象节点,而且关联了透明纹理的面需放在数据库尾部。三维驾驶舱模型如图1所示。 n8 R0 O0 H& D/ v
0 I! F; Z- b$ r3 z' J+ v* B, @- f6 J# _+ e3 X) u
图1 三维驾驶舱模型图 8 c. [& Z1 z8 I/ l U
2.3歼某机座舱的主要仪表的建模
% i$ g5 L( S* Z9 ^0 k1 ~8 d1 t9 Q+ qCreator的仪表面板模块(Instrumentation Option)提供了盘式量表、矩形量表、柱状量表等在内的各种常见量表仪器的模块,并且提供优化仪表面板显示的剪裁特性。同时,该模块还特别提供了用于创建和编辑多边形字体的编辑器,不仅可以应用到仪表面板上还可以应用到模型数据库的任意位置。用Creator的仪表面板模块创建机载设备仪表模型可以使仪表在Vega软件中得到动态仿真模拟,增加飞行仿真的真实性。 2 [; r0 O9 A/ T/ A
歼某机座舱的主要仪表包括:高度表、速度表、燃料表、油压表、温度表、飞机姿态表、雷达扫描屏、飞机方位表、指南针等。在Creator的仪表面板模块中所提供的仪表种类不能满足机舱内仪表的需要。也就是说,有些仪表必须自己创建出来,比如飞机姿态表和相应的盘式仪表, 飞机姿态表是各种飞行器座舱最重要的量表仪器。它通常用于显示飞机的侧偏和俯仰角度。在飞行过程当中,垂直标尺会随着视点向上下左右做相应的旋转变化,以模拟飞行器的俯仰和侧偏等飞行姿态。创建飞机姿态仪表的主要步骤如下: & @% L4 ^1 p$ j* N- D
1.定义量表尺寸、背景和标尺刻度布局;
* q3 T/ z" I1 |0 J. J: M9 O" o' J2.将垂直标尺数字及其他标志添加到量表中;
1 a' T- r; R! P2 v3.将设计好的机载量表放置到模型数据库的指定位置上。 3 W8 t3 Z! }' `, A8 ^; S% \2 S
Creator中创建这个仪表相当麻烦,为了弥补这个仪表,采用液晶显示在一个外部显示器上。通过Vega的调用随时可以观察到飞机的飞行状态和姿态。最终创建出的飞机姿态仪表如图2所示。 + m' X7 N0 l0 P
图2 飞机姿态仪表
* c/ K# `' G2 L5 w, v在歼某机的机舱中有大量的盘式仪表,所谓的盘式仪表是指扁平的带有细分刻度和数字标记的圆盘状计量仪表,创建一个盘式量表的主要步骤如下: 3 s; `9 m W* `2 h6 l3 r7 e% i4 n
1) 定义量表的尺寸、背景、刻度区域以及数字标志布局; - ]7 R. i, S* G
2) 将数字及其他标志添加到量表面板中;
$ V! G1 O- L+ [: l' R3) 添加表盘弧度以突出量表面板上的特定区域; ' }4 b- M' G* [7 a6 x/ z) P, h" q
4) 将设计好的盘式量表放置到模型数据库的指定位置。 : m0 j) o1 o6 k$ e
利用Creator的仪表面板模块创建的盘式仪表时,达不到逼真的效果,这就需要为其映射相应的纹理和添加相应的指针,为了使在飞机飞行的过程当中,使相应的仪表的指针做相应的转动,这就要为仪表模型设置好DOF节点和添加合理的自由度,在仪表面板中只是修改仪表的外部参数,如大小、指针颜色、字体等。通过使用Local-DOF/DOF Viewer菜单命令,检验其动态效果,如果不符合实际的要求则可以使用Local-DOF/Set DOF Limits菜单命令,重新设置,使达到最佳的动态效果。某盘式仪表的动态模拟效果如图3所示。 3 C4 Q6 f$ L+ C; Z3 V
4 d/ F' L0 s8 S5 m1 m% y图3 盘式仪表
5 C1 }& d# Z+ s$ i2.4对机舱模型纹理的映射 9 y/ a+ A/ J0 D
纹理映射是一种将二维图像映射到一个几何形状上来产生特殊效果或真实感的一种技术,并不是实际的几何模型。在计算机图形学中,不定形物体的模拟是一个十分活跃、难度很大的研究领域,常用的方法是通过分形、粒子、布尔等算法构造大量三维体组合而成。而该种建模方法在逼真度提高的同时是以大量系统资源的耗费为条件的。在歼某机的机舱模拟中,采用纹理映射技术可以较好地模拟机舱内复杂的仪器和仪表,同时实现逼真度和运行速度的平衡。另一方面,对于复杂实体模型,采用纹理映射技术可以模拟出丰富的细节,简化模型的构造过程,降低实体模型的复杂度,同时还可以赋予模型鲜明的色彩,映射图特征等。纹理的意义可以简单归纳为:用图象来代替实体模型中的可模拟或不可模拟的细节,提高模拟逼真度和显示速度。通过纹理映射方法,建立的座舱模型更加逼真如图4所示。 & h& Y8 _+ j/ N7 ~: L
5 t& @; p. V7 f- w) W0 k9 q
图 4 驾驶舱仪表 3 _) K9 @! R$ F
3 歼某机机舱整体模型的简化 ! i: Q6 i% P" u* R; W. q" K
对于飞机驾驶舱个体模型来说数据不算大,但相对与整个项目而言确是可观的。为了使调用整个模型不影响机器的运行速度,需要在Creator中将模型简化。因此在简化过程中不涉及子面的处理,方法主要有3个。 " j% a4 x0 m8 h2 e
1)三角面片合并。模型导人时,Creator会经过重新计算,在处理过程中所有的非三角形将被转化成三角形(例如一个矩形会转化成两个三角形)。也就是说,它会增加多边形的数量,这就涉及到三角面片的合并问题。Creator中的Vsimplify插件可利用三角化 算法来优化模型,使被处理的模型比原始模型包含更少的多边形,从而加快图像的呈现和传输速度。合并面的方法很简单,在face模式下,选中所有的面,使用ModFace下的Combine Faces命令,Creator会自动将处在同一平面上的相邻三角面片合并。此方法能在短时间内将数据量减小5O%甚至更多,但实际上数据量与原来的3DS文件相差不大,这就需要进行第2)步简化操作。 # d U5 d( Y8 U
2)删除多余面。在Creator中,根据数据量大小由面片数决定原理,通过删除不可见面片来达到减小数据量的目的。例如,舱体均是用box构建的,因此,除了舱体底部,其余box上下两个面均被仪表遮挡,不可见,据此判断,逐步找出所有不可见面片并删除。 7 g& C5 z% Q2 O( y& H' C
3)面的修改。 模型制作过程中,圆柱体或球体往往是导致数据量大的重要原因之一。以圆柱体为例,一个圆柱体一般有8~ 12个面即可满足精度要求,删除多余的面,把保留面连接完整即可。事实上,最好的办法是在3DS MAX中将其面片数减到最小,这样即可大大提高工作效率和速度,也可避免不必要的重复。 m; T+ P4 ^" E5 Z# _
通过以上的方法对某歼击机的模型简化后得到最后的模型如图5所示 # F9 s- F" ~7 ]! M1 }% K
% L; A# d0 A' S
图5 歼某机驾驶舱
g+ P" l. m/ T8 f& j0 G% x4结束语
) _# T6 c' {5 Z5 E' |+ L$ c" s, x0 E利用本文介绍的某歼击机的驾驶舱的建模方法已经应用在本实验室的三维虚拟仿真中,它满足了系统所要求的精确度和细节层次水平的要求,具有一定的应用价值。 ' {; | Q% R" {+ B& u3 o( P
参考文献: ! z% V. Z2 ]0 Y
[1] 黄艳芳,祝国瑞,庞前聪。3DS MAX和MultiGen Creator相结合的虚拟城市建模方法[J] 测绘信息与工程,2005,30(5):37~39.
8 S9 B* D6 y5 [! Y[2] 结合3DS MAX和MultiGen Creator进行三维城市建模的研究.北京测绘,2007年第二期,16~18.
W" }9 O* V2 i8 k[3] 洪 光,李洪儒,牟建国.基于Creator的三维模型的简化研究[J].计算机仿真,2004,21(1):57~115. 8 u2 m) I- m$ E x# N1 x9 [, L2 E' |
[4] 王裕俭.基于MultiGen Creator和Vega的虚拟现实探讨[J].测绘信息与工程,2003,28(4):14~16. |
|