VRML基础教程资料
第3章 VRML(虚拟现实建模语音)基本造型及其属性
2.1 VRML约定及基本概念
路由的作用是将各个不同的节点绑定在一起以使虚拟空间具有动感和 交互性。大多数的VRML节点都有输入和输出接口,输入接口称为 eventIn,即入事件;输出接口称为eventOut,即出事件。一个节点一 般具有多个不同的入事件和出事件,但有一些节点不同时具有这两种 事件。 在两个节点之间存在着路由,事件将可以通过路由由这个节点传递到 另外一个节点上。这样传递的事件通常可以改变相应节点的某些域值 。例如,在虚拟世界中分别创建了一盏电灯和一个开关,通过合适的 路由将两者绑定在一起,可以通过鼠标点击开关来控制等的亮和灭, 此时通过路由传输的事件就是灯的外观控制。
2.1 VRML约定及基本概念
不同的域对应不同的域值类型,例如,说明长度的域的域值和说明颜色的域 的域值明显不同,前者指需要单个的数值即可,而后者则需多个数值共同描 述才能准确地说明所要说明的对象。 域值类型: SFBOOL 单值布尔量 SFFLOT和MFInt32 单值含有32位的整数 SFString和MFString 单值字符串 SFVec2f和MFVec2f 单值二维向量 SFVec3f和MFVec3f 单值三维向量 SFTime和MFTime 单值时间值,从1970年1月1日子夜开始记时的秒数 SFRotation和MFRotation 单值绕任意轴任意角度的旋转 SFImage 非压缩的二维彩色图象或者灰度图象 SFColor和MFColor 单值颜色值 SFNode和MFNode 单节点
}
每个节点都有自己的标准语法用来说明其所可以包含的节点、字段和 事件。
2.3 VRML文件基本要素
节点并没有一定的分类方式,在计算机图形学中, VRML2.0节点可以分成两类:图形的和非图形的。图形节 点包括几何类型,例如Box和Sphere;属性节点,例如 Appearance和Material;组节点,包括Shape和 Transform。这些节点共同构造了表述的场景。VRML2.0 图形节点列表如下:
第1章 VRML(虚拟现实建模语音)概述
1.1 VRML简介
7、用户定义对象-通过创建用户定义的数据类型,可以扩展浏览器 的功能 8、脚本-通过程序或脚本语言,可以动态的改变场景 9、网络-可以用网络上的资源组成一个单一的X3D场景;可以通过 超链接对象连接到其他场景或网络上的其他资源 10、物理模拟-人性化动画;地理化数据集;分布交互模拟 (Distributed Interactive Simulation-DIS)协议整合。 从1994年的VRML开始到2004年的X3D,VRML/X3D联盟一直致力于建立一 种统一各种Web3D格式,容纳各种新技术的三维格式标准。相信X3D 将会在交互三维领域取得一定的地位。 虽然X3D是个发展趋势,但目前应用不多。
1.2 VRML2.0的功能和应用
4. 交互性 新增加的对三维对象的行为描述使得进行实时完全仿真成为可能。 碰撞检测 (collision detection) 节点包括了碰撞检测信息,这样 就避免了穿墙而过的现象发生;感知器 (sensors)节点等待一个特 定事件的发生,然后做出响应。例如,可以设计一个感知器完成当 门被打开时就自动开灯的功能。 5. 增强的静态场景 VRML2.0中一些新增的特征使得场景看上去更加真实。例如,声 音(sound)节点允许为场景加上背景音乐、动作声响、对话等等; 背景(background)节点允许为场景加一幅背景图画;雾(fog)节点 能产生逼真的雾化大气效果。
1.1 VRML简介
VRML(Virtual Reality Modeling Language)的翻译为中文就是虚拟现实 建模语言。它用来建立真实世界中各种场景的模型,当然,它也可 以建立一个与真实世界无关的虚拟世界,就像许多游戏中的一样。 VRML开始于20世纪90年代初期。1994年3月在日内瓦召开的第一届 WWW大会上,首次正式提出了VRML这个名字。1994年10月在芝加哥 召开的第二届WWW大会上公布了规范的VRML1.O标准。它是经过许多 人共同合作的结果,其中最主要的是SGI公司的工作。SGI公司同意 无偿提供这种新的文件格式并放弃对其的所有权。 VRML1.0 在设计时采用了面向对象的思想,因此由其构造的虚拟现 实模型与所用的操作平台无关,并且其程序还具有可扩展性。 VRML1.O 可以创建静态的3D 景物,但没有声音和动画,你可以在它 们之间移动,但不允许用户使用交互功能来浏览三维世界。它只有 一个可以探索的静态世界。除此之外,没有其他的功能。
虚拟现实vrml程序设计1-2-3节资料
右为正;Y坐标向上为正;而Z坐标指向观察者,
如图所示。
• 2.VRML长度单位
• 长度及坐标的计量单位采用VRML单位计量,在三维空
间中,它是统一的,简称为单位。需要注意的是,这
里表示的单位和实际环境中的计量没有任何可比性,
和一些三维建模软件如3DSMAX的计量单位也没有可 比性。在VRML场景中,只有物体间的大小和相对位置 都用VRML单位计量,才能模拟出真实的现实。
• (3)具有强大的网络功能,文件容量小,适宜网络传输, 并可方便地创建立体网页与网站。
• (4)具有多媒体功能,在其程序中可方便地加入声音、图 像、动画等多媒体效果。
• (5)具有人工智能功能,在VRML中具有感知功能,可以 利用各种传感器节点来实现用户与虚拟场景之间的智能交 互。
• (6)在当前各种浏览器中还不能直接运行,必须安装 VRML相关插件才能看到其效果。
它们的颜色都是由红、绿、蓝(RGB)组合而成,它 们分别对应3个浮点数,其域值为0.0-1.0之间,由这三 原色组合成各种颜色。
• 节点和域
• 节点是VRML文档中最基本的组成单元,是
VRML的精髓与核心。VRML借助于节点描述对
象某一方面的特征,如各种形状、材质以及颜 色等等。VRML场景往往由一组具有一定层次
VRML 程序设计
一 、虚拟现实技术概述
Chapter 1
• 1.1 虚拟现实
• 概念 • 特点 • 系统基本构成 • 关键技术 • 应用
• 1.2 VRML
1.1 虚拟现实
• 虚拟现实的概念
• 虚拟现实是利用计算机生成一个逼真的视觉、
听觉、触觉以及嗅觉等的模拟环境(如飞机驾驶 舱、分子结构世界等),通过多种传感设备使用 户“投入”到该环境中,用户可通过其感官与 这一生成的虚拟实体进行交互沟通,如同与真 实的环境直接进行自然交互的技术。这里所谓 的“模拟环境”一般是指用计算机生成的有立 体感的图形,它可以是某一特定现实环境的表 现,也可以是纯粹构想的世界。虚拟现实技术 实现的是人所感受到的虚拟幻境,所以钱学森 建议把Virtual Reality的技术叫做“灵境技术”, 由它构成的信息处理环境称作“灵境” 。
网上虚拟空间建造者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文件可以包括四个主要成分:
2.第2章 虚拟现实建模语言——VRML
例 2.1 #VRML V2.0 utf8 Shape { appearance Appearance { material Material {} } geometry Box {} } 例 2.2 #VRML V2.0 utf8 Shape { appearance Appearance { } geometry Box {} }
造出来。例如:
Shape{ appearance Appearance{ material Material{} } geometry Cylinder{ radius 0.5 height 6.0 } }
上述的一段VRML文档描述了一个圆柱体的造型,其中 Shape、Appearance、Material以及Cylinder等等都是节 点。
第2章 虚拟现实建模语言—— VRML
本章各小节目录
2பைடு நூலகம்1 VRML的基本概念 2.2 VRML文件的基本要素 2.3 VRML的通用语法结构 2.4 VRML的空间计量单位 2.5 VRML场景的编辑与浏览 本章小结
通过前面章节的学习,对于虚拟现实技术有 了一定的了解。本章主要学习在网络上实 现虚拟现实场景建模的技术术——虚拟现实 建模语言 (Virtual Reality Modeling Language), 该技术专门用来在网络上实现三维虚拟场 景。
⑥ SFNode和MFNode 单域值节点型和多域值节点型。取值为一个或者多个节 点,用来更进一步描述该域的特征。例如:表示材 质属性的域material其域值是构建材质的节点 Material,该节点带有一些域,用来表述造型的材质。 ⑦ SFImage 单域值图像型。取值为一些描述图像特性的数值,可以 绘制造型表面的纹理图像。比如在纹理贴图中的像 素贴图。 ⑧ SFRotation和MFRotation 单域值旋转型和多域值旋转型。取值为4个浮点数构成 的一组数值,前三个确定旋转轴,第四个指定绕轴 旋转的角度。用来描述对象的旋转特征。
VRML文件与VRML基本造型培训资料(PPT 24页)
2019/10/13
江西农业大学 计算机与信息工程学院
第 17 页
4.VRML关键字
VRML 2.0共使用14个系统关键字
关键字 field exposedField eventIn eventOut TRUE FALSE NULL DEF USE
典型格式 USE节点名
语法说明 定义私有域 定义公共域 定义入事件 定义出事件
2019/10/13
江西农业大学 计算机与信息工程学院
第6页
2.VRML文件基本内容
VRML节点。每个VRML文件都是一个基于时间的三维空 间表示,它包含了可通过多种机制动态变化的由视、听和 对象组成的虚拟环境。
通过VRML建模的虚拟环境专业上又称之为场景图。场景 图由一系列无序节点组成,节点则用以描述环境中的对象 及其属性。
2019/10/13
江西农业大学 计算机与信息工程学院
第 15 页
3. VRML空间
VRML的场景建设默认情况下使用VRML系统缺省空间坐标系 ,用户也可以使用Transform节点对缺省空间进行变换, 以形成相对于父坐标系的子坐标系。
1.VRML空间坐标系。VRML系统默认的坐标系为一个立体三 维的空间坐标系。该坐标系的原点位于VRML平面浏览器的 中心位置,X轴正向由原点指向屏幕右侧,Y轴正向由原点 指向屏幕上方,Z轴正向由原点垂直指向用户。
节点类型 面造型
标高网络 造型
线造型Βιβλιοθήκη 江西农业大学 计算机与信息工程学院
第9页
2.VRML文件基本内容(续)
节点类型 声音节点
节点层次性 Sound
AudioClip MovieTexture
节点类型 光源节点
VRML基础学习
VRML基础学习第二章基本形体的生成VRML程序的主体是节点语句,当然它还有文件头,一些复杂的程序还有路由语句。
程序的各个节点通过节点花括弧里的参数(参数有两类:字段及事件,但只有字段写在程序的节点语句中)定义了三维世界的形体及其属性。
动画及交互作用则是通过传感器节点、内插器节点、路由语句等完成的。
程序的主体是节点,因而VRML程序在需要某一个节点时,就写出这个节点名,节点名后花括弧里,则根据需要给出相应的参数名(字段名),参数名后面给出参数的具体数值。
大量阅读VRML程序后,我们就可以在程序中看到我们熟悉的节点名及参数名。
由于许多节点的参数给出的是另外一个节点,因而,在VRML程序中,我们可以看到程序中有较多的花括弧对,有时花括弧里还有花括弧,形成多重的花括弧。
一·VRML的坐标系统VRML定义有下列四个基本形体:Box、Sphere、Cylinder、Cone。
利用这些基本体,我们可以编写最简单的VRML程序,例如下面的程序只有两行语句:EX2_01:#VRML V2.0 utf8Shape {geometry Box{}}这是一个显示立方体的程序,如果我们将Box替换成Cylinder 、Sphere、Cone,就可以分别得到圆柱、球、圆锥。
我们可以用任何的文本编辑器编辑上面的程序,如利用Window95的记事本,DOS的EDIT。
要注意,第一行的第一列必须是#,不能有空格。
程序在存盘时,文件的扩展名必须为wrl(world的缩写)。
VRML文件显示的是三维空间的物体,上例生成的物体放置在一个符合右手螺旋法则的三维坐标系中,可以将这个坐标系看成是程序的总体的坐标系,国际标准规定:物体从+Z轴方向投影在一个+X轴向右、+Y轴向上的二维坐标系统中,+Z轴朝外,人的眼睛即观察点的坐标为(0 0 10),人的眼睛朝原点看去,这是缺省时的观察位置及观察方向,见后面BOX节点给出的示意图。
一些VRML程序中的Transform、Group节点可以使多个物体组成一个节点组,节点组可以放置在空间的任意地方,也可以在程序中移动或旋转节点组的坐标,一个大节点组里可以有小节点组,小节点组里可以有小小节点组,每个节点组拥有一个坐标系,称为这个组的局部坐标系。
第三讲 VRML三维模型
五种复杂几何造型节点:
PointSet点集节点 IndexedLineSet线集节点 IndexedFaceSet面集节点 Extrusion挤出造型节点 ElevationGrid网格标高造型节点
举例:sphere.wrl
基本的三维立体造型
Cone圆锥体节点
创建以原点为中心,以Y轴为对称轴的圆锥体几何造型;
语法:
Cone{
bottomRadius 1.0 #SFFloat 底面半径 1.0
height
2.0 #SFFloat 高度2.0
side
TRUE #SFBool 侧面(锥面)创建标志
造型的空间变换
addChildren 入事件
将指定的节点增加到子节点列表中。若该节点 已在子节点列表中,则事件将被忽略。
removeChildren入事件
将指定的节点从组节点的子节点列表中删除。 若该节点不在子节点列表中,则事件将被忽略。
造型的空间变换
当对造型进行平移、旋转、缩放多项操作时,无 论在编辑时的顺序如何,浏览器的默认执行顺序 为:
作业
作业递交注意事项:
上传到:学院教学FTP://上传作业-夏侯建兵虚拟现实作业-第三讲作业-周一/周三班
作业命名规则:学号_姓名_作业序号。
例:24320062204210_蔡浩_01
先缩放 再旋转 后平移
举例说明:
例4-1、例4-2、例4-3、例4-4、例4-5、例4-6、例4-7
综合应用举例1
综合应用 举例1:
一条凳子 如图 它由7个
VRML基础学习
四·节点介绍
从现在开始,我们将一一介绍VRML2.0里的所有54个节点,在介绍每一个节点的时
候,我们先给出节点的定义。每个节点都有一个或多个参数,每一个参数都有三列或
四列内容。
每个节点都有一个或多个参数:有些参数为字段,由第一章我们得知,字段又分
浏览器,当我们想要安装时,我们可以在安装WIN98时,采用CUSTOM的安装方式,选择
安装VRML2.0浏览器;或者在需要的时候,利用WIN98控制面板的添加/删除程序,选取
Windows 安装程序,再选取其中的Internet工具,选择工具中的Microsoft VRML2.0浏
览器,安装完毕后,就可以在IE4.0上运行VRML2。0的程序了。
第二章 基本形体的生成
VRML程序的主体是节点语句,当然它还有文件头,一些复杂的程序还有路由语句。
程序的各个节点通过节点花括弧里的参数(参数有两类:字段及事件,但只有字段写
在程序的节点语句中)定义了三维世界的形体及其属性。动画及交互作用则是通过传
感器节点、内插器节点、路由语句等完成的。
在浏览器中运行程序,我们就可以得到一个具有立体感的红色立方体。
我们来看一下这个程序。程序的第一行为程序头,其余的是Shape、Viewpoint、
Background三个节点语句构成的程序主体,它们定义了程序的三维场景图。
Shape节点里的Box、Appearance、Material也是节点。这说明,节点内部有时
到程序中有较多的花括弧对,有时花括弧里还有花括弧,形成多重的花括弧。
一·VRML的坐标系统
VRML定义有下列四个基本形体:Box、Sphere、Cylinder、Cone。利用这些基本
第二章VRML基本知识
#VRML V2.0 utf8
第二节 示例程序P11
DEF qiuti Transform {
children [
Shape {
appearance Appearance {
material Material {diffuseColor 0 1 1}}
geometry Sphere {radius 1.1}
要在浏览器中观察VRML场景,需要安装VRML浏 览器插件。下面的清单列出了目前常用的VRML/X3D 浏览器插件。
第二章VRML基本知识
BitManagement BS Contact X3D/VRML97插件 ,支持Internet Explorer(Windows)
Octaga X3D/VRML浏览器,支持Internet Explorer(Windows)
第二章VRML基本知识
二、VRML的语法结构
VRML语法主要包括有文件头、节点、原型、脚本 和路由等。只有文件头是必须的。 在VRML文件中,节点是核心,没有节点,VRML也 就没有意义了。VRML场景可以由一个或多个节点组 成,VRML中还可以通过原型节点创建新的节点。 节点之间过路由实现动态的交互与感知,或是使用 脚本文件或外部接口进行动态交互。
Ch2 VRML基本知识
开发及运行VRML所需工具 示例程序 基本概念
第二章VRML基本知识
VRML的运行环境
VRML对硬件与软件的环境要求都较低,一般计算机都可 以运行,配置较高,运行速度较快。一般推荐配置为: (1)硬件环境:建议采用Pentium 4以上的计算机,主 频2G以上、内存128M以上、显存64M以上、硬盘10G以 上。 (2)软件环境:操作系统可采用 Windows2000/XP/2003等,安装VRML相关浏览插件。 (3)网络环境:浏览VRML场景时可以采用拨号、宽带 、无线等网络接入方式,网络浏览器可采用IE浏览器或 Netscape浏览器。
第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:出事件,发出视点被切换的时间,可 用来在一个给定的视点被激活时,开始运行一 段动画或者执行一段脚本程序。
第8章 VRML(虚拟现实建模语音)光照效果
8.1 基本概念
8.1.2 光源颜色
光源颜色由一个RGB颜色控制,与材料设置的颜色相似。光源发出的 光线的颜色跟光源的颜色相同。比如,一个红色的光源发出的光线是 红色的。在现实中,一个白色的光源照射到一个有色的物体表面,将 发生两种现象,而人所能看到的只是其中的反射现象,另一种现象就 是吸收光线,它导致光强的衰弱。反射光的颜色与物体表面的颜色有 关,一束白色的光线照射到一个红色的物体表面,看到的反射是红色 的。这是因为白色的光线由多种颜色的光组成,物体吸收了其中除红 色外的所有光线,红色则被反射。但是如果物体表面是黑色的,他将 不反射任何光线。
8.2 节点介绍
SpotLight{ ExposedField ExposedField 0 ExposedField 1.570796 ExposedField 1 ExposedField 0.785398 ExposedField 1 ExposedField ExposedField 0
SFFloat SFVec3f SFFloat SFColor SFFloat SFVec3f SFFloat SFVec3f
8.2 节点介绍
} 字段: ambientIntensity: 控制光源对于虚拟现实中虚拟物件四周光线的影 响程度。默认值为0,表示完全不受影响,最大值为1.0,表示光源对 环境光线的影响很大。
8.2 节点介绍
Attenuation: 控制光线衰减的方式。第一个值表示光线维持一定, 不会衰减,第二个值控制光线的衰减呈线性方式(与距离成反比) ,第三个值则让光线以二次式的方式衰减(与距离平方成反比), 而第三个值是最接近现实世界的,也是最耗内存最慢的一种方式。 默认值为(1,0,0) Color: 以RGB三原色控制光线颜色,默认值为(1,1,1) Intensity: 控制光源的明亮程度。默认值为1.0,最强,若为0表示 光源不发射光线。 Location: 定义局域坐标系统下光源的位置, On: 表示光线的开与关。 Radius: 定义光线可以发距离。这个距离如同一个球体的半径,光 源在球心。默认值是100。
VRML基础教程(Green)
3、第一个虚拟境界
按照惯例,我们以"Hello,World!"作为我们的第一个虚拟境界,它由立 方体、圆锥和球体组成。VRML 文件的第一行文字是: #VRML V2.0 utf8 这是 VRML 文件的标志,所有 2.0 版本的 VRML 文件都以这行文字开 头,VRML97 是由 VRML2.0 版修订而成的,符合 VRML97 规范的 VRML 2
2、坐标系统和显示
在 VRML 的场景中设置物体需要有明确的坐标,在同一个场景中,有 一个统一的坐标系。这个坐标系是一个右手坐标系,在初始时(即观察者没 有移动位置和改变视角) ,该坐标系的 X 轴为沿屏幕水平向右,Y 轴为沿屏 幕垂直向上,Z 轴为从屏幕指向用户。 VRML 的几何对象参照这个坐标系,使用三维坐标系统描述点的位置。 在初始状态下, VRML 的几何对象 (除了文本) 都被定位在空间坐标(0, 0, 0) 点上,且高度以 Y 轴正方向表示。文本从缺省位置左端开始,沿 X 轴正方 向放置每个连续orld!" 1、VRML 的度量单位
VRML 的度量单位是标准化了的,角度以弧度表示,长度单位则是米。 例如你定义一个长、宽、高均为一个单位的盒子,它代表了一个边长 1 米的 立方体。如果立方体放在地板上,你把它旋转 45 度角,从一个顶点观察它, 那么在 Y 轴上它转动了л/4 或 0.785 弧度。
文件也以这行文字开头。其中“#”表示这是一个注释。而 utf8 表示此文件 采用的是 utf8 编码方案,这在 VRML 标准中有详细说明。 先加入一个 Group 节点(组节点) : Group { 组节点花括号之内的所有内容视为一个整体, 利用组节点可以把虚拟场 景组织成条理清晰的树形分支结构。 下面定义组节点的 children 域 (孩子域) : children [ 在 children 后的方括号内定义 Group 节点的所有孩子对象, 第一个孩子 是一个 Shape 节点(形态节点) ,它描述一个几何形状及其颜色等特征: Shape { 在 Shape 节点内定义一个几何体 Box(方盒节点) : geometry Box {} 注意,我们没有为 Box 定义任何域,这意味着它的尺寸和坐标位置等 特性取缺省值(单位立方体) 。随后补齐每个右括号: } ] } 至此,我们已经成功地制作了第一个虚拟境界,把它保存为 “HelloWorld1.wrl” ,下面是完整的文件: #VRML V2.0 utf8 Group { children [ Shape { geometry Box {} } ] } 用浏览器打开这个文件,你会看到一个灰色的立方体,尽管不太好看, 但你还是可以通过改变视点位置从不同方位观察它,初步体验“三维交互” 的感觉。 下面定义立方体的外观, 这只需改变 Shape 节点的 appearance 域 (外观) , appearance 域是一个 Appearance 节点, 此 Appearance 节点的 material 域 (材 质)定义为一个 Material 节点: appearance Appearance{ material Material {} } 这样,上面的 Shape 节点变成了: 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一个虚拟境界
➢ VRML 文件中有许多括号(花括号“{}”和方括 “[]”),请注意括号的配对,建议采用本教程的缩 进风格。上述VRML文件中三个Transform 节点的平移 量是不同的,因而三个几何体的位置也就不同。另外, 还可以修改三个几何体的颜色:球面Sphere 为绿色 (0 1 0),圆锥为蓝色( 0 1 0 )。
第一个虚拟境界
➢ (HelloWorld2.wrl): #VRML V2.0 utf8 Group {
children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Box {} } ] }
第一个虚拟境界
➢ 红色的立方体位于屏幕的中心,它的中心坐标为{0 0 0 }。 ➢ 移动位置可以外套一个Transform(变换节点)来实现: Transform {
translation 5 0 0 children [
Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Box {} }
] }
第一个虚拟境界
➢ 在VRML 中,Transform 节点除了可以引进平移、旋转 和缩放变换以外,其作用和Group 节点的作用一样。 把Transform 节点的translation 域(平移)设置为5 0 0,意味着Transform 节点所在的坐标系相对于其上 层坐标系向右平移(即x 轴方向)5个单位,在其它两 个方向不移动,VRML 的距离单位是米,5 个单位相当 于5 米
第一个虚拟境界
➢ (HelloWorld1.wrl): #VRML V2.0 utf8
Group { children [ Shape { geometry Box {} } ] }
第一个虚拟境界
下面定义立方体的外观,这只需改变Shape节点的appe arance域(外观),appearance 域是一个Appearance 节点,
此Appearance 节点的material域(材质)定义为一个 Material节点:
第一个虚拟境界
下面定义立方体的外观,这只需改变Shape节点的appe arance域(外观),appearance 域是一个Appearance 节点,
此Appearance 节点的material域(材质)定义为一个 Material节点:
第一个虚拟境界
➢ 接下来我们把方块所在的Transform 节点复制三份, 并把各自包含的几何形状依次定义为方块、球体和圆 锥
第一个虚拟境界
➢ (HelloWorld4.wrl): #VRML V2.0 utf8 Group {
children [ Transform { translation 5 0 0 children [ Shape { geometry Box {} } ] } Transform { translation 0 0 0 children [ Shape { geometry Sphere {} } ] } Transform { translation -5 0 0 children [ Shape { geometry Cone {} } ] } ] #end of Group children }
第一个虚拟境界
Shape { appearance Appearance { material Material {} } geometry Box {} }
第一个虚拟境界
➢ diffuseColor 域(漫反射颜色) ➢ VRML的颜色说明采用RGB 颜色模型,所以要定义红色
的立方体,漫反射颜色应该是{1 0 0},三个数字依次 表示红色、绿色和蓝色,取值范围都是0到1:
第一个虚拟境界
➢ Group节点 加入一个Group 节点(组节点): Group {
组节点花括号之内的所有内容视为一个整体,利用组节点可以把 虚拟场景组织成条理清晰的树形分支结构。下面定义组节点的chi
ldren 域(孩子域): children [ 在children 后的方括号内定义Group 节点的所有孩子对象,第一个孩子
➢ material Material {diffuseColor 1 0 0 }
第一个虚拟境界
➢ (HelloWorld2.wrl): #VRML V2.0 utf8 Group {
children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Box {} } ] }
第一个虚拟境界
➢ (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 {} } ] } ] }
虚拟场景制作与演示
பைடு நூலகம்
第一个虚拟境界
➢ #VRML V2.0 utf8 这是VRML 文件的标志,所有2.0 版本的VRML 文件
都以这行文字开头,VRML97 是由VRML2.0 版修订而 成的,符合VRML97 规范的VRML 文件也以这行文字 开头。其中“#”表示这是一个注释。而utf8 表示此文件 采用的是utf8 编码方案,这在VRML标准中有详细说 明。