VRML简介——虚拟现实构造语言

        VRML是一种与互联网结合,用来描述三维交互世界的程序语言,VRML即Virtual-Reality Modeling Language。

        SGI开发的Open Inventor软件的开放式三维文件格式被选定作为VRML的文件格式。1995年,VRML1.0版本正式推出,1996年推出了VRML2.0版本,添加了场景交互 多媒体支持 碰撞检测等功能,VRML2.0一直沿用,直到HTML5取代其地位。


第一章:简介篇

        VRML文件被存储为.wrl格式(读作dot world),wrl是文本叙述文件,使用UTF-8字符集,可以使用任何文本编辑器来编写VRML文件,只要保存时保存成为.wrl后缀即可。wrl格式的文件可以被安装了插件的浏览器或专门的浏览wrl文件的软件打开,这里推荐几款相关的软件及下载链接:

        wrl文件编辑器:VrmlPad3.0 这是一款不错的编辑器,可以帮助你分析 创建wrl文件;

        wrl文件浏览器:Cortona3D 这块软件可以作为一个浏览器插件,也可以作为VrmlPad的预览工具;

        在Matlab的 虚拟现实工具箱 也提供了打开和编辑wrl文件的工具,节点(Node)是VRML中的最基本单位,关于wrl文件的格式,将在下节进行详解。


第二章:格式篇

醒目,力荐:一份节点模型详尽介绍的文档:wrl.ppt

在介绍wrl文件之前,先展示一份wrl文件

#VRML V2.0 utf8
# File generated by InnovMetric Software Inc.
# 16783 vertices, 32416 triangles.
# 1 blocks.
# Input directory: F:\POL-DB\001
Transform { children [
	WorldInfo {
		info [ "Input Format: pol"]
	}
	Viewpoint {
		position 45.4901 -58.6223 -946.649
		orientation 0 0 1 0
	}
	# Block 1
	Shape {
		appearance Appearance { material
			Material {
				diffuseColor  0.8 0.8 0.8
				transparency 0
			}
		}
		geometry IndexedFaceSet {
			coord
			Coordinate {
				point [  -143.705 -200.667 -1644,
					 -143.129 -201.525 -1637.29,
					 -141.77 -200.39 -1641.39,
					 -141.235 -201.197 -1634.83,
					 -140.022 -200.046 -1640.07,
					 -139.323 -200.949 -1632.37,
......

1.VRML文件的头

#VRML V2.0 utf8

        VRML文件的头是固定的,任何VRML程序的第一行一定要写上这个头,以表明:它是VRML文件 使用VRML2.0规格 使用UTF-8字符集。

其中 # 符号为文件的注释符。

2.节点

        节点(Node)是VRML中的最基本单位,每个节点还可以包括子节点。一个节点通常包括节点的名称,一对大括号,以及字段和字段值,例如:

Material {
	diffuseColor  0.8 0.8 0.8
	transparency 0
}

        前面是字段,后面的数字是字段的值

        VRML的节点分为两类:图形节点和非图形节点。

        图形节点包括几何类型(Box Sphere 等)描述了某种形状, 属性节点(Appearance Material等)描述了物体的属性,如外观材质等,组节点(Shape Transform等)是由一组点或形状连同属性等一起组织起来的整体。

组节点 几何节点 属性节点

Shape

Anchor

Billboard

Collsion

Group

Transform

Inline

LOD

Switch

Box

Cone

Cylinder

ElevationGrid

Extrusion

IndexedFaceSet

IndexedLineSet

PointSet

Sphere

Text

Appearance

Color

Coordinate

FontStyle

ImageTexture

Material

MovieTexture

Normal

PixelTexture

TextureCoordinate

TextureTransform

        非图形节点通过给3D世界增加声音/触发事件和动画数据给VRML2.0增加动态效果

声音 触发事件 动画数据

AudioClip

Sound

CylinderSensor

PlaneSensor

ProximitySensor

SphereSensor

TimeSensor

TouchSensor

VisibilitySensor

Script

ColorInterpolator

CoordinateInterpolator

NormalInterpolator

OrientationInterpolator

PositionInterpolator

ScalarInterpolator

3.事件

        节点可以通过接受事件而改变,大部分节点有能力处理进入事件(eventin),通过接受eventin的只是,节点可以改变目前状态,例如:节点的颜色可以改变,再送出一些发生事件(Eventout),这一系列的过程被称作事件的路由。


第三章:节点篇

1.模型节点——Shape

2.箱形节点——Box

3.几何圆锥形节点——Cone

4.集合圆柱形节点——Cylinder

5.几何球体节点——Sphere

6.地标网格节点——ElevationGrid

7.成形节点——Extrusion

8.点集节点——PointSet

9.指针线集合节点——IndexedLineset

10.指针表面集合节点——IndexedFaceSet

11.文字节点——Text

……So on

这里有一份节点模型详尽介绍的文档:wrl.ppt

到这里,wrl文件的格式以及运行方式都在这份ppt当中,本篇便不赘述,下一节将进入实战,编写程序解析wrl格式的文件 。

See You Next Chapter!

 

发表评论