第1章 VRML概述 1
1.1 VRML基础知识 1
1.1.1 VRML的概念 1
1.1.2 VRML的特征与功能 3
1.1.3 VRML的应用 4
1.2 VRML的历史 6
1.3 VRML的发展前景 8
1.4 VRML编辑工具及浏览器插件 11
1.4.1 VRML编辑工具 11
1.4.2 VRML浏览器插件 12
1.5 小结 16
第2章 基本概念 17
2.1 VRML文件的组成 17
2.2 VRML空间 18
2.3 VRML节点和域 18
2.3.1 节点 18
2.3.2 域 21
2.4 VRML事件和路由 23
2.5 交互和脚本 23
2.6 示例 24
2.7 小结 25
3.1.1 Box节点 26
第3章 预定义造型 26
3.1 简单预定义物体造型 26
3.1.2 Sphere节点 27
3.1.3 Cone节点 28
3.1.4 Cylider节点 29
3.1.5 Text节点 30
3.2 复杂预定义物体造型 34
3.2.1 Shape节点 34
3.2.2 对同一节点的多次使用(DEF...,USE...) 36
3.2.3 基于顶点的几何节点 38
3.3.1 添加外观 49
3.3 外观及材质 49
3.3.2 添加材质 51
3.4 空间变换 53
3.4.1 节点说明 53
3.4.2 平移(transform) 54
3.4.3 旋转(rotation) 55
3.4.4 缩放(scale) 57
3.5 造型编组 59
3.5.1 编组造型与空间定位 59
3.5.2 Group基本组 65
3.5.3 创建布告牌和开关 68
3.5.4 内联 71
3.6 小结 73
第4章 添加光照、色彩及纹理 74
4.1 光源 74
4.1.1 平行光源、点光源、锥光源 74
4.1.2 产生阴影 78
4.2 法向量 81
4.2.1 向量的应用 81
4.2.2 creaseAngle域 84
4.3 色彩 85
4.3.1 对不同面的颜色填充 86
4.3.2 对各个顶角填充 87
4.4 材质 90
4.5 纹理 92
4.5.1 纹理的概念 92
4.5.2 理解纹理 93
4.5.3 纹理节点 94
4.5.4 纹理变换 100
4.5.5 使用纹理坐标映射纹理 103
4.5.6 对挤出造型应用纹理 105
4.5.7 对文本造型应用纹理 107
4.6 小结 108
5.1.1 描述一个声源 110
5.1 声音 110
第5章 添加声音和动画 110
5.1.2 用Sound节点生成声音发射器 113
5.1.3 声音节点的应用 116
5.2 动画 120
5.2.1 事件和路由 121
5.2.2 插补器的介绍及运用 122
5.2.3 时间检测器 125
5.2.4 插入动画 127
5.3 小结 146
6.1 Script节点语法 147
第6章 使用脚本 147
6.2 JavaScript和VRMLScript 150
6.2.1 对象和变量 151
6.2.2 数据变换 151
6.2.3 语句 152
6.3 使用Script节点处理事件 155
6.4 控制动画 161
6.5 小结 172
第7章 使用原型 173
7.1 理解原型 173
7.2 PROTO节点语法 173
7.3.2 定义外露接口域 174
7.3.1 定义接口域 174
7.3 域和事件 174
7.3.3 定义eventIn事件 175
7.3.4 定义eventOut事件接口 175
7.4 节点体 176
7.4.1 节点的应用范围 176
7.4.2 节点体与接口的连接 176
7.4.3 原型与DEF和USE 178
7.5 原型的应用 178
7.5.1 创建具有不同外观的节点类型 178
7.5.2 创建新的几何体节点类型 180
7.5.3 创建产生动画的新节点类型 183
7.5.4 创建视角跟踪节点类型 186
7.6 EXTERNPROTO 187
7.7 小结 188
第8章 与用户交互 189
8.1 理解对用户动作的感知 189
8.2 检测器节点 189
8.2.1 接触检测器(TouchSensor) 189
8.2.2 PlaneSensor 191
8.2.3 CylinderSensor 193
8.2.4 SphereSensor 196
8.2.5 ProximitySensor 197
8.3 与用户交互 199
8.4 碰撞检测 202
8.5 增加锚点 205
8.6 控制视点 209
8.6.1 理解视点及其绑定 209
8.6.2 Viewpoint节点 209
8.7 丰富交互功能 216
8.8 小结 220
第9章 设置场景信息 221
9.1 WorldInfo 221
9.2 NavigationInfo 221
9.2.1 speed域 222
9.2.2 type域 223
9.2.3 headlight 224
9.2.4 visibilityLimit 225
9.2.5 avatarSize 227
9.3 Fog节点 228
9.4 Background 231
9.5 可绑定节点 233
9.6 小结 235
第10章 性能优化并在网上发布作品 237
10.1 减少文件传输数据量 237
10.1.1 利用DEF、USE和PROTO对实例进行重用 237
10.1.4 利用gzip压缩VRML文件 239
10.1.2 消除空白间隔 239
10.1.3 数据的优化 239
10.2 提高渲染速度 240
10.2.1 减少多边形的数目 240
10.2.2 光源的使用 240
10.2.3 利用LOD(Level Of Detail)控制细节层次 241
10.2.4 充分利用纹理 248
10.2.5 分而治之 250
10.2.6 优化碰撞 250
10.2.7 有效使用脚本 251
10.3 在万维网上发布作品 252
10.3.1 MINE TYPE 252
10.3.2 VRML与html的结合 252
10.3.3 申请主页空间 253
10.3.4 上传文件 254
10.4 小结 254
1.SFBool 255
2.SFFloat和MFFloat 255
3.SFImage 255
附录 域的说明 255
11.2 EAI声明、变量和函数 255
11.1 Java、Javascript、vrmlscript和ECMAscript 255
第11章 使用EAI 255
11.3.1 访问节点 256
11.3.2 往场景节点发送evetIn事件 256
11.3 语言支持 256
5.SFNode和MFNode 256
4.SFInt32和MFInt32 256
10.SFVec3f和MFVec3f 257
9.SFVec2f和MFVec2f 257
8.SFTime和MFTime 257
7.SFString和MFString 257
6.SFRotation和MFRotation 257
11.3.3 读取场景中节点的eventOut事件 257
11.3.4 监听场景内节点的eventOut 257
11.4.3 获取Browser类实例 258
11.4.2 嵌入Web页 258
11.4.1 描述 258
11.4 使用EAI 258
11.4.4 添加新节点 259
11.4.7 监听方位 260
11.4.6 删除节点 260
11.4.5 修改节点 260
11.5 应用举例 261
11.6 小结 265