第4章 VRML-场景效果

合集下载

虚拟现实技术vrml程序设计4-5-6章57

虚拟现实技术vrml程序设计4-5-6章57
不具备行为自控能力,通过原型可以将造型与交互 动作、事件、脚本等VRML元素捆绑使用。
• (5)网络运作功能。原型(内部原型)可以在当前文件
中定义和反复调用,外部原型可以在其他文件和网 络中定义,在当前文件中反复调用。外部原型提供 了跨越网络调用的强大功能。
虚拟现实技术vrml程序设计4-5-6章 57
• LOD { • exposedField MFNode level [ ] • field SFVec3f center 0 0 0 • field MFFloat range [ ] •}
虚拟现实技术vrml程序设计4-5-6章 57
第五章、虚拟现实的场景环境设计
• 5.1 创建背景 • 5.2 创建光源 • 5.3 创建雾化效果 • 5.4 创建观察视点和视点导航
虚拟现实技术vrml程序 设计4-5-6章57
2020/12/5
虚拟现实技术vrml程序设计4-5-6章 57
•Chapter •4
四、造型的空间变换、编组和素材调用
• 4.1 造型的空间变换 • 4.2 造型编组和素材调用 • 4.3 其他组节点的使用
虚拟现实技术vrml程序设计4-5-6章 57
材不需要进行加工处理、原汁原味调用的情况, 如果需要对素材的属性进行更改或赋予更多的 功能后调用,可以使用PROTO原型节点或 EXTERPROTO外部原型节点,它们可以定义 可供修改的属性,例如:颜色、材质、外观等, 还可以根据需要增加素材的功能。
虚拟现实技术vrml程序设计4-5-6章 57
• 原型具有以下功能
• field SFVec3f bboxCenter 0 0 0
• field SFVec3f bboxSize
-1 -1 -1

第1章 VRML(虚拟现实建模语音)概述

第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概述

vrml概述

一个复杂的VRML场景的设计1. 前言未来信息社会的三大特征是:多媒体(Multimedia)、因特网(Internet)、和虚拟现实(VR,Virtual Reality)。

1995年,HTML(超文本标识语言,Hyper Text Marked Language)语言以其简单及跨平台特性,将全球处于十分分散的计算机连接起来,它以超链接为基础,把文本、图片、声音、动画、影像集成在一起,提供了基本的多媒体功能。

但是受HTML语言自身局限,网页只能是简单的平面结构,就算Java语言为WWW增色不少,也仅仅停留在平面设计阶段;即使CGI(通用网关接口,Common Gateway Interface)能使Wed有更强的交互功能,但也仅限于单调的文档及表格。

近几年出现的VRML(虚拟现实造型语言,Virtual Reality Modeling Language)彻底改变了WWW上单调、交互性差的弱点,它将用户的行为作为浏览主体,展现在用户面前的是一个三维、逼真的多媒体界面。

2. VRML的工作原理VRML的访问方式是基于客户/服务器模式,其中服务器提供VRML文件(后缀为.wRL)及支持资源客户通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器(Browse)交互式访问该文件描述的虚拟境界(V irtual World),因为浏览器是本地平台提供的,从而实现了和硬件平台的无关性。

VRML象HTML一样,是一种ASCII码描述语言,它是一套告诉浏览器如何创建一个三维世界并在其中航行(navigation)的指令,这些指令由再现器(Render)解释执行,再现器是一个内置于浏览器中或外部的程序。

由于VRML是一个三维造型和渲染的图形描述性语言,复杂的3D术语转换为动态虚拟世界是高速的硬件和浏览器,又由于其交互性强和跨平台性,使虚拟现实(VR,Virtual Reality)在Internet上有着广泛的应用,例如远程教育、商业宣传、娱乐等等,下面作者就一个大型复杂的VRML场景设计,做一些粗浅的分析,先介绍有关概念。

4VRML动画

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

虚拟现实与VRML-VRML编程

虚拟现实与VRML-VRML编程
a) 节点种类 : 如Box、Cone、Cylinder 等一 共有60种节点 。
b) 域(Fields) : 节点可以有零或多个域值。 c) 节点名称 : VRML中的节点不一定要指定
名称但若指定名称则必须唯一。
d) 子节点 : 节点与节点之间可以有阶层式的 从属关系。具有子节点的节点称为「父 节点」;父节点可以有零或多个子节点。
1. 坐标系统 :VRML采用的是卡氏右手立 体 坐 标 系 统 (Cartesian Right-Handed dimensional System),测量长度和距离的 基本单位是公尺,而测量角度的基本单 位是弧度。
2. 节点(Nodes) : VRML以节点为基础,每个节 点都具有以下四项特性 。
Appearance 节点描述外观
-- 可通过Material 节点控制材料属性,如 颜色、高
4. 域 (Fields) 所含域的数目分为两类 : 只含单一的「单值」 与含多个值的「多值」,分別以“SF” 与 “MF”为名称的开头。 SF开头的数值只是 一个单一的数或数组,而MF开头的是一个 数或数组的列表。各有11个和7个种类。
例)SFBool : 开关值 SFFloat/MFFloat : 浮点值 SFString/MFString : 字符串
基本体素的建立
-- Shape节点 -- 形状几何由几何节点描述,如Box, Cone,
Cylinder等。
几何形状的建立(续1.1)
复杂形状的建立
-- 动物、植物、地表、机械零件,等等... -- 可借助点、线、面来构建 -- 对于地表等,甚至有特定的节点描述,如
ElevationGrid节点
几何形状的建立(续2.1)
Extrusion

虚拟现实技术―VRML篇

虚拟现实技术―VRML篇

虚拟现实技术――VRML篇一、VRML介绍1.什么是VRML?VRML是“Virtual Reality Modeling Language”的缩写形式,意思是“虚拟现实造型语言”。

第一代Web是以HTML为核心的二维扫瞄技术,受HTML语言的局限性,VRML之前的网页只能是简单的平面结构,而且实现环境与参与者的动态交互是特不烦琐的。

第二代Web是以VRML 为核心的三维扫瞄技术。

第二代Web把VRML与HTML、Java、媒体信息流等技术有机地结合起来,形成一种新的三维超媒体Web。

VRML是用来描述三维物体及其行为的,能够构建虚拟境地(Virtural World), 能够集成文本、图像、音响、MPEG影像等多种媒体类型,还能够内嵌用Java、ECMAScript等语言编写的程序代码。

以VRML为核心构建的虚拟世界中用户如身处真实世界,能够和虚拟物体交互,人们能够以适应的自然方式访问各种场所,在虚拟社区中“直接”交谈和交往。

事实上,目前采纳VRML技术取得成功的案例差不多专门多,例如探路者到达火星后的信息确实是利用VRML在因特网上即时公布的,网络用户能够以三维方式随探路者探究火星。

2.VRML的工作原理VRML定义了一种把3D图形和多媒体集成在一起的文件格式。

从语法角度看,VRML文件是显式地定义和组织起来的3D多媒体对象集合;从语义角度看,VRML文件描述的是基于时刻的交互式3D多媒体信息的抽象功能行为。

VRML文件描述的基于时刻的3D空间称为虚拟境地(Virtual World),简称境地,所包含的图形对象和听觉对象可通过多种机制动态修改。

VRML文件能够包含对其他标准格式文件的引用。

能够把JPEG、PNG和MPEG文件用于对象纹理映射,把WAV和MIDI文件用于在境地中播放的声音。

另外,还能够引用包含Java或ECMAScript代码的文件,从而实现对象的编程行为。

VRML使用场景图(Scene Graph)数据结构来建立3D实境,VRML的场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。

第四讲 VRML高级三维模型

第四讲  VRML高级三维模型

创建文本造型
family域
设定文本造型的字符集。 字符集有三种:
“SERIF”,它是一种细线变宽字体,系统选用Times New Roman字体; “SANS”,它是一种简单变宽字体,系统选用Helvertica字体; “TYPEWRITER”,它是一种等宽字体,系统选用Coutier字体。
默认值为”SERIF”。
创建文本造型
string域
设定要创建的文本内容。 域值可以是一行文本,也可以是多行文本。 每一行的文本都要包含在双引号内,多行文本要用逗 号或空格分隔,或者分行书写,在引号内的回车符、 换行符无效。 行间距由FontStyle文本外观节点的Spacing域的域值设 定。 默认值为空列表,不创建任何文本。 例:[“Hello”,”I am a Student”] [“Welcom To ”,“Xiamen Univ.” ]
Group编组节点 Transform变换节点 Inline内联结点 Anchor超级链接节点 Switch选择开关结点 Billboard布告牌节点 LOD层次细节控制节点
造型的编组与素材调用
Group编组节点
编组节点可以包含任意数目的子节点,将多个简单造型组合成一 组复杂造型,作为一个整体进行设计、命名和调用。 语法: Group { children [ ] bboxCenter bboxsize addChildren removeChildren }
造型的外观设计
Material材质节点
当节点为NULL时,
即apperance Appearance { material NULL}或 apperance Appearance{ } 表示相关的几何体本身为发白光的材质,忽略周围 的所有光照,造型为纯白色,无任何亮度对比,无 立体感。

基于VRML的虚拟现实_场景_制作

基于VRML的虚拟现实_场景_制作

P< 主机组
在组播通信中采用了组的概念,它把接收同一 数据包的目的终端划分为一个逻辑组,称之为主机 组。发送端只需发送一份数据,目的主机组成员就 能收到相同的数据。同一主机组成员具有相同的 B# 地址,即组播地址。 B# 专门为组播划出了一个地址 范 围 , 在 B#(E 中 为 I 类 地 址 , 其 地 址 范 围 为 ;;E<Q<Q<Q55;A/<;!!<;!!<;;! ,格式如图 P 所示。 B#(1 中 组 播 地 址 扩 展 为 P;R 位 , 不 仅 增 大 了 表 示 范 围 , 还丰富了地址内容,其格式如图 ; 所示。
!"#$%& 和 ’’( 答疑和名师导学外还可以实现: )* 交互式可视授课
利用公众多媒体通信网,对图像及语音文字信 息进行编码,实现一点对多点的远程交互式教育。 老师与学生虽天各一方,但借助多媒体通信网相互 可视,并可交互,提供类似传统教学环境。 共享白板” 。教学双 +,-.,,-%/0 还提供了一个 “ 方除了看到、听到对方的形体动作和语言外,可以 通过 “ 共享白板” 、 “ 共享应用程序文档”等,较好 地实现了交互式可视授课的教学模式。
)C 尽量使用小尺寸的纹理贴图配合简单几何体
虚拟现实 ( 2%3-4$& 5,$&%-6, 简 称 25) 是 一 种 基于计算机技术构建的沉浸式交互环境。由于其具 有媒体多样性、强烈的临场感及接近自然操作的交 互性等特点,特别适用于教学中学习环境的构建。 虚 拟 现 实 技 术 在 78 上 的 实 现 目 前 主 要 有 以 下 两 种 方式: 来实现模型的细节部分。如冰箱内门的凹陷部分就 是通过将一张纹理贴图贴到简单的盒状物上实现的。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

}
• intensity:点光源的明亮程度。 • ambientIntensity:点光源对照明球体内的造型所 产生的环境光线的影响。 • attenuation:光照范围内光线的衰减方式。 • 第一个值:是否光线恒定; • 第二个值:控制光线按线性方式衰减; • 第三个值:控制光线亮度衰减和距离平方之间 的关系。 • 该域所有值都要求大于等于0。
• 例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中的点光源改成平行光源。观察 效果。
skyColor skyAngle groundColor groundAngle frontUrl backUrl leftUrl rightUrl topUrl bottomUrl set_bind isBound [0.0 0.0 0.0] [] [0.0 0.0 0.0] []
}
• skyAngle: 天空着色位置所需的空间角。天空角 从正上方0度开始,地平线处为90度,到正下 方180度为止,天空角必须以升序排列。
第三节 创建雾化效果
• 雾化效果两个因素:颜色、浓度 • VRML中,由Background节点设定的背景图像 不会受雾的遮蔽效果的影响,因此设计者强调 雾化效果时,最好不使用背景图像,或者便雾 的颜色与背景颜色协调相融。 Fog{
color fogType visibilityRange set_bind isBound 1.0 1.0 1.0 “LINEAR” 0.0
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)。 • 默认值表示行走状态为初始浏览状态,用户可在控制 面板上选择切换成任何一种浏览方式。
– 注:约定天空着色的位置在正上方,所以省略起始 天空角的设置,天空颜色数目总比天空角数目多一 个。 – 如果设置的最后一个天空角小于180度,则剩余的 空间均由指定的最后一种颜色着色。
• groundColor:正下方为地面角的起始位置0度, 正上方为地面角180度的位置。必须升序排列。 • 如果没有人为设置地面,浏览器只进行天空部 分的着色。 • topUrl, bottomUrl:通常不设置背景图像,从而 能看到天空和地面。 • set_bind和isBound用于进行空间背景切换。
• • • •
二、创建单色背景 只需对skyColor域进行设置即可。 三、创建天空背景 例4-18:创建一个多色天空背景,由顶部的蓝 色、中间的天蓝色到水平处的白色,形成一个 颜色梯度变换的天空背景。 • 四、创建地面背景 • 五、创建全景空间背景
第二节 创建光照
• VRML浏览器自动生成白色头灯光源headlight. 此光源为平行光束,与浏览者的视点同步运动, 始终照亮浏览者的前方。 • 可通过NavigationInfo节点的headlight域进行设 置。默认为打开,且光源颜色无法改变。
• 光源颜色可以在color域中进行设置。 • VRML创建的光源与现实中光源的最大差别在 于,无法自动产生阴影,必须通过人为设置阴 影造型模拟阴影效果。
• 一、PointLight节点 • 可独立,也可作为子节点 PointLight{
on TRUE location 0.0 0.0 0.0 radius 100.0 intensity 1.0 ambientIntensity 0.0 color 1.0 1.0 1.0 attenuation 1.0 0.0 0.0
• 三、SpotLight节点 • 模拟一些特殊光照效果的场景,如舞台灯光、探照灯、 艺术摄影等。 SpotLight{
on TRUE direction 0.0 0.0 -1.0 intensity 1.0 color 1.0 1.0 1.0 location 0.0 0.0 0.0 radius 100.0 beamWidth 1.570796 cutOffAngle 0.785398 ambientIntensity 0.0 attenuation 1.0 0.0 0.0
– 第一个:外表圆柱体的半径,设置替身进行碰撞和 穿越时1/2的厚度和宽度; – 第二个:高度,视点距地面的高度; – 第三个:抬腿的高度,设置替身能跨越障碍物的最 高高度。
第五节 创建音响效果
• Sound节点用于创建声场并设定声音播放方式, AudioClip和MovieTexture节点用于创建声源。 • 一、环境中声音的基本概念 • WAV(.wav):适于播放短的声音效果或讲话; • MIDI(.mid):适于演奏背景音乐; • MPEG-1(mpg):适于播放声音和图像同步的影片;
}
• fieldOfView:视角。0-3.141,超过1.047(60 度)时观察到的物体会产生显著变形。 • jump:视点切换类型是否为跳跃式。 • Desciption:描述视点的字符串,即视点名称。 它会自动出现在浏览器的视点列表中,通过该 域值,人们可以很方便地找到自己感兴趣的视 点。 • Set_bind入事件isBound出事件:进行VRML空 间视点切换。 • bindTime:出事件,发出视点被切换的时间,可 用来在一个给定的视点被激活时,开始运行一 段动画或者执行一段脚本程序。
• 一、Background背景节点
• 可以是任意组节点的子节点,用于在当前坐标系中创 建全景空间或天体空间背景。 • 空间背景不受坐标系平移或缩放变换的影响,因此, 浏览者在任何情况下都不可能靠近背景,只能从不同 角度观察全景空间背景的不同侧面或天体背景中天空 和地面的颜色。
Background{
– 天体空间背景
• 无穷大的空间球体,分为天空背景和地面背景。 天空和地面的划分以地平线为界。 • 地平线位于原始坐标系XOZ平面向后延伸的无穷 远处。
• 背景和造型的嵌套关系: • 由内至外:造型->全景空间背景->天体空间背景
• 如果同时增加了全景空间和天体空间两种背景,可通 过设置全景空间背景的透明度值决定能否看到天空和 地面的颜色。 • 默认:没有全景空间背景,天空和地面均为黑色。
• VRML中可人工设置的三类光源: • 点光源
– PointLight节点 – 由一个发光点向整个空间发射光lLight节点 – 始终朝一个特定方向发射光线,在场景中产生一组完全平行 的光照效果。 – 太阳光
• 锥光源
– SpotLight节点 – 由一个发光点向一个特定方向照亮圆锥体。 – 带罩的台灯
• visibilityLimit:观察者替身的最大观察距离。默 认为0,表示可观察到无穷远处。如果观察者 在最大观察距离内没观察到任何对象,浏览器 将只显示背景图。 • 在创建大的三维空间场景时,远处不必显示的 造型和场景可以通过合理设置该域值而忽略。 • avatarSize:替身的外表参数。
• 例4-24:本例介绍旋转视点、改变视线朝向的 另外一种方法:利用Transform,旋转 Viewpoint节点所在的坐标系,以达到改变视线 朝向的目的。这种方法只需改变视点的角度, 不必改变视点的位置。
• 二、NavigationInfo导航节点 • 创建一个观察者的替身,该替身不可见。利用 替身的视角,按照不同的视点导航方式,在虚 拟现实空间里漫游。 • 该节点对替身的外表尺寸、浏览方式、浏览速 度 、头灯光源等参数时行设置。
• Viewpoint视点节点和NavigationInfo导航节点, 一个用于设置观察视点,一个用于设置视点的 移动方式,两者配合可以创造逼真、美妙的浏 览效果。
• 一、Viewpoint节点 Viewpoint{
position orientation fieldOfView jump description set_bind isBound bindTime 0.0 0.0 10.0 0.0 0.0 1.0 0.0 观察者面对的方向 0.785398 TRUE “”
4.4 VRML的场景效果
主要内容
1. 创建背景
2. 创建光源 3. 创建雾化效果
4. 创建观察视点和视点导航
5. 创建音响效果
第一节 创建背景
• VRML中虚拟空间背景分为:
– 全景空间背景
• 将造型包围在里面的空间立方体,具有前、后、 左、右、上、下六个平面,可根据需要设置不同 的材质和图片。
第四节 创建观察视点和视点导航
• VRML中,允许创建多视点供选择,但不能同 时使用,每个时刻只能选择其中一个视点。随 着时间推移,视点之间可以切换。
– 跳跃式:定义能够在虚拟世界中观察到用户感兴趣 的重要的精彩的场景造型的观测点,用户不必观看 每一个场景,创建一种快捷方便的观察方式。 – 非跳跃式:定义随坐标系平滑转换连续变化的观测 点。
}
• fogType:设定雾的渲染类型。
– “LINEAR”:浓度随观察距离的增大而线性增大 – “EXPONENTIAL”:浓度随观察距离的增大而指数增大,变 化程度远远大于线性。
• visibilityRange:可见范围。越大,薄雾;越小,浓雾; 距离超过此域值时,造型将完全不可见。 • 例4-22:创建一个雾化测试场景:平板底托上,由近 往远错落排列6根金色圆柱。利用Fog节点增加雾化效 果。改变其visibilityRange,观察6根圆柱的可见性。 • diffuseColor 0.4 0.2 0 • ambientIntensity 0.28 • shininess 0.1 • specularColor 0.8 0.4 0
相关文档
最新文档