首页 > 范文大全 > 正文

基于VRML构造三维车模方法

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于VRML构造三维车模方法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:以VRML为代表的WWW下的虚拟现实建模技术正在日益受到广泛的重视,基于vrml进行三维仿真建模具有交互、三维全景、多感知等特点。本文以“汽车”为研究对象,讨论、阐述了VRML构造三维模型的实现方法,并给出了建模效果验证。

关键词:VRML;车模;三维造型;节点

中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)12-21594-02

Approach of Automobile Modeling Based on VRML

WANG Hao-peng1,2,3,LIU Bing1

(Department of Computer,Aviation University of Air Force,Changchun 130022,China)

Abstract:As a typical technology of virtual reality 3D modeling in WWW, VRML is focused increasingly. The characters of 3D simulation based on VRML are interaction, 3D panorama, and multi-sensation. The paper is focus on the automobile, discusses the approach of automobile 3D modeling, and gives program validation.

Key words:virtual reality modeling language;automobile models;3D modeling;node

1 引言

虚拟现实又称“灵境”技术,它的提出可以追溯到二十世纪八十年代。虚拟现实技术综合了计算机图形技术、计算机仿真技术、遥感技术和传感技术等诸多领域,使人们可以进入一个计算机生成的逼真的三维虚拟环境中。二十一世纪的今天,虚拟现实技术已经渗透到社会生活的方方面面,并发挥着越来越大的作用。虚拟现实建模语言(Virtual Reality Modeling Language,简称VRML)是一种基于WWW的具有一定规范的描述性格式语言,它吸取了面向对象的优点,可以生成、修饰三维实体对象。VRML改变了原来WWW的简单、交互性差的弱点,将人们的运动行为作为浏览的主体,提供给用户虚拟的三维空间。本文将以VRML技术为基础,讨论并给出对“汽车”实体进行三维仿真造型的方法

2 造型分析

通常,汽车实体作为建模对象,可视为多个空间几何体的组合。对汽车实体的分解观察、描述是构造三维仿真模型的前提。常规的汽车实体在虚拟空间中可以分解为:若干空间立方体(Box)、空间圆柱体(Cylinder)、空间挤出造型(Extrusion)[1]。其中,空间立方体、空间圆柱体利用VRML基本几何造型节点实现车体、车轮等造型;驾驶室空间造型较为复杂,利用空间挤出节点Extrusion node实现。汽车三维造型的空间分解如图1所示。

图1 汽车三维造型的空间分解

2.1 车体空间造型分析

车体造型的整体结构是一个特殊的立方体,记作B。其中,BTOP、BBOTTOM、BLEFT、BRIGHT、BHEAD、BTAIL分别标识立方体造型的6个面。BTOP、BBOTTOM用来构造车体B的上下表面,由于上下表面的垂直厚度几近于0,则Box节点的Y方向值是一个“小值”;BLEFT、BRIGHT分别用来构造车体B的左右面板,由于左右面的厚度几近于0,则Box节点的Z方向值是一个“小值”;BHEAD、BTAIL分别用来构造车体B的前后面板,前后面的水平厚度同样也几近于0,则Box节点的X方向值是一个“小值”。

2.2驾驶室空间造型分析

驾驶室空间造型的整体结构是一个不规则体造型,记作E。其中,ETOP、ELEFT、ERIGHT、EHEAD、EBACK分别标识不规则体造型的顶部和4个面。ETOP和EHEAD、EBACK用来构造驾驶室舱顶和前后面,用Box节点构造,厚度均趋近于0;ELEFT、ERIGHT分别用来构造舱体左右面,用Extrusion节点构造。驾驶室空间造型的4个面(除顶部)均为透明的效果,即作为舱体的玻璃。

2.3 车轮空间造型分析

车轮造型是圆柱体(Cylinder)节点的典型应用,造型记作C。其中,两组圆柱体造型C1和C2作为汽车空间造型的前后轮。每个圆柱体造型的上下底与表面材质不同,用于增强车轮的立体效果。

3 造型节点

依据汽车空间造型的结构分解和分析,选取相应节点应用于VRML的三维仿真建模中。应用节点时,合理设定节点的各节点域,从而有效实现汽车实体的三维空间造型[2-3]。

3.1 Box节点和Cylinder节点

3.1.1 Box节点造型

Box节点用于创建空间立方体、立体平面的原始几何造型,通常是Shape节点中的geometry域的域值。其节点语法结构如下:

Box{ size2.02.02.0#fieldSFVec3f }

Box节点在构造三维模型的层次结构如图2所示。

图2 Box节点构造三维模型层次结构

3.1.2 Cylinder节点造型

Cylinder节点用于创建空间圆柱体的原始造型,同样是Shape节点中的geometry域的域值。Cylinder节点在构造三维模型的层次结构类似于Box节点。Cylinder节点语法结构如下:

Cylinder{

radius 1.0 # fieldSFFloat

height 2.0 # fieldSFFloat

top TRUE # fieldSFBool

bottom TRUE # fieldSFBool

side TRUE # fieldSFBool }

其中,radium域指定以原点为中心,Y方向为轴的圆柱体半径,其取值范围为 。height域指定圆柱体的高,取值范围为 。

3.2 Extrusion节点

对于复杂的、不规则的三维造型,无论用某一基本空间几何节点还是若干几何节点的组合均难以实现。在VRML中,Extrusion节点可以很好解决这一问题。Extrusion节点,即挤出节点,是以一个2D图形为边界沿一个预先定义好的路径向某一方向挤压的造型效果。对于汽车造型中的舱体左右面,即可用Extrusion节点实现。其语法结构如下:

Extrusion{

spine 0 0 0,0 1 0 # fieldMFVec3f

crossSection 1 1,1 -1,-1 -1,-1 1,1 1# fieldMFVec2f

scale 1 1 # fieldMFVec2f

orientation 0 0 1 0 # fieldMFRotation

beginCap TRUE # fieldMFBool

endCap TRUE # fieldMFBool

ccw TRUE # fieldSFBool

solid TRUE # fieldSFBool

convex TRUE # fieldSFBool

creaseAngle 0 # fieldSFFloat}

其中,spine域定义一条沿挤压方向的“龙骨折线”,该折线由一系列三维坐标点构成。crossSection域由一系列二维坐标点连接而成,作为挤压过程中的外部轮廓。crossSection域和spine域共同决定最终挤压成型的复杂造型的轮廓和走向(如图3所示)。

图3 crossSection和spine示意

4 程序实现

在模型构造中,作为车体B的6个面BTOP、BBOTTOM、BLEFT、BRIGHT、BHEAD、BTAIL,其空间位置分别为[-1 0 0],[-1 -2 0],[-1 -1 2],[-1 -1 -2],[-8 -1 0],[6 -1 0];空间大小分别为[14 0.1 4],[14 0.1 4],[14 2 0.1],[14 2 0.1],[0.1 2 4],[0.1 2 4]。

驾驶室造型E中的ETOP、ELEFT、ERIGHT、EHEAD、EBACK中,ETOP和

EHEAD、EBACK是空间立方体,其空间位置和大小分别为[-1 2 0],[-5 1 0],[3 1 0]和[7 0.1 4],[-5 1 0],[3 1 0];ELEFT、ERIGHT利用Extrusion节点实现驾驶室左右侧面空间造型,其crossSection域和spine域赋值如下:

ELEFT:

crossSection [

0 0,

-5 0,

-4 2,

3 2,

4 0,

0 0 ]

spine [

-0.5 0 2.1,

-0.5 0 2, ]

ERIGHT:

crossSection [

0 0,

-5 0,

-4 2,

3 2,

4 0,

0 0 ]

spine [

-0.5 0 -2,

-0.5 0 -2.1, ]

由于驾驶室造型的ELEFT、ERIGHT、EHEAD、EBACK均为玻璃效果,其transparency域设为0.5。

车轮三维造型由Cylinder节点实现,两组圆柱体造型C1、C2的空间位置分别为[-6 -2 0],[4 -2 0];空间大小分别为:

C1:

geometry Cylinder {

radius 1

height 4.2

side FALSE}

C2:

geometry Cylinder {

radius 1

height 4.2

side TRUE

top FALSE

bottom FALSE }

汽车三维空间造型的效果如图4所示,图4-1为正面浏览效果,图4-2为侧面浏览效果。

图4-1 三维造型正面浏览效果 图4-2三维造型侧面浏览效果

图4 汽车三维空间造型的效果

5 结论

VRML针对大型物体的三维空间造型过程中,恰当进行空间造型分解十分重要。分解的结果将简化复杂三维空间造型的结构和构造过程,其中很多模块应用基础节点即可实现;对于较复杂的模块也可利用挤出、海拔栅格等节点构造[4]。本文讨论了利用VRML中的3个节点实现的汽车三维造型方法,通过该方法可有效地实现大型物体的三维空间造型,从而服务于多媒体3D展示、虚拟现实及可视化输出。

参考文献:

[1]Iwadate Y,Katayama M,Tomiyama K,et al.VRML animation from multi-view images[J].Multimedia and Expo,2002,17(1):881-884.

[2]En-Mi Lim,Tsuyoshi Honjo,Kiyoshi Umeki,The validity of VRML images as a stimulus for landscape assessment[J],Landscape and Urban Planning,2005,14(1):71-84.

[3]Tsuyoshi Honjo,En-Mi Lim,Visualization of landscape by VRML system[J].Landscape and Urban Planning,2001,55(3):175-183.

[4]张金钊,张金镝,张金锐.虚拟现实三维立体网络程序设计语言VRML[M].北京:清华大学出版社,2004.2.

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”