1 引言 VRML(Virtual Reality Modeling Language)是一种建模语言,用来在Web环境中描述三维物体及其行为,从而在网络环境中构建虚拟场景。VRML以Internet为应用平台,作为构筑虚拟现实应用的基本构架,具有分布式、三维全景、交互性、多媒体集成、境界逼真等特性。传统的文字、平面和三维技术带来的信息表达式已经难以满足多媒体和互联网技术的飞速发展,以虚拟现实为特征的网络3D技术的广泛应用和发展势在必行。VRML被称为第二代网络程序设计语言,是网络3D的核心技术。本文将以VRML技术为基础,讨论并给出对某一假想战斗机驾驶舱实体进行三维仿真造型的方法。
2 驾驶舱造型分析 一个常规的战斗机实体,主要由机身、机翼、机尾和驾驶舱等主要部分组成。无论是机身,还是机翼、机尾,其三维结构相对规则,利用VRML中一种或者几种几何节点(如Box节点、Sphere节点、Cylinder节点、Cone节点)的组合即可构造。但是,驾驶舱作为三维造型对象,具有较强的不规则性和材质特效(如透明),因此该部分的三维造型较为繁琐和重要。 以假想的某一型战斗机研究对象,按照造型和材质特征,其驾驶舱的空间结构可分解为舱座和舱盖两大组成部分,图1为驾驶舱侧面空间结构,图2为驾驶舱正面空间结构。图1 驾驶舱侧面空间结构
图2 驾驶舱正面空间结构 根据舱盖部分玻璃材质的实际情况,造型的材质将具备“透明”效果,这一点与驾驶舱底座略有区别。针对这一复杂的、不规则造型体,应将其外表面视为一个特殊的“平面”组合。在VRML中创建空间平面并不是把多个点集合在一起,而是首先确定该平面的各个顶点,再由浏览器计算机构建该平面,这主要通过Coordinate坐标节点来实现。VRML中构造空间平面集合的节点为IndexedFaceSet,面集合节点IndexedFaceSet是Shape节点中的geometry域的域值。
3 Coordinate节点和IndexedFaceSet节点
3.1 Coordinate节点 Coordinate节点创建一个坐标列表并被作为基于坐标的几何节点(如:IndexedLineSet节点、IndexedFaceSet节点)的coord域值使用,其语法结构如下所示。Coordinate { point [ ]# exposedFieldMFVec3f } point可见域用于提供造型的三维坐标列表P(X, Y, Z),其中每一个数值由浮点数值组成并表示坐标点在X,Y和Z方向上与原点之间的空间距离。三维造型的所有点坐标均按如下方式定义:P(Index1|X, Y, Z),L(Index2|X, Y,Z),…,L(IndexN|X, Y, Z)
3.2 IndexedFaceSet节点 VRML中,一系列空间点坐标按照一定的关系集合构建的平面和平面集合,其最终空间形状由各个顶点决定。IndexedFaceSet节点共有14个域,共同决定构建面集合的形状、材质等属性特征。
IndexedFaceSet { coord NULL# exposedFieldSFNode coordIndex [ ]# fieldMFInt32 texCoord NULL# exposedFieldSFNode texCoordIndex [ ]# fieldMFInt32 color NULL# exposedFieldSFNode colorIndex [ ]# fieldMFInt32 colorPerVertex TRUE# fieldSFBool normal NULL# exposedFieldSFNode normalInidex [ ]# fieldMFInt32 normalPerVertex TRUE# fieldSFBool ccw TRUE# fieldSFBool convex TRUE# fieldSFBool solid TRUE# fieldSFBool creaseAngle 0.0# fieldSFFloat set_coordIndex# eventInMFInt32 set_texCoordIndex# eventInMFInt32 set_colorIndex# eventInMFInt32 set_normalIndex# eventInMFInt32 }
coordIndex域是对应Coordinate节点point域的坐标列表L的一个索引列表C,按照给定的索引顺序连接坐标点形成空间多边形,即:C(1, X, Y, Z),C(2, X, Y, Z),…,C(N, X, Y, Z) creaseAngle域指定一个折痕角θ的阀值,以弧度表示,用于生成光滑的造型表面。creaseAngle域影响浏览器对几何体相邻表面之间棱的处理。creaseAngle指定一个大于0的角度,若相邻表面法线之间夹角的绝对值小于这一角度,浏览器对相邻表面做平滑处理,从而使它们之间的边界“模糊化”(如图3所示)。图3 creaseAngle域作用
4 造型设计和效果验证 舱盖的空间造型包含128个坐标点,分别构成造型的各个空间平面。creaseAngle域值为70,提供造型的平滑效果。由于其材质体现“透明”的玻璃效果,则transparency域值设为0.5。造型的材质颜色diffuseColor域值设为[0.717647058823529 0.717647058823529 1]。 舱座的空间造型较舱盖略显复杂,坐标点为184个,构成舱盖的各个组成平面。creaseAngle域值和transparency域值与舱盖造型相同。为使舱盖和舱座两个空间造型的边界区别分明,舱座造型的材质颜色diffuseColor域值设为[0.784313725490196 0.784313725490196 0.784313725490196]。 该战斗机驾驶舱三维空间造型如图4、图5所示。其中,图4为侧面空间浏览效果,图5为正面空间浏览效果。图4 侧面空间浏览效果图5 正面空间浏览效果
5 结论 本文讨论并给出了利用Coordinate节点和IndexedFaceSet面集合造型节点在VRML中构造某一假想战斗机驾驶舱三维空间造型的方法。这些节点的合理使用,能够使一些复杂造型的创建工作简单、直接。在使用过程中,建模工作主要放在空间坐标点的设置,这可以通过图示的方法画出造型简图,从而确定坐标。在集合节点中,同样的空间坐标点索引的不同,可以得到不同的造型。复杂造型的构建和综合应用,能够使虚拟场景中的三维造型更逼真、灵活和网络高效运行。
参考文献[1] Leandro Soares Indrusiak, Ricardo Augusto da Luz Reis. 3D integrated circuit layout visualization using VRML[J], in: Future Generation Computer Systems. Vol. 17(5). 2001, PP: 503-511 Iwadate, Y, Katayama, M, Tomiyama, K, Imaizumi, H. VRML animation from multi-view images[J], in: Multimedia and Expo. Vol. 1. 2003, PP: 881-884 Walczak, K.; Cellary, W. X-VRML for advanced virtual reality applications, in: Computer[J]. Vol. 36(3). 2003, PP: 89-92 Taubin, G.; Horn, W.P.; Lazarus, F.; Rossignac, J. Geometry coding and VRML[J], in: Proceedings of the IEEE. Vol. 86(6). 1998, PP: 1228-1243 Tomaz Amon,Vojko Valencic. VRML — enhanced learning in biology and medicine[J], in: Future Generation Computer Systems. Vol. 17(1). 2000, PP: 1-6 王昊鹏,赵凯. VRML基于高程格网节点的复杂造型研究[J]. 微计算机信息. Vol. 22(7-1). 2006, PP: 211-212 黄文丽,卢碧红,杨志刚,景宁. VRML语言入门与应用[M]. 北京:中国铁道出版社, 2003
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。