VRML使用说明
第4章 VRML-场景效果

• 例4-19:使用导航节点将系统默认的头灯关闭, 在(0 0 1.5)的坐标位置上设置一个白色点光源, 引入小球造型组(三行五列),并且与默认头 灯照射的效果进行对比。
• 二、DirectionalLight节点 DirectionalLight{ on TRUE direction 0.0 0.0 -1.0 intensity 1.0 color 1.0 1.0 1.0 } Direction:设定平行光源的照射方向。由坐标原点 指向这个特定的点。 例4-20:将4-19中的点光源改成平行光源。观察 效果。
NavigationInfo{
headLight type speed visibilityLimit avatarSize set_bind isBound TRUE [“WALK” “ANY”] 1.0 0.0 [0.25 1.6 0.75]
} • type:视点导航方式。共五种。( WALK, FLY, EXAMINE,ANY,NONE)。 • 默认值表示行走状态为初始浏览状态,用户可在控制 面板上选择切换成任何一种浏览方式。
• visibilityLimit:观察者替身的最大观察距离。默 认为0,表示可观察到无穷远处。如果观察者 在最大观察距离内没观察到任何对象,浏览器 将只显示背景图。 • 在创建大的三维空间场景时,远处不必显示的 造型和场景可以通过合理设置该域值而忽略。 • avatarSize:替身的外表参数。
}
• fieldOfView:视角。0-3.141,超过1.047(60 度)时观察到的物体会产生显著变形。 • jump:视点切换类型是否为跳跃式。 • Desciption:描述视点的字符串,即视点名称。 它会自动出现在浏览器的视点列表中,通过该 域值,人们可以很方便地找到自己感兴趣的视 点。 • Set_bind入事件isBound出事件:进行VRML空 间视点切换。 • bindTime:出事件,发出视点被切换的时间,可 用来在一个给定的视点被激活时,开始运行一 段动画或者执行一段脚本程序。
4VRML动画

#设定一组时间关键点的列表 #与key域关键点对应的一组关键值
}
#入事件,不断接收来自时间传感器发出的 时刻比例数值 value_changed #出事件,输出计算后的新值
keyValue域的域值定义了一系列浮点数值
节点说明Βιβλιοθήκη VMVMVM
示例:改变光线强度的动画(eg4_4)
VM
VM
VM
上机作业(4)
{
key keyValue set_fraction
}
#设定一组时间关键点的列表 #与key域关键点对应的一组关键值 #入事件,不断接收来自时间传感器发出的 时刻比例数值 value_changed #出事件,输出计算后的新值
VM
VM
VM
路由:ROUTE 语句
在VRML中,通过ROUTE语句创建一个信息通道连通事件的出 口和入口。是用来节点间建立事件通道的一种语法结构。 节点由域和事件组成。 事件是按照指定的路径从一个节点发往另一个节点的信息。 入事件(eventIn) 出事件(eventOut) 节点的公共域可以发送、接收事件值
1、首先构建红、绿、蓝三个小球和一个长方形的地板(三个小 球与地板间的距离分别为5、8、10个VRML单位);然后使用时 间传感器和位置差补器分别进行控制,让三个小球循环以不同 的速度同时降落在地板上然后弹回原来高度。 2、构造一个“月亮绕地球旋转,地球绕着太阳旋转的场景”,并 且太阳本身的亮度呈周期性变化。 3、构建一个交通灯模型(控制红、黄、绿灯的显示)
VM
VM
VM
示例:旋转的物体(eg4_3)
rotation插补器太阳系.wrl
VM
VM
VM
球体绕任意轴旋转
旋转1.wrl
虚拟现实技术4-3(VRML篇-基本造型)

第三部分虚拟现实技术--VRML篇3 VRML基本语法及应用3.1 VRML造型VRML造型主要通过几何节点和几何属性节点来实现。
由于这些节点属于辅助节点,不能直接放进场景图,因此要实现VRML造型还需要一个Shape节点。
几何节点是通过Shape 节点的geometry域来包含的,几何属性节点是通过Shape节点的appearance域来包含的。
用于造型的节点:共22个形状(Shape)节点1个几何节点10个:Box(长方体)、Cone(圆锥)、Cylinder(圆柱)、ElevationGrid(标高格阵)、Extrusion(挤出面)、IndexedFaceSet(索引面集)、IndexedLineSet(索引线集)、PointSet(点集)、Sphere(球面)、Text(文本)几何属性节点10个:Appearance(外观、Color(颜色)、Coordinate(坐标)、ImageTexture (图像纹理)、Material(材质)、MovieTexture(影像纹理)、Normal(法线)、PixelTexture (像素纹理)、TextureCoordinate(纹理坐标)、TextureTransform(纹理变换)字型(Fontstyle)节点:1个3.1.1 基本造型由Shape节点、Appearance节点、Material节点和基本几何节点共同实现。
3.1.1.1 Shape节点3.1.1.2. 基本的几何造型节点基本的VRML造型节点有Box,Cylinder,Cone,Sphere节点。
例3-1-1:#创建一个长宽高分别为4.0,1.0,4.0个vrml单位的长方体#VRML V2.0 utf8Shape{appearance Appearance {material Material { }}geometry Box{size 4.0 1.0 4.0}}例2:#创建一个底面半径为4.0高为1.0只有底面的圆柱体#VRML V2.0 utf8Shape{appearance Appearance {material Material { }}geometry Cylinder {radius 4.0height 1.0top FALSEside FALSE}}例:#创建一个底面半径为2.0单位高为1.0单位的圆锥#VRML V2.0 utf8Shape{appearance Appearance {material Material { }}geometry Cone {bottomRadius 2.0height 1.0}}3.1.1.3 节点的编组例:航空塔模型以sphere、box、cylinder、cone为节点创建一个航空塔的三维模型,其中用DEF定义了一个名字为bwhite的appearance的节点。
vrml教程案例

vrml教程案例
VRML教程案例:
1. 创建一个圆柱体造型:首先,你需要使用Transform节点的坐标平移功能,创建一个在Y方向上平移单位的新坐标系。
然后,在这个坐标系中构建一个圆柱体造型。
设置圆柱体的半径为2,高度为2。
你可以通过设置漫反光颜色和材质属性来改变圆柱体的外观。
2. 创建一个圆锥体造型:在圆柱体的上方,你可以使用同样的坐标系创建一个圆锥体造型。
设置圆锥体的底部半径为2,高度为1。
同样,你可以调整漫反光颜色和材质属性来改变其外观。
3. 组合造型:通过将圆柱体和圆锥体组合在一起,你可以形成一个类似烟囱的组合造型。
4. 添加背景:在立体空间背景下,你可以创建一个金色的哑铃立体空间物体造型作为背景。
设置天空的颜色,以及哑铃的几何造型和材质属性。
5. 异常处理:在进行VRML编程时,异常处理是非常重要的。
例如,你可能需要检查某个对象是否为空,或者某个对象的类型是否是你期望的类型。
对于异常情况,你可以编写else分支来处理错误或异常情况。
以上就是VRML教程案例的一些基本步骤和思路,希望对你有所帮助。
网上虚拟空间建造者VRML(初级)

Box节点的语法是Box {
size 2.0 2.0 2.0 #长 高 宽(x y z 三个方向,注:2.0 2.0 2.0是缺省值,下同)
}
Cone节点的语法是Cone {
bottomRadius 1.0 # 圆锥底部半径
height 2.0 # 圆锥的高
side TRUE # 是否创建圆锥的锥面
“MIDDLE” TRUE 将文本块的中点放在X轴
FALSE 将文本块的中点放在X轴
“END” TRUE 将最后一行文本的下边放在X轴
FALSE 将最后一行文本的上边放在X轴
表5.4垂直文本次对齐的justify域值 justify域的主对齐值 leftToRight域值 描 述
}
Sphere节点语法Sphere {
radius 1.0 # 球体的半径
}以上语法中的值,是缺省值,下同。下面是一个简单的VRML文件,它创建一个白色的,无纹理的长、高、宽分别为2.2,1.0和1.5的长方体。#VRML V2.0 utf8
Shape {
appearance Appearance {
“FIRST” TRUE 将第一列文本的基线放在Y轴
FALSE 将第一列文本的基线放在Y轴
“BEGIN” TRUE 将第一列文本的左边放在Y轴
FALSE 将第一列文本的右边放在Y轴
“MIDDLE” TRUE 将文本块的中点放在Y轴
FALSE 将文本块的中点放在Y轴
“END” TRUE 将最后一列文本的右边放在Y轴
(返回页首)
三、VRML文件的组成部分和文件头
VRML文本的文件名后缀是 .wrl,这是一种ASCII文本文件。VRML文件可以包括四个主要成分:
虚拟现实VRML简明教程

Untitled Document
(桌面色)。作为节点类型,TwoColorTable的用法和其它内部节点类型一样,例如下面的语句定义一个 TwoColorTable类型的节点,它的桌腿为红色,桌面为绿色:
TwoColor Table { legColor 1 0 0 topColor 0 1 0 }
file://F:\三维设计\3D软件\三维自然景观的建模创作-Vue 5 Infinite\三维景观设计软件Vue5Esprit世界浏览器\Vue 5 Esprit物体创建... 2008-3-25
#VRML V2.0 utf8 PROTO TwoColorTable [
field SFColor legColor 0.8 0.4 0.7 field SFColor topColor 0.6 0.6 0.1 ]{ Transform {
children [ Transform { #桌面 translation 0.0 0.6 0.0 children [ Transform { appearance Appearance { material Material { diffuseColor IS topColor } } geometry Box { size 1.2 0.2 1.2 } } ] } Transform { #一条桌腿 translation -0.5 0 -0.5 children [ DEF Leg Shape { appearance Appearance { diffuseColor IS legColor } } geometry Cylinder { height 1 radius 0.1 } ] } Transform { #另一条桌腿 translation 0.5 0 -0.5 children USE Leg } Transform { #另一条桌腿 translation -0.5 0 0.5 children USE Leg } Transform { #另一条桌腿 translation 0.5 0 0.5 children USE Leg } ]#根节点Transform的儿子结束
VRML基础教程

第 11 页
第一个虚拟境界
➢ (HelloWorld3.wrl): #VRML V2.0 utf8 Group { children [ Transform { translation 5 0 0 children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Box {} } ] } ] }
] }
第 10 页
第一个虚拟境界
➢ 在VRML 中,Transform 节点除了可以引进平移、旋转 和缩放变换以外,其作用和Group 节点的作用一样。 把Transform 节点的translation 域(平移)设置为5 0 0,意味着Transform 节点所在的坐标系相对于其上 层坐标系向右平移(即x 轴方向)5个单位,在其它两 个方向不移动,VRML 的距离单位是米,5 个单位相当 于5 米
第2页
第一个虚拟境界
➢ (HelloWorld1.wrl): #VRML V2.0 utf8
Group { children [ Shape { geometry Box {} } ] }
虚拟现实VRML实验指导1-2_学生_

《VRML虚拟现实技术》实验指导书软件学院编制实验一造型定位和旋转、缩放一、实验内容:1.熟悉VrmlPad编辑器的安装和使用2.熟悉Cortonaplayer浏览器的安装和使用3.掌握虚拟造型的基本操作。
二、实验环境:1.硬件环境计算机一台2.软件环境WindowsXP操作系统、VrmlPad编辑器和Cortonaplayer浏览器三、实验步骤:1.图1为VrmlPad编辑器的工作界面。
从中文提示中可以看出工作界面的分布,右边的代码窗口不是默认的,需要进行一定得设置图1 VrmlPad工作界面才能出现,否则就没有左边的行号和右边的预览。
设置过程是:选择菜单中的“工具”→“选项”,出现图2的设置窗口,可以进行选项设置。
图2 选项设置界面2.选择图2中的“预览”选项卡,出现图3,可以进行浏览器设置。
建议选择“使用系统默认VRML浏览器”。
图3 预览选项卡设置界面3.VrmlPad编辑器中提供了一些特殊节点的代码,可以直接加入编辑器中,选择菜单中的“工具”→“特殊节点”就能看到或者选择。
同时,VrmlPad编辑器中有一个造型材质编辑器(Material Editor)如图4所示,给造型的材质颜色设置提供了极大的方便。
图4 Material Editor编辑界面先选中VRML文件中需要调整材质颜色的节点,然后选择VrmlPad编辑器中的“工具”→“Material Editor”就会出现图4的界面。
左上方的“Category”提供了多种材质选择,包括“Glass Colors”、“Material Colors”、“Plastic Colors”、“Soft Colors”等十余种常用材质颜色的选择。
4.VrmlPad编辑器还有一个造型挤压编辑器Extrusion Editor,如图5所示,它给复杂造型的形成、编辑提供了非常有效的工具。
图5 Extrusion Editor编辑界面选择VrmlPad编辑器菜单中的“工具”→“Extrusion Editor”就会出现图5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
skyAngle[1.308,1.570]——天空角(从X负向到Y正向到X正向)[天空角1,天空角2….]Y轴正向为0,X正向为90度即水平面
skyColor [0.5 0.1 0.9,0.0 0.5 1.0,1.0 0.5 6.0]——天空色[天空色0,….]
groundAngle[1.308,1.570]——地面角(从X负向到Y负向到X正向)从Y负向开始
{
translation-2.0 0.0 0.0——规定了X、Y、Z方向的平移量当平移量为正时正向移反之相反,默认值(0.0 0.0 0.0),
rotation x y z z——规定了旋转方向和旋转量,以原点到(x y z)点的射线为旋转轴,用右手螺法则将坐标系旋转a弧度,当为负时倒转默认(0.0 0.0 1.0 0.0)即Z轴正向为轴。
{
string "hello world!"
fontStyle FontStyle
{
size 2
family”SERIF”(文本字体,SANS、TYPEWRITER)
style”PLAIN”(文本字型,默认为PLANIN普通,BOLD加粗、ITALIC倾斜、BLODITALIC粗斜)
horizontal TRUE(文本方向,TURE水平,FALUS垂直Y方向)
0.8 0.8 0.2
0.8 0.8 0.8
0.15
0.10
绿塑料
0.2 0.8 0.2
0.8 0.8 0.8
0.15
0.10
蓝塑料
0.2 0.2 0.8
0.8 0.8 0.8
0.15
0.10
红塑料
0.8 0.2 0.2
0.8 0.8 0.8
0.15
0.10
常见颜色的RGB分量
Red
Green
Blue
0.6
深蓝
}
}
ImageTexture(帖图域结点)
{
url”图像文件名“(注:要把所用图像放在VRML文件的保存位置)
}
Geometry{几何造型结点:BOX长方体(size x y z(2.0 2.0 2.0));Cylinder圆柱体(radius r(半径(1.0));height h(高度)(2.0));Cone圆锥体(bottomRadius r(1.0),height h(2.0));sphere球体(radius r(1.0))}Text(文本造型域)
scale kx ky kz——规定了X、Y、Z方向的扩缩系数,当小于1时表示缩小,大于1表示扩大。默认值(1.0 1.0 1.0)即不扩缩。
children
[
Shape
{
appearance Appearance
{
material Material
{
diffuseColor 0.0 1.0 0.0
set_bind
isBound
bindTime——出事件用于发出视点被切换的时间,可用来在一个给定的视点激活时开始运行一段动画或执行某个脚本程序。
},
Viewpoint
{position 10.0 0.0 5.0
orientation0.0 1.0 0.0 0.785
description"userVP2"
jump FALSE
},
Viewpoint
{position 0.0 0.0 -15.0
orientation0.0 1.0 0.0 3.140
description"userVP3"
jump FALSE
}
]
}
NavigationInfo
{
avatarSize——[体宽,身高,步高]——默认为:0.25,1.6,0.75
Shininess
ambientIntensity
金
0.3 0.2 0.0
0.7 0.7 0.6
0.20
0.40
银
0.5 0.5 0.7
0.8 0.8 0.9
0.20
0.40
铜
0.4 0.2 0.0
0.8 0.4 0.0
0.10
0.28
铝
0.3 0.3 0.5
0.7 0.7 0.8
0.10
0.30
黄塑料
}
3、锥光照效果结点
从一个点发出,朝着一个方向。
SpotLight
{
Location x y z
Direction x1 y1 z1
Color r g b
cutOffAngle hal——光锥角,中心轴与光锥母线之间的夹角,范围0.0-1.570,默认为0.785(45度)
beamWidth a2——散射角,散射光锥的锥顶角,范围0.0-3.142(0-180度),默认为1.570,一般情况下此光锥要小于锥光光锥(一般来说锥光光源在散射光锥之内的光照强度是相同的,而在散射光锥和锥光光锥之间强度将逐渐减弱直到锥光光锥的边缘上变为零)
set_bind
isBound
}
三、内联
1、内联是指在主控文件中调用对象文件,从面把对象文件创建的物体放到主控文件定义的基础环境中。
Inline结点来实现
内联结点通常嵌入到一个Transform结点
2、结构及用法
Transform
{
Translation…
Rotation_确定物体的方向
Scale_确定物体的大小比例
orientation1.0 0.0 0.0-0.262(指定了浏览者的视线,x,y,z,a(旋转角度/弧度以确定浏览者的视线方向),默认值(0.0,1.0,0.0,0.0)以Y轴正向为旋转;(0.0,-1.0,0.0,1.570)以Y轴负向按右手螺旋法视线旋转90度;(-1.0,0.0,0.0,1.570)以X轴负向按右手螺旋法视线旋转90度。)
bottomUrl []示。
set_bind——入事件,与isBound出事件用于进行VRML空间背景切换。Ture\false
isBound——出事件,切换时为FALSE
}
}
Fog——大气效果结点
{
Color r g b——定义雾的颜色
fogType type——密度类型,有两种值:“LINEAR”,“EXPONENTIAL”,默认为前者,在此中雾的浓度与浏览者观察物体的距离成正比,称线性雾;在后者中雾的浓度与之距离的平方成正比,也称指数雾。
颜色
0.0
0.0
0.0
黑色
0.2
0.2
0.2
深灰
0.6
0.6
0.6
淡灰
0.8
0.8
0.8
浅灰
1.0
1.0
1.0
白色
1.0
0.0
0.0
红色
0.0
1.0
0.0
绿色
0.0
0.0
1.0
蓝色
1.0
1.0
0.0
黄
0.0
1.0
1.0
蓝绿
1.0
0.0
1.0
绛红
0.6
0.0
0.0
暗红
0.0
0.6
0.0
墨绿
0.0
0.0
VRML工具使用说明
一、浏览器使用说明
1.常用快捷键
Shift+鼠标前后托动:加速行走;
ALT+鼠标托动:平移;
CTRL+鼠标前后托动:抬头或低头
2.导航工具栏
二、VRML语法结构
#VRML V2.0 utf8——文件头
Group——主编组结点
{
Children——引出成员结点
[
Background——环境结点(FOG:大气效果;SOUND:声音结点;POINtlight\direction\spotlight:光照效果结点):空间背景(成员结点)
}
Shape——实物结点:几何造型和文字结点(成员结点)
{
appearance Appearance(外观域结点)
{material Material——材质
{
diffuseColor 0.8 0.8 0.8(漫反光色,默认值0.8 0.8 0.8)
specularColor0.0 .0.0 0.0(材质的镜面反射光色)
intensityb
ambientIntensity c
radius r
on tf
}
五、声音结点
VRML能使用的音频文件的类型是MIDI和WAV。
Sound
{
Location x y z——说明音源的位置
Direction x1 y1 z1——声音的发射方向
Intensity v——说明音量大小
Spatialize m——说明是否是立体声
shininess 0.2(材料表面亮度)
ambientIntensity 0.2(材料表面的对比度)
emissiveColor 0.0 0.0 0.0(材料的发射光色)
transparency 0.0(材料的透明度0.0不透明,1.0完体透明)
几种常用材料主要材质参数
材料
diffuseColor
specularColor
}
}
geometry Cone
{
height 2.4
bottomRadius 2.4
}
}
]
},
Viewpoint——控制结点(NavigationInfo:浏览者信息结点,ViewPoint:视点设置结点;InLine:内联结点)
{
position 2.0 5.0 20.0(指定了浏览者的位置,X,Y,Z默认值0.0,0.0,10.0即为Z轴正向上的一个点)