第1章 VRML简介 1
1.1 VRML的历史 1
1.1.1构想和诞生 1
1.1.2从VRML1.0到VRML2.0 2
1.2 VRML2.0的功能 2
1.3 VRML2.0虚拟现实举例 3
1.4VRML2.0基本知识 6
1.4.1 VRML2.0的文件结构 6
1.4.2VRML2.0的专用名词 7
1.5.1理解造型 9
1.5用Shape节点封装空间造型 9
1.5.2 Shape节点语法 10
1.5.3 Appearance节点语法 10
1.5.4造型示例 11
第2章 创建空间造型 12
2.1 VRML空间和局部坐标系 12
2.1.1理解VRML空间 12
2.1.2理解局部坐标系 12
2.2创建基本几何造型 13
2.2.1长方体造型(Box节点) 13
2.2.2球体造型(Sphere节点) 13
2.2.3圆锥体造型(Cone节点) 13
2.2.5组合造型 14
2.2.4圆柱体造型(Cylinder节点) 14
2.3创建文本造型 16
2.3.1文本概念 16
2.3.2Text节点语法 17
2.3.3 FontStyle节点的语法和对文本显示的控制 18
2.3.4实现文本和几何体的结合 22
2.4创建标高网格 24
2.5创建挤压造型 28
2.6创建基于顶点几何造型 31
2.6.1用PointSet节点创建离散点 32
2.6.2用IndexedLineSet节点创建空间折线 32
2.6.3用IndexedFaceSet节点创建空间面 35
第3章 空间造型的变换与编组 40
3.1空间造型的变换 40
3.1.1基本空间概念 40
3.1.2Transform节点语法 41
3.1.3平移 41
3.1.4旋转 42
3.1.5放缩 44
3.1.6平移、旋转和放缩的组合 47
3.2编组空间造型 50
3.2.1 Group节点 51
3.2.2 Anchor节点 52
3.2.3内联节点(Inline) 54
3.2.4对同一节点的多次使用 64
第4章 添加场景信息 67
4.1添加背景 67
4.1.1背景的理解及Background节点 67
4.1.2背景的连接及应用 69
4.2光照及明暗控制 72
4.2.1理解光源 72
4.2.2点光源节点PointLight 72
4.2.3平行光源节点DirectionalLight 75
4.2.4聚光光源节点SpotLight 76
4.2.5造型表面的明暗控制 77
4.3.1理解纹理 78
4.3纹理映射控制 78
4.3.2纹理映射方法 79
4.4添加雾的效果 81
4.4.1雾化的理解及Fog节点 81
4.4.2雾化的应用 82
4.5添加声音 84
4.5.1声音节点 84
4.5.2声音的应用 87
4.6添加动画 89
4.6.1事件和路由的互访 90
4.6.2动画流程 91
4.6.3动画实现 92
4.7设置场景参数 96
第5章 传感器节点 97
5.1接近传感器节点ProximitySensor 97
5.2可视性传感器 99
5.3碰撞检测 100
5.4环境检测器 102
5.5定点设备检测器 106
第6章 脚本节点 108
6.1 Script节点语法 108
6.1.1 Script节点基本语法 108
6.1.2 Script节点工作原理 109
6.1.3专用函数 110
6.1.4脚本语言 111
6.2事件处理机制 113
6.3脚本与动画 114
6.3.1自定义交互表现 114
6.3.2逻辑控制 116
6.3.3带有逻辑交互行为的原型 119
6.3.4节点绑定 121
6.4浏览器脚本接口 123
6.4.1只读函数 123
6.4.2动态控制函数 125
第7章 JAVA入门 132
7.1 Java概述 132
7.1.1 Java产生的历史 132
7.1.2 Java语言的特点 133
7.2.1类 136
7.2面向对象的程序设计 136
7.2.2对象 137
7.2.3抽象 137
7.2.4封装 138
7.2.5继承 138
7.2.6多态性 139
7.3 Java语言简介 139
7.3.1 Java的编译与运行 139
7.3.2程序结构 140
7.3.4标识符 141
7.3.3注释 141
7.3.5变量和数据类型 142
7.3.6操作符 143
7.3.7表达式 144
7.3.8 Java流控制 144
7.3.9方法 146
7.4类、接口和包 148
7.4.1类 148
7.4.2接口 151
7.4.3包(Packages) 152
7.5.1如何使用线程 153
7.5线程 153
7.5.2线程状态 155
7.5.3线程优先级 156
7.5.4线程同步 159
7.6 Java小应用程序--Applet 161
7.6.1在网页中嵌入Applet 161
7.6.2 Applet的结构和运行框架 162
7.6.3传递Applet的参数 163
7.6.4图形界面编程 164
7.6.5事件处理 170
8.1一个简单的例子 179
第8章 使用Java实现VRML脚本 179
8.2 JSAI简介 182
8.3 JSAI应用 184
8.3.1加载脚本 184
8.3.2事件处理 185
8.3.3域操作 186
8.3.4访问脚本节点的事件 188
8.3.5访问域对象表示的节点的域和事件 189
8.3.6浏览器接口API 190
8.4应用技巧 193
8.3.1使用图形界面 193
8.3.2使用线程 195
9.1.1基本内容 198
9.1.2 EAI类包 198
9.1 EAI简介 198
第9章 使用Applet控制VRML场景 198
9.1.3HTML语法 199
9.1.4 EAI与JSAI的区别 199
9.2 Applet访问场景 200
9.2.1获得浏览器的引用 200
9.2.2访问节点 201
9.2.3访问事件 201
9.2.4调用Browser类的其他方法 203
9.3应用实例 203
A.1 VRML20的关键字 211
附录A VRML2.0的关键字和域的说明 211
A.2域的说明 212
附录B VRMLScript参考 216
B.1 语言 216
B.1.1对象与变量 216
B.1.2语句 219
B.1.3表达式 221
B.2 Script节点的url域支持协议 223
B.3 EventIn事件处理 224
B.3.1参数传递与EventIn函数 224
B.3.2 eventsProcessed()方法 224
B.4.2访问其他节点的域和EventOuts 225
B.4.1访问Script节点的域与EventOut 225
B.4访问域 225
B.3.4 shutdown()方法 225
B.3.3 initialize()方法 225
B.4.3发送EventOuts 226
B.5对象和函数定义 226
B.5.1 parseInt和parseFloat函数 226
B.5.2 Browser对象 226
B.5.3 Math对象 227
B.5.4 SFColor对象 229
B.5.5 SFImage对象 229
B.5.6 SFNode对象 230
B.5.7 SFRotation对象 230
B.5.8 SFVec2f对象 231
B.5.9 SFVec3f对象 232
B.5.10 MFColor对象 233
B.5.11MFFloat对象 233
B.5.12 MFInt32对象 233
B.5.13 MFNode对象 234
B.5.14 MFRotation对象 234
B.5.15 MFString Object 235
B.5.16 MFVec2f对象 235
B.5.17 MFVec3f对象 235
附录C EAI实用类库 237
C.1包vrml.external 238
C.2包vrml.external.field 240
C.3包vrml.external.exception 247