《第二章 VRML的基本知识》由会员分享,可在线阅读,更多相关《第二章 VRML的基本知识(53页珍藏版)》请在金锄头文库上搜索。
1、Ch2VRML基本知识 开发及运行VRML所需工具示例程序基本概念 VRML的运行环境 VRML对硬件与软件的环境要求都较低 一般计算机都可以运行 但配置较高时 运行速度较快 一般推荐配置为 1 硬件环境 建议采用Pentium4以上的计算机 主频2G以上 内存128M以上 显存64M以上 硬盘10G以上 2 软件环境 操作系统可采用Windows2000 XP 2003等 但要求安装VRML相关浏览插件 3 网络环境 浏览VRML场景时可以采用拨号 宽带 无线等网络接入方式 网络浏览器可采用Windows操作系统自带的IE浏览器或Netscape浏览器 开发及运行VRML所需工具 编辑工具
2、记事本或vrmlpad2 0浏览工具 安装浏览器插件 cortvrml安装过程中取默认值即可选软件加速 VRML场景的编辑与浏览 VRML程序是一种ASCII码的描述程序 可以使用计算机中任何一种具有文本编辑器的编辑器 如Windows中自带的记事本 NotePad 写字板 WordPad 等 来编辑VRML源程序代码 但要求程序存盘时文件的扩展名必须是 wrl world的缩写 或 wrz 否则VRML的浏览器将无法识别 在实际工作中 由于建造复杂场景时 VRML的建模语法繁琐 结构嵌套复杂 而且命令中的关键字都很长 用普通的文本编辑软件编辑不易输入和纠错 针对VRML的编程需求 为了提高编
3、辑效率 我们常采用功能强大并且使用简便的开发设计软件 VrmlPad VRML的编辑器 VrmlPad是由ParallelGraphics公司开发的基于文本式的 支持即时预览的VRML专用开发工具 另外还有如CosmoWorld Internet3DSpaceBuilder等可视化场景创作工具 同时 主流的三维建摸软件如3DSmax Maya Blender等通过插件的方式都支持场景的VRML格式输出 VrmlPad最新版本是2 1 官方正式版为英文版 VrmlPad2 1具有VRML代码下载 编辑 预览 调试功能 是当今VRML源代码编辑的最强工具之一 如图所示 VrmlPad编辑器的主界面
4、 VrmlPad编辑器的主要功能有 文件管理功能 2 文件编辑功能 3 具有预览功能 4 方便快捷的材质编辑功能 5 方便下载VRML资源 7 2 2VRML场景的浏览器 要在浏览器中观察VRML场景 需要安装VRML浏览器插件 下面的清单列出了目前常用的VRML X3D浏览器插件 BitManagementBSContactX3D VRML97插件 支持InternetExplorer Windows OctagaX3D VRML浏览器 支持InternetExplorer Windows CRCFreeWRLX3D VRML浏览器 基于C语言开发 开源 支持MacOSX Linux平台Xj
5、3DforX3D VRML97开源浏览器 是用于制定X3D规范的试验工具 2 0版本采用Java 其它浏览器 ParallelGraphicsCortona3DVRML97插件 支持Netscape与InternetExplorercortnaPlayerVersion4 2 blaxxunContactVRML97插件 支持NetscapeorInternetExplorerCosmoPlayerVRML插件 是对VRML97标准支持程度最高的一款浏览器 已停止开发 支持Firefox与InternetExplorerOpenVRML一个跨平台的VRML X3D运行环境 MacOSX Lin
6、ux FreeBSD 第二节示例程序P11 VRMLV2 0utf8DEFqiutiTransform children Shape appearanceAppearance materialMaterial diffuseColor011 geometrySphere radius1 1 DEFtimeTimeSensor 时间传感器cycleInterval2 0loopTRUE DEFbianhuaPositionInterpolator 移动位置节点key 0 0 1 0 相对时间的逻辑值keyValue 00 10 空间坐标的位置值与相对时间的逻辑值对应006 ROUTEtime f
7、raction changedTObianhua set fractionROUTEbianhua value changedTOqiuti set translation 第三节VRML2 0基本概念 VRML空间计量单位文件结构VRML的域VRML数据类型对象和事件路由 在构建虚拟场景中 构成场景的造型有大小的差别 物体间有相对位置的不同 并且造型还会有旋转 移动等运动 这就涉及到物体的空间坐标系 相应的长度 角度及颜色等 在VRML中 采用空间直角坐标系确定造型的位置 并且用特定的计量单位定量表示长度 VRML的空间坐标与计量单位 VRML的空间坐标与计量单位 1 VRML空间坐标系在V
8、RML场景中 空间直角坐标满足右手螺旋法则 就是说 右手四指从X方向转到Y方向 则拇指的指向是Z方向 在默认情况下 X坐标向右为正 Y坐标向上为正 而Z坐标指向观察者 如图所示 长度及坐标的计量单位采用VRML单位计量 在三维空间中 它是统一的 简称为单位 需要注意的是 这里表示的单位和实际环境中的计量没有任何可比性 和一些三维建模软件如3DSMAX的计量单位也没有可比性 在VRML场景中 只有物体间的大小和相对位置都用VRML单位计量 才能模拟出真实的现实 2 VRML长度单位 3 VRML角度单位在VRML中 使用的角度不是普通的角度 而是用弧度表示 这是浏览器接受的角度描述 当在VRML
9、中使用角度单位中 要先将其换算成弧度后 再将其写入到VRML源程序中 VRML中的360 角度等于2 弧度 由此 1弧度约等于57 4 空间立体着色在VRML三维空间中 无论是背景 光线的颜色 物体 它们的颜色都是由红 绿 蓝 RGB 组合而成 它们分别对应3个浮点数 其域值为0 0 1 0之间 由这三原色组合成各种颜色 VRML三维空间坐标系 VRML采用笛卡儿坐标系统 在空间的正中间定义了默认的原点 并以此基点建立了笛卡儿坐标系 空间的每一个点的位置用一组由三个实数构成的组表示 作为该点相对于原点的坐标 形式为 XYZ 第一个数X为横坐标 表示对象在空间中的左右位置 第二个数Y为纵坐标 表
10、示对象在空间中的上下位置 第三个数Z表示对象在空间中的远近位置 VRML空间计量单位 长度单位VRML三维立体空间长度单位是统一的 只有一个单位标量 即VRML单位 VRML长度单位不是一个绝对尺寸的大小 即VRML尺寸与现实中的长度单位不具有可比性 只有在VRML单位之间才具有可比性 通常可理解为米角度单位弧度 空间背景结点 Background skyAngle 天空角1 天空角2 skyColor 天空色0 天空色1 天空色2 groundAngle 地面角1 地面角2 groundColor 地面色0 地面色1 地面色2 结点说明 天空色0为0度天空位置的颜色地面色0为0度地面位置的颜
11、色天空色1 2 对应天空角1 2 地面色1 2 对应地面角1 2 系统自动过渡相邻位置的颜色角度的单位为弧度颜色由r g b分量合成颜色分量的数值范围 0 0 1 0 一些常用角度的弧度值 弧度 角度 180 制作VRML网页bk wrl 空间背景 例题 参考源代码 VRMLV2 0utf8Group children Background skyAngle 1 0471 570 60度 90度skyColor 0 00 01 0 0 20 20 8 1 01 01 0 groundAngle 1 3961 570 80度 90度groundColor 0 01 00 0 0 00 50 2
12、1 01 01 0 二 VRML的语法结构 VRML语法主要包括有文件头 节点 原型 脚本和路由等 当然并不是所有的文件都必须是这六个部分 只有文件头是必须的 VRML的立体场景与造型由节点构成 再通过路由实现动态的交互与感知 或是使用脚本文件或外部接口进行动态交互 在VRML文件中 节点是核心 没有节点 VRML也就没有意义了 VRML场景可以由一个或多个节点组成 VRML中还可以通过原型节点创建新的节点 一个较为通用的VRML文件语法结构 VRMLV2 0utf8 VRML文件的第一行必须有这一行 这是VRML文件标志节点名 VRML的的各种 节点 域域值 对应 节点 的 域 与 域值 S
13、cript 脚本Script节点 ROUTE 路由 把入事件与出事件相关联在这个VRML文件结构中 包括有以下几个内容 它是一个很典型的VRML文件 它表达了下述几个方面的含义 1 文件头VRML文件中的第一行 VRMLV2 0utf8 这是VRML文件头 任何VRML文件都必须有这样的文件头 并且必须放在第一行 它表述了以下三个含义 1 这个 不是注释 而是VRML文件的一个部分 2 VRML表示告诉浏览器 这是个vrml文件 3 V2 0表示告诉浏览器 这个文件使用vrml2 0版的规范完成 4 utf8表示文件是使用国际UTF 8的字符集 2 文件结构 VRMLV2 0utf8节点名 各
14、种类型的节点域域值 相应节点的域和域值 Script 脚本Script节点 ROUTE 路由 实现动态效果 2 文件结构 由文件头 造型 原型 事件和路由五部分组成文件头 VRMLV2 0utf8 表示之后是注解 在它之后的每一个字都会被忽略 一直到换行符 造型 物体的造型即场景图 场景图由描对象及其属性的节点组成 专用名词 节点域 节点 Node 是VRML文档基本的组成单元 它描述对象某一方面的特征 如形状 材质等 VRML虚拟世界的对象往往由一组具有一定层次结构关系的节点来构造 节点具有节点名 节点类型 域 事件接口和实现五个组成部分 节点可以用DEF语句命名 用USE语句引用 节点 节
15、点是VRML最基本的单位 是VRML的精髓和核心 节点用来完成某个功能 节点是实现功能的最小单位和场景图的基本组件 节点是现实世界中各种事务 对象 概念的抽象描述 VRML文件就是若干表现功能各异的节点层层嵌套构成节点包括域和事件 节点格式 节点名 各种类型的节点域名域值 域值类型说明 如 geometrySphere radius1 5 域 域定义了节点的各个属性 每个域都代表了不同的属性类似于高级语言中的 变量 或 数组 域的类型1 普通域 field 2 公共域 exposedField 除脚本节点外 其余节点内的每个域的类型是预定的 域名 节点内域名是唯一的 是VRML中的关键字域值
16、域的取值 和VRML的数据类型有关 除脚本节点外 其余节点内的每个域有自己的默认值 同一个节点中的域的特点 无序性 可选性 有默认值 域名的唯一性 具有不同的类型 例 VRMLV2 0utf8Shape appearanceAppearance materialMaterial diffuseColor100 geometrySphere radius1 5 VRML的数据类型 域的类型 单值类型 以 SF 开始 只包含单值 单值 一个独立的数 一个向量 颜色的几个数多值类型以 MF 开始 包含多个值用方括号括起来的一系列用逗号和空格隔开的单值 域的类型 SFBoolSFFloat和MFFloatSFInt和MFIntSFVec2f和MFVec2fSFVec3f和MFVec3fSFColor和MFColorSFRotation和MFRotation 对象和事件 对象 具有属性 如高度 宽度 颜色等 行为动作的实体或模型 VRML中的节点就是对象 例题2 1中的qiuti time bianhua等 对象具有收发信息的功能 通过事件完成 事件 Event 在VRML中 事件 是操作者 节