虚拟现实70

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

三基于VRML的虚拟建模VRML场景创建VRML颜色、纹理与灯光模型VRML声音与LOD加速VRML动画与交互地形的LOD模型实现实习工具VRML编辑器VRMLPadVRML浏览ParallelGraphics公司的Cortona3DSMAXCortona浏览器界面:VRML场景创建VRML中几何形体的基本构成模块是造型,造型由节点和其域及域值描述构成VRML中几何造型节点5类原始几何造型节点(Box,Cone,Cylinder,Sphere)点、线、面集节点(PointSet,IndexedLineSet,IndexedFaceSet,Coordinate)海拔节点(ElevationGrid)挤出节点(Extrusion)文本造型节点(Text)VRML文件结构文本叙述(TextualDescription)文件,可用任何文本编辑器编写VRML文件,保存成.wrl文件。#VRMLV2.0utf8#DrawthecolumnShape{appearanceDEFYellowAppearance{materialMaterial{diffuseColor1.01.00.0}}geometryCylinder{radius0.5height4.0}}#DrawthebaseTransform{translation0-30children[Shape{appearanceUSEYellowgeometryBox{size2.02.02.0}}]}节点VRML文件最基本的单位,节点还包含子节点(ChildNode)和描述节点属性的字段(Fields)。Shape节点:用来形容对象的几何形状(Geometry节点,如球体、长方体和圆柱体)及外观(Appearance节点,如表面的颜色、透明度和光滑度)的节点。前例中的一个节点geometryCylinder{radius0.5height4.0}一个节点通常包含节点的名称(如Cylinder),一对大括号{},以及字段和字段值(如radius0.5)。字段和字段值描述节点的属性。Shape造型节点——重要的基本节点之一定义一个VRML造型具有的几何尺寸和外观所有的VRML造型都使用shape节点创建Shape节点:构建虚拟对象的轮廓,即模型。包含两个字段,Appearance(外观)节点和Geometry(几何)节点字段。Shape节点语法:Shape{exposedFieldSFNodeappearanceNULLexposedFieldSFNodegeometryNULL}字段说明字段说明appearance该字段包含一个Appearance节点。geometry该字段包含一个Appearance节点。节点值(SFNode):表明一个属性节点,控制造型节点创建造型。几何造型节点——GeometryGeometry域的域值用于设定一个几何造型节点简单几何造型节点长方体BOX球体Sphere圆锥体Cone圆柱体Cylinder复杂几何造型节点点集线集面集几何箱型节点——BoxBox节点:构建一个箱型几何对象,是Shape节点的Geometry节点之一字段是size,控制箱型的尺寸,长、高和宽分别位于X轴、Y轴和Z轴。如果没有设置箱型对象的位置,它的几何中心默认位置在原点(0,0,0),长、高、宽的默认值为(2,2,2)。yxzSize[2]Size[2]Size[2]Box节点Box节点语法:Box{fieldSFVec3fsize222#(0,∞)}字段说明字段说明size该字段用于控制箱型体尺寸的大小,默认值为(222)。三维浮点矢量(SFVec3f和MFVec3f):值为3个浮点值,用于指定三维位置。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometryBox{size323}}几何圆锥体节点——ConeCone(圆锥体)节点:圆锥体。Shape节点的Geometry节点之一。尺寸由bottomRadius(底部半径)和height(高)两个字段控制;还有两个布尔值的字段分别为side和bottom,控制圆锥体四周和底部是否要创建。它的默认位置,顶点在(0,height/2,0),底部圆心在(0,-height/2,0)。布尔值(SFBool):开关值。值为TRUE或FALSE,常用于指定某一属性的开关或关闭。bottomRadiusheight/2height+x+y+zConeNodeSyntaxCone{fieldSFFloatbottomRadius1#(0,∞)fieldSFFloatheight2#(0,∞)fieldSFBoolsideTRUEfieldSFBoolsideTRUE}字段说明字段说明bottomRadius定义圆锥体的底部圆半径大小,默认值为1。height定义圆锥体的高,默认值为2。side该字段是一个布尔值,用来决定圆锥体的四周是否创建。bottom该字段是一个布尔值,用来决定圆锥体的底部是否创建,默认值为TRUE。浮点值(SFFloat):浮点值。值为具有正负之分的实数,用于指定某一确定的数值属性。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometryCone{bottomRadius2height4sideTRUEbottomFALSE}}几何圆柱体节点——CylinderCylinder(圆柱体)节点:构建一个圆柱体。是Shape节点的Geometry节点之一。控制外型大小的字段分别是height(高)和radius(半径);还有三个布尔值的字段分别是bottom、side和top,确定底部、四周和顶部是否创建。若没有给定任何的起始位置,它的几何中心位置在原点(0,0,0)。+x+y+zsidetoptottomradiusheight/2heightCyliderNodeSyntaxCylinder{fieldSFBoolbottomTRUEfieldSFFloatheight2#(0,∞)fieldSFFloatradius1#(0,∞)fieldSFBoolsideTRUEfieldSFBooltopTRUE}字段说明字段说明bottom该字段是一个布尔值,决定圆柱体的底部是否建立,默认值为TRUE。height用于定义圆柱体的高度,默认值为2。radius用于定义圆柱体的底部半径,默认值为1。side该字段是一个布尔值,决定圆柱体的四周是否创建。默认值为TRUE。top该字段是一个布尔值,用于决定圆柱体的顶部是否创建,默认值为TRUE。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometryCylinder{radius1.5height3sideTRUEbottomTRUEtopFALSE}}几何球体节点——SphereSphere节点是一个最基本的Geometry节点。用于构建球体,只有一个字段,控制半径的radius字段,其默认几何中心位置在原点(0,0,0)。+x+y+zradiusSphereNodeSyntaxSphere{fieldSFFloatradius1#(0,∞)}字段说明字段说明radius用来定义球体的半径,默认值为1。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}}geometrySphere{radius1.6}}点集合节点——PointSet一个VRML的点是利用坐标x、y、z定义出位置。PointSet节点是将很多点集合起来。PointSet包含两个字段,这两个字段都是节点:一个是color字段,用Color节点来控制颜色;另一个是coord字段,用Coordinate节点来控制坐标。字段说明字段说明color该字段包含一个Color节点,用来定义每一个点的颜色。coord该字段包含一个Coordinate节点,用来定义每一个点的坐标。PointSetNodeSyntaxPointSet{exposedFieldSFNodecolorNULLexposedFieldSFNodecoordNULL}字段说明字段说明point该字段用来定义一连串几何对象的坐标值。CoordinateNodeSyntaxCoorinate{ExposedFieldMFVec3fpoint[]#(-∞,∞)}#VRMLV2.0utf8Shape{geometryPointSet{colorColor{color[1.00.00.0,#RED0.01.00.0,#GREEN0.00.01.0,#BLUE0.00.00.0,#BLACK1.01.01.0,#WHITE1.01.00.0,#YELLOW0.01.01.0,#GREENBLUE1.00.01.0#PURPLE]}coordCoordinate{point[1.01.01.0,1.0-1.01.0,-1.0-1.01.0,-1.01.01.0,1.01.0-1.0,1.0-1.0-1.0,-1.0-1.0-1.0,-1.01.0-1.0]}}}指针线集合节点——IndexedLineSetVRML的线是由两点连接所构成的一条直线。IndexedLineSet节点就是将许多线集合在一起,并给定每条线一个指针(Index)。字段说明字段说明color该字段包含一个Color节点,用来定义每一个点的颜色。coord该字段包含一个Coordinate节点,用来定义每一个位置。colorIndex该字段用来定义一连串指针,每个指针对应Color节点的每组颜色值。coordPerVertex该字段是布尔值,TRUE表示提供每一个顶点一个颜色,此为默认值;FALSE表示提供每一组PolyLines一个颜色。coordIndex该字段用来定义一连串指针用于Coordinate节点,每个指针用来指出那些顶点相连和相连的顺序。事件说明事件说明set_colorIndex该事件是一个eventIn事件,用来设置colorIndex字段的值。set_coordIndex该事件是一个eventIn事件,用来设置coordIndex字段的值。#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{emissiveColor1.01.01.0}}geometryIndexedLineSet{coordCoordinate{point[0.01.00.0,#Index01.00.01.0,#Index11.00.0-1.0,#Index2-1.00.0-1.0,#Index3-1.00.01.0,#Index4]}coordIndex[#side0,1,-1,0,2,-1,0,3,-1,0,4,-1,#bottom1,2,3,4,1,-1]}}上例中创建一个四角锥。坐标指针坐标(x,y,z)00,1,011,0,121,0,-13-1,0,-14-1,0,1由上表构成的5组PolyLinesPolylines1,2,3,4,10,10,20,30,402143三维PolyLines四角锥地表网格节点——ElevationGrid•用来描述地表特征的节点:高山、丘陵和平地的地表不规则变化•将某一个要描述的地表区域分割成很多网格,定义网格的个数,再定义网格的长和宽,最后定义网格的高度,可以描述出想要表达的地表形状•ElevationGrid节点适合于立体地形图的构建;zxDimension,i=0~4zDimension,i=0~3xy012345101501123423981419181716xSpacingzSpacingheight(18)Elevatio

1 / 70
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功