VRML文件授课教师:赵应丁E-Mail:zhaoyingding@163.com江西农业大学计算机与信息工程学院2019/8/1江西农业大学计算机与信息工程学院第1页第四讲VRML文件与VRML基本造型1.VRML文件体系2.VRML文件基本内容3.VRML空间4.VRML关键字5.Shape节点6.基本几何造型7.造型材质控制8.Group编组节点9.节点定义及引用2019/8/1江西农业大学计算机与信息工程学院第2页1.VRML文件体系VRML文件主要包括VRML文件头\造型\事件\路由\事件体系\脚本\原型等体系元素。1.VRML文件类型.VRML文件是由通用文本编辑系统或专用VRML开发工具编辑的ASCII文件格式的场景描述性语言,其文件类型扩展名为.wrl或.wrz,一般使用.wrl文件扩展名。2.VRML文件头#VRMLV2.0utf8VRML文件头由四部分组成,各部分意义说明如下:2019/8/1江西农业大学计算机与信息工程学院第3页1.VRML文件体系(续)(1)VRML文件头由“#”字符起始,“#”字符说明后为一个文本型的说明字符串.(2)VRML文件头的第二部分是“VRML”字符串,该字符串提示浏览器该文件是一个VRML文件.(3)VRML文件头的第三部分是“V2.0”字符串,该字符串提示浏览器该VRML文件遵循VRML规范2.0版本.(4)VRML文件头的第四部分是“utf8”字符串,该字符串提示浏览器该VRML文件是一个使用国际标准UTF-8字符集的文件.UTF-8的英文全称是UCSTransformFormat,而UCS是UniversalCharacterSet的缩写.2019/8/1江西农业大学计算机与信息工程学院第4页1.VRML文件体系(续)VRML造型VRML中的场景由造型组成,而造型则由节点(Node).在最高抽象层,VRML定义了一组节点机制用于三维场景制作,再由浏览器进行实时渲染.VRML中的所有节点都可以有零个或多个域(Field).每个域取域值,不同的域对应不同的域值类型.VRML定义了20种基本数据类型,也分为两类:以SF开头的是单值类型,该类型只有一个单一的数或数组;以MF开头的是多值类型,该类型指定一个数或数组的列表.2019/8/1江西农业大学计算机与信息工程学院第5页1.VRML文件体系(续)VRML事件、路由、事件体系.节点除具有域属性外,还具有事件(event)属性。事件是VRML实现用户交互与场景动态变化的最主要内容。事件为节点提供了接收外界信息以及外界发送信息的能力。节点通过事件入口接收入事件,通过事件出口发送出事件。入事件要求节点改变自己某个域的取值,而出事件则要求改变其他节点的域值。VRML对节点的说明中经常包含标有”exposedField”的公共域,该类型域隐含着与下面两种系统缺省定义的事件相关。路由为创作者提供了一种独立于场景层次体系的系统机制,通过这种机制,事件得以蔓延传播从而引起其他节点的变化。2019/8/1江西农业大学计算机与信息工程学院第6页1.VRML文件体系(续)VRML脚本为使VRML具有更强的人机交互能力和可控性,可以在事件发生器与事件接收器之间插入脚本(Script)节点。脚本节点实际上是一个外壳,它包含一组利用脚本描述语言,如Java,JavaScript编写的函数或方法。VRML原型用户可以通过VRML原型机制扩充VRML标准节点类型集。原型节点定义应对其中需要使用的域、入事件和出事件分别加以说明,原型定义既可以在引用该原型的文件中进行,也可以在外部文件中定义而后在其他的场景文件中引用。2019/8/1江西农业大学计算机与信息工程学院第7页2.VRML文件基本内容VRML节点。每个VRML文件都是一个基于时间的三维空间表示,它包含了可通过多种机制动态变化的由视、听和对象组成的虚拟环境。通过VRML建模的虚拟环境专业上又称之为场景图。场景图由一系列无序节点组成,节点则用以描述环境中的对象及其属性。2019/8/1江西农业大学计算机与信息工程学院第8页2.VRML文件基本内容(续)节点类型节点层次性节点类型造型节点ShapeAppearanceMaterial材质TextureImageTexture纹理映射PixelTextureMomieTextureGeometryBox立方体Sphere球体Chlinder圆柱体Cone圆锥体TextFontStyle文本造型PointSetColor点造型CoordinateIndexedLineSetColor线造型Coordinate2019/8/1江西农业大学计算机与信息工程学院第9页2.VRML文件基本内容(续)节点类型节点层次性节点类型造型节点ShapeGeometryIndexedFaceSetColor面造型CoordinateTextureCoordinateNormalElevationGridColor标高网络造型TextureCoordinateNormalIndexedLineSetCoordinate线造型ColorCoordinateExtrusion2019/8/1江西农业大学计算机与信息工程学院第10页2.VRML文件基本内容(续)节点类型节点层次性节点类型声音节点SoundAudioClip声音剪辑MovieTexture电影伴影节点类型节点层次性节点类型光源节点Pointlight点光源DirectionalLight平行光源SpotLight锥光源2019/8/1江西农业大学计算机与信息工程学院第11页2.VRML文件基本内容(续)节点类型节点层次性节点类型插补器节点ColorInterpolator颜色插补PositionInterpolator位置插补OrientationInterpolator方向插补ScalarInterpolatror标量插补CoordinateInterpolator坐标插补NormalInterpolator法向量插补2019/8/1江西农业大学计算机与信息工程学院第12页2.VRML文件基本内容(续)节点类型节点层次性节点类型传感器节点TimeSensor时间传感器TouchSensor接触传感器PlaneSensor环境传感器SphereSensorCylinderSensorVisibilitySensor感知传感器ProximitySensorCollision碰撞传感器2019/8/1江西农业大学计算机与信息工程学院第13页2.VRML文件基本内容(续)节点类型节点层次性节点类型编组节点Group编组Transform空间变换Inline内联Switch开关Billboard布告牌LOD层次Anchor锚链2019/8/1江西农业大学计算机与信息工程学院第14页2.VRML文件基本内容(续)节点类型节点层次性节点类型脚本节点Script脚本其他节点Background空间背景Fog空间大气ViewPoint视点NavigationInfo导航WorldInfo世界信息2019/8/1江西农业大学计算机与信息工程学院第15页2.VRML文件基本内容(续)VRML数据类型SFBool,SFColor,MFColor,SFFloat,MFFloat,SFImage,SFInt32,MFInt32,SFNode,MFNode,SFRotation,MFRotation,SFString,MFString,SFTime,MFTime,SFVec2f,MFVec2f,SFVec3f,MFVec3f.程序注释为VRML文件添加注释要求以”#”字符开头,并结束于该行的末尾。2019/8/1江西农业大学计算机与信息工程学院第16页3.VRML空间VRML的场景建设默认情况下使用VRML系统缺省空间坐标系,用户也可以使用Transform节点对缺省空间进行变换,以形成相对于父坐标系的子坐标系。1.VRML空间坐标系。VRML系统默认的坐标系为一个立体三维的空间坐标系。该坐标系的原点位于VRML平面浏览器的中心位置,X轴正向由原点指向屏幕右侧,Y轴正向由原点指向屏幕上方,Z轴正向由原点垂直指向用户。2.VRML空间计量单位。VRML造型大小、方位均使用VRML空间计量单位。空间计量单位又分为长度计量单位和角度计量单位两种。长度计量单位也之为VRML单位,用来度量造型的空间位置及大小尺寸。2019/8/1江西农业大学计算机与信息工程学院第17页3.VRML空间(续)角度单位用以计量VRML空间变换坐标系的旋转角度。VRML的角度使用常规的弧度计量单位比例。2019/8/1江西农业大学计算机与信息工程学院第18页4.VRML关键字VRML2.0共使用14个系统关键字关键字典型格式语法说明field定义私有域exposedField定义公共域eventIn定义入事件eventOut定义出事件TRUEFALSENULLDEF为节点命名USEUSE节点名引用DEF定义的节点名2019/8/1江西农业大学计算机与信息工程学院第19页4.VRML关键字(续)关键字典型格式语法说明PROTOPROTO自定义原型节点名[域的自定义事件的自定义]{节点体}内部原型定义2019/8/1江西农业大学计算机与信息工程学院第20页4.VRML关键字(续)关键字典型格式语法说明EXTERNPROTOEXTERNPROTO引用节点名[域的自定义事件的自定义]外部原型节点资源定位外部原型引用RouteRoutefromNode.fromEventTOtoNode.toEventfromNode为事件的节点名称fromEvent为出事件名称toNode为入事件的节点名称toEvent为入事件名称TO见ROUTE语句格式用于ROUTE语句形成路由IS原型节点体中节点的域或事件名IS原型节点接口中自定义的域或事件名。用于原型语句将接口中自定义的域或事件与节点体中节点的域或事件连结在一起。2019/8/1江西农业大学计算机与信息工程学院第21页5.Shape节点任何一个VRML虚拟场景中的空间造型都必须使用Shape节点加以创建,场景造型包括基本几何造型(立方体、球体、圆柱体、圆锥体),文本造型以及点、线、面方式构造的任意几何造型。Shape节点语法格式Shape{appearanceNULL#exposedFieldSFNodegeometryNULL#exposedFiledSFNode}Shape节点由两个重要的属性组成,即造型的外观属性和几何属性。2019/8/1江西农业大学计算机与信息工程学院第22页5.Shape节点(续)Appearance节点语法格式Appearance节点用以指定所有造型的外观属性,常作为Shape节点appearance域的域值使用。Appearance节点由3个重要的属性组成,即造型的材质属性、纹理渲染属性以及纹理变换属性。Appearance{materialNULL#exposedFieldSFNodetextureNULL#exposedFieldSFNodetextureTransformNULL#exposedFieldSFNode}2019/8/1江西农业大学计算机与信息工程学院第23页6.基本几何造型Box节点Sphere节点Cylinder节点Cone节点Thanks!