虚拟现实技术vrml程序设计.pptx

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 三、空间坐标的旋转
• 空间坐标系旋转的方法:利用Transform坐标变
换节点中rotation域的域值指定旋转轴及旋转角 度,形成一个新的旋转后的空间坐标系,然后在 新坐标中创建一个或一组造型。
• 如果需要在前面变换的基础上连续进行空间变换,
可以使用Transform节点进行逐级的嵌套变换, 嵌套级数没有限制。
• 二、素材调用的基本方法
• 1.采用DEF节点定义及USE节点引用的方法 • 2.利用Inline内联节点,从本文件范围之外的其
他文件或者互联网上,调用不需要进行修改加 工的素材,素材成为原场景的一部分
• 3.利用带有链接功能的Anchor锚节点,把存储
在本机硬盘或互联网上的素材作为一个新的完 整的场景进行调用,取代原来的场景
地面角1,地面角2,……]
groundColor [地面色0,地面色1,地面色2,……]
}
• 天空色0为0度天空位置的颜色
• 地面色0为0度地面位置的颜色
• 天空色1,2,……对应天空角1,2,……
• 地面色1,2,……对应地面角1,2,……
VRML程序设计
四、造型的空间变换、编组和素材调用
Chapter 4
• 4.1 造型的空间变换 • 4.2 造型编组和素材调用 • 4.3 其他组节点的使用
4.1 造型的空间变换
• 在VRML中创建的立体造型都是以默认坐
标系的原点为中心进行定位的。 Transform坐标变换节点可以创建一个新 的坐标系,通过对坐标系的平移、旋转、 缩放操作,实现对立体造型位置、角度、 缩放比例的改变 。
• 远距离的物体只能看到模糊的轮廓而看不到细节,可以
减小造型文件的体积,提高浏览器的速度。当造型距离 比较近的时候,选择用较高层次细节描述方法创建的造 型,清晰地刻画造型的纹理和细微特征,保证造型描述 的逼真性,这一点也与我们在真实世界中的观察相一致, 物体距离越近,能够看到的细节越多、越清晰。
• LOD { • exposedField MFNode level [ ] • field SFVec3f center 0 0 0 • field MFFloat range [ ] •}
• 4.利用PROTO语句和EXTERPROTO语句,在
本文件内外及互联网上定义的原型节点和外部 原型节点,调用素材时可以根据需要对其原有 的属性进行更改或赋予更多的功能
• 三、节点的定义及引用
• VRML可以采用节点定义及引用的方法,在本文件范围内
反复调用相同的素材。在虚拟现实的场景设计中,常常 需要将相同的造型经过不同的排列、旋转组合成新的复 杂造型。
• 五、Anchor锚链接节点
• 内联节点是把存在本机硬盘或互联网上的素材作为整个场
景的一个组成部分调到原场景中来,而锚链接节点则是把
存在本机硬盘或互联网上的素材作为一个新的完整的场景
进行调用,在原场景中设置一个锚点造型,当浏览者点击
锚点造型时,VRML浏从原场景中出来,进入到素材文件所构建的新场景
• 一、Group编组节点
• Group { • eventIn MFNode addChildren • eventIn MFNode removeChildren • exposedField MFNode children [] • field SFVec3f bboxCenter 0 0 0 • field SFVec3f bboxSize -1 -1 -1 •}
• field SFVec3f bboxSize
-1 -1 -1
•}
• 二、空间坐标的平移
• 空间坐标的平移是通过对Transform节点的
trans1ation域的域值的设定,建立新的坐标原点, 作为children域中所有子节点创建的造型的定位
点,从而实现原始坐标系和新坐标系造型之间相
对位置的移动和变化的。
• Transform {
• eventIn MFNode addChildren
• eventIn MFNode removeChildren
• exposedField SFVec3f center
000
• exposedField MFNode children
[]
• exposedField SFRotation rotation
• 一、Tronsform坐标变换节点
• Transform坐标变换节点用于创建一个或多个不
同于默认(原始)坐标系的新坐标系。Transfom 节点是一个组节点,在此节点下面可以包含一 个或多个子节点,所有子节点的定位中心都基 于同一个坐标系的原点。这些子节点可以是 Shape造型节点、Group编组节点,也可以是 下一层的Transform节点。
• 二、Switch选择开关节点
• Switch {
• exposedField MFNode choice []
• exposedField SFInt32 whichChoice -1
•}
• 三、LOD细节层次控制节点
• 在创建VRML虚拟现实空间造型的时候,需要兼顾浏览
器的渲染速度和造型刻画真实度之间的关系。造型刻画 越细致就越接近于真实,然而相应的VRML文件的体积 也越大,浏览器的渲染速度就越低,占用计算机CPU的 时间就越长。LOD (Level of Detail) 细节层次控制节点 主要任务就是解决这个问题,该节点可以根据浏览者与 造型距离的远近,选择按照不同的细致度刻画的造型。 当造型距离比较远的时候,选择用较低层次细节描述方 法创建的造型,忽略一些细节而只刻画造型的轮廓、形 状和大小,这与在真实世界中的观察极为相似。
空间模型
以VRML空间坐标系的原点为中心的无限大球 体 以Z-X平面为地平面 Y+向为天空 Y-向为地面
天空角
天空位置与Y+的夹角
地面角
地面位置与Y-的夹角
Background
{
skyAngle [
天空角1,天空角2,……]
skyColor [天空色0,天空色1,天空色2,……]
groundAngle [
• 节点定义及引用的语法格式:
• 节点定义:DEF 节点名 节点 { } • 节点引用:USE 节点名
• 四、lnline内联节点
• 在VRML中,可以使用IMine内联节点,从本文件范围之
外的其他文件或者互联网的任意位置上,调用不需要进
行修改加工的素材。当需要创建包括复杂场景和造型的 大型虚拟世界的时候,VRML文件就会变得非常庞大,难 于进行管理和调试。采用内联的方法,可以将复杂的场
4.2 造型编组和素材调用
• VRML提供了一类具有编组功能的节点,
它们可以把多个造型作为自己的子节点组 合成一个整体,一起进行平移、旋转、缩 放、外观设计、定义和调用等项操作。在 设计中合理使用组节点,能够减少很多重 复性的工作。这类组节点包括:Group编组 节点、Transform坐标变换节点、Inline内 联接点、Anchor超级链接节点、Switch选 择开关节点、Billboard布告牌节点和LOD 细节层次控制节点等。
• 四、空间坐标的缩放
• 现实世界中的物体是千姿百态的,很难用几种标准的造
型来概括。例如,前面学习的简单造型节点可以很容易
地创建出圆球造型,但是要做出一个椭圆形的气球就不
容易了,其实这样的造型可以通过对简单造型圆球进行
不同方向上的缩放拉伸来完成。和造型的平移、旋转一
样,造型的缩放必须依靠空间坐标度量单位比例的缩放 来实现。通常使用的空间坐标,在X、Y、Z坐标轴上采 用相同比例的度量单位,利用Transform坐标变换节点中 scale域scaleOrientation域和center域的域值设定不同方 向坐标轴的缩放比例,形成一个新的度量单位缩放比例 不同的空间坐标系,然后在新坐标系中创建一个或一组 经过缩放处理的造型。
如果需要对素材的属性进行更改或赋予更多的
功能后调用,可以使用PROTO原型节点或 EXTERPROTO外部原型节点,它们可以定义 可供修改的属性,例如:颜色、材质、外观等, 还可以根据需要增加素材的功能。
• 原型具有以下功能
• (1)素材调用功能。原型可以作为素材库反复调用。 • (2)节点扩展功能。原型可以使用标准节点和自定义
中去。
• Anchor {
• eventIn MFNode addChildren
• eventIn MFNode removeChildren
• exposedField MFNode children [ ]
• exposedField SFString description “ "
• exposedField MFString parameter [ ]
景和造型分解成各自独立的小文件,分别进行设计和调
试,作为素材模块存在本地硬盘或者互联网的任意位置
上。构建主程序时,在需要插入素材模块的位置,只需
利用内联节点指明素材文件的地址和文件名即可完成调
用和插入素材的过程,素材可以很方便地成为整个场景 中的一部分。
• Inline { • exposedField MFString url [] • field SFVec3f bboxCenter 0 0 0 • field SFVec3f bboxSize -1 -1 -1 •}
第五章、虚拟现实的场景环境设计
• 5.1 创建背景 • 5.2 创建光源 • 5.3 创建雾化效果 • 5.4 创建观察视点和视点导航
5.1 创建背景
• 在VRML中添加背景是最简单、最基本的场景环境设计方
法。虚拟空间背景分为全景空间背景和天体空间背景两种: 全景空间背景是一个将造型包围在里面的空间立方体,具 有前、后、左、右、上、下六个平面,可以根据需要设置 不同的材质和图片。天体空间背景是一个无穷大的空间球 体,分为天空背景和地面背景。天空和地面的划分以地平 线为界。地平线位于原始坐标系XOZ平面向后延伸的无穷 远处,上面的球体是天空,下面的球体是地面。背景和造型 的嵌套关系是:造型在最里面,全景空间背景的立方体为中 间包围层,天体空间背景的无穷大球体是最外面的包围层。 如果同时增加了全景空间和天体空间两种背景,可以通过 设置全景空间背景的透明度值决定能否看到天空和地面的 颜色。默认情况下,没有全景空间背景,天空和地面均为黑 色。
• exposedField MFString url
[]
• field SFVec3f bboxCenter 0 0 0
• field SFVec3f bboxSize -1 -1 -1
•}
• 六、原型的定义和调用
• 前面所讲的调用素材的三种方法只适用于对素
材不需要进行加工处理、原汁原味调用的情况,
001 0
• exposedField SFVec3f scale
111
• exposedField SFRotation scaleOrientation 0 0 1 0
• exposedField SFVec3f translation 0 0 0
• field SFVec3f bboxCenter 0 0 0
• (5)网络运作功能。原型(内部原型)可以在当前文件
中定义和反复调用,外部原型可以在其他文件和网
络中定义,在当前文件中反复调用。外部原型提供
了跨越网络调用的强大功能。
4.3 其他组节点的使用
• 一、Billboard布告牌节点
• Billboard { • eventIn MFNode addChildren • eventIn MFNode removeChildren • exposedField SFVec3f axisOfRotation 0 1 0 • exposedField MFNode children [] • field SFVec3f bboxCenter 0 0 0 • field SFVec3f bboxSize -1 -1 -1 •}
节点创建新的节点类型。
• (3)动态更新和保护功能。原型可以通过设置接口中
的域和事件,对虚拟现实中造型属性进行更改或者
限制更改,从而达到场景的动态更新和保护一些造
型不被改动的目的。
• (4)造型及动作打包功能。VRML中标准节点本身均
不具备行为自控能力,通过原型可以将造型与交互
动作、事件、脚本等VRML元素捆绑使用。
相关文档
最新文档