第1章 VRML简介 1
1.1 虚拟现实技术 2
1.2 VRML的发展历史 3
1.3 VRML的强大功能与诱人前景 4
1.3.1 VRML的功能概述 5
1.3.2 VRML的发展前景 6
1.4 简单示例 8
1.5 VRML文件开发工具和浏览器简介 11
1.5.1 开发工具 11
1.5.2 浏览器 15
第2章 VRML文件 19
2.1 文件结构 20
2.1.1 VRML文件扩展名及文件头 20
2.1.2 原型、造型、脚本和路由 20
2.2 文件的基本内容 23
2.2.1 节点和域 23
2.2.2 程序注释 29
第3章 基本造型 31
3.1 Shape节点 32
3.2 简单物体造型节点 35
3.2.1 Box节点 35
3.2.2 Sphere节点 36
3.2.3 Cone节点 37
3.2.4 Cylinder节点 40
3.3 编组节点 44
3.4 复杂应用 46
3.4.1 使用多个造型节点 46
3.4.2 多次使用同一节点 48
第4章 造型的空间变换 51
4.1 基本概念 52
4.1.1 计量单位 52
4.1.2 空间坐标系 52
4.2 Transform节点语法 53
4.3.1 不同方向上的平移 54
4.3 平移 54
4.3.2 创建多个平移坐标系 58
4.3.3 平移的嵌套 62
4.4 旋转 64
4.4.1 不同方向上的旋转 64
4.4.2 创建多个旋转坐标系 68
4.4.3 旋转坐标系的嵌套 69
4.4.4 指定中心的旋转 71
4.5 缩放 73
4.5.1 不同方向上的缩放 73
4.5.2 创建多个缩放坐标系 75
4.5.3 指定中心的缩放 77
4.5.4 缩放的嵌套 80
4.5.5 指定缩放的方向 82
第5章 文本造型的创建 87
5.1 Text节点 88
5.2 FontStyle节点 93
5.3 综合应用 103
5.3.1 创建多文本造型 103
5.3.2 将文本和基本造型结合 104
第6章 空间效果设定 107
6.1 空间背景 108
6.1.1 Backgroud节点 108
6.1.2 添加背景 109
6.2 空间大气效果 117
6.2.1 Fog节点 117
6.2.2 雾的应用 118
第7章 添加声音 125
7.1 声音节点 126
7.1.1 AudioClip节点 126
7.1.2 MovieTexture节点 128
7.1.3 Sound节点 129
7.2 使用声音节点 131
第8章 造型的外观控制 145
8.1.1 颜色外观 146
8.1 基本概念 146
8.1.2 其他外观效果 147
8.2 控制外观 147
8.2.1 Material节点 147
8.2.2 节点应用 148
第9章 用点线面构造造型 163
9.1 使用点来构造造型 164
9.1.1 PointSet节点 164
9.1.2 节点应用 165
9.2 使用线来构造造型 167
9.2.1 IndexedLineSet节点 167
9.2.2 用线构成的造型 168
9.3 使用面来构造造型 170
9.3.1 IndexedFaceSet节点 170
9.3.2 面的应用 172
第10章 复杂造型 181
10.1 创建海拔栅格 182
10.1.1 ElevationGrid节点 182
10.1.2 海拔栅格的创建 183
10.2 创建挤出造型 188
10.2.1 Extrusion节点 188
10.2.2 挤出造型的创建 189
第11章 纹理映射 197
11.2 纹理节点 198
11.1 有关纹理映射 198
11.2.1 ImageTexture节点 199
11.2.2 PixelTexture节点 200
11.2.3 MovieTexture节点 204
11.3 纹理坐标节点 204
11.3.1 TextureCoordinate节点 204
11.3.2 TextureTransform节点 206
11.4 映射纹理 210
第12章 光照效果 217
12.1.3 光线 218
12.1.2 光源颜色 218
12.1.1 光源 218
12.1 有关知识 218
12.2 节点介绍 219
12.2.1 PointLight节点 219
12.2.2 DirectionalLight节点 221
12.2.3 SpotLight节点 224
12.3 节点应用 227
第13章视规点控制 235
13.1 有关视点及导航 236
13.2 节点介绍 236
13.2.1 Viewpoint节点 236
13.2.2 NavigationInfo节点 242
13.3 控制视点 250
第14章 明暗控制 255
14.1 Normal节点 256
14.2 IndexedFaceSet节点 256
14.3 ElevationGrid节点 261
第15章 实现动画效果 265
15.1 时间传感器 266
15.2 控制动画的插补器 267
15.2.1 ColorInterpolator节点 267
15.2.2 CoordinateInterpolator节点 271
15.2.3 Normallnterpolator节点 274
15.2.4 PositionInterpolator节点 276
15.2.5 ScalarInterpolator节点 279
15.2.6 OrientationInterpolator节点 281
第16章 在点、线、面和坐标上着色 285
16.1 节点介绍 286
16.1.1 Color节点 286
16.1.2 PointSet节点 286
16.1.3 IndexedLineSet节点 288
16.1.4 IndexedFaceSet节点 290
16.1.5 ElevationGrid节点 293
16.2 给坐标着色 298
第17章 实现交互功能 303
17.1.1 TouchSensor节点 304
17.1 触动检测器 304
17.1.2 PlaneSensor节点 306
17.1.3 CylinderSensor节点 308
17.1.4 SphereSensor节点 309
17.2 感知检测器 311
17.2.1 VisibilitySensor节点 311
17.2.2 ProximitySensor节点 312
17.2.3 Collision节点 313
第18章 简单脚本 315
18.1 Script节点 316
18.2 使用Script节点处理事件 317
18.3 使用Script节点控制动画 319
第19章 VRML的Java支持 325
19.1 认识Java 326
19.1.1 Java历史 326
19.1.2 Java的现状 326
19.1.3 Java的特征 327
19.2 Script节点 329
19.3 动态场景 331
19.3.1 用VrmlScript操纵场景 331
19.3.2 用Java程序操纵场景 332
19.4 Script节点和Java程序之间的通信方式 333
19.4.1 从VRML场景到Java代码 333
19.4.2 Java程序对VRML场景的控制 336
第20章 Java开发环境 341
20.1 Java Developers Kit(JDK) 342
20.1.1 JDK的安装 342
20.1.2 Java程序的编译 343
20.1.3 使用Java调试器 344
20.1.4 Java程序的执行 345
20.2 编制Java程序 346
第21章 Java编程基础 349
21.1 Java数据类型 350
21.1.1 基本数据类型 350
21.1.2 数组类型 359
21.2 Java关键字、运算符和表达式 361
21.3 流程控制语句 367
21.3.1 if语句 367
21.3.2 switch 语句 368
21.3.3 循环语句 370
21.3.4 标号和转移语句 373
第22章 面向对象的Java 377
22.1 对象与类 378
22.2 类的继承关系 379
22.3 类的严格定义及修饰字 382
22.3.1 abstract 382
22.3.3 public 383
22.3.2 final 383
22.4 变量和方法 384
22.4.1 变量域 384
22.4.2 方法域 384
22.5 public、protected和private 385
22.5.1 public 385
22.5.2 protected 386
22.5.3 private 388
22.6 类继承时的变量和方法 390
22.6.1 类中变量和方法的可视范围 390
22.6.2 方法的重设和重载 392
22.7 final 394
22.7.1 final变量 394
22.7.2 final方法 395
22.8 static 395
22.9 abstract 397
22.10 异常的处理 398
22.10.1 调用堆栈 398
22.10.2 抛出异常 398
22.10.3 捕获异常 402
22.11 接口和包 403
22.11.2 Java.util 404
22.11.1 Java.lang 404
22.11.3 Java.io 405
22.11.4 Java.net 405
22.11.5 Java.awt 405
22.11.6 Java.awt.image 406
22.11.7 Java.awt.peer 406
22.11.8 Java.applet 406
第23章 多线程 407
23.1 多线程的概念 408
23.1.1 Java线程的模型 408
23.1.2 启动接口 409
23.1.3 同步 410
23.1.4 消息 411
23.2 Java线程例子 411
23.2.1 显式定义线程 411
23.2.2 多线程例子 411
23.2.3 启动一个线程 413
23.2.4 操作线程 413
23.2.5 暂停一个线程 413
23.2.6 停止一个线程 413
23.3 多线程间的通信 414
23.3.1 生产者 414
23.3.3 监视 415
23.3.2 消费者 415
23.3.4 通信方式 416
23.4 线程API列表 417
23.4.1 类函数 418
23.4.2 对象函数 418
第24章 回到VRML 419
24.1 访问Script节点 420
24.1.1 Script类 421
24.1.2 事件类 422
24.1.3 字段类方法 423
24.1.4 访问Script节点例子 423
24.2 访问场景中任意节点 431
24.2.1 节点类 432
24.2.2 类型映射 432
24.2.3 访问场景中任意节点例子 433
第25章 VRML和Java的典型结合 441
25.1 Java控制台程序 442
25.2 TimeSensor节点 444
25.3 生成动画 449
25.4 实现随机运动 461
25.5 结合proto进行原型定义 463
25.6 进行用户跟踪 474
第26章 Java用于场景的动态生成 479
26.1.1 addRoute()、deleteRoute()方法 480
26.1 浏览器类 480
26.1.2 creatVrmlFromString()方法 486
26.1.3 createVrmlFromURL()方法 490
26.2 使用线程 492
第27章 窗口环境及其应用 499
27.1 小应用程序窗口 500
27.1.1 什么是Java小应用程序 500
27.1.2 制作第一个Java小应用程序 501
27.1.3 显示字符 502
27.1.4 制作按钮 503
27.1.5 外观布局 505
27.1.6 按钮事件 508
27.1.7 按钮类型 509
27.1.8 小应用程序的生命周期 512
27.1.9 使用小应用程序控制VRML场景 513
27.1.10 action()方法 516
27.2 制作独立窗口 521
27.2.1 AWT的基本概念 521
27.2.2 组件容器 523
27.2.3 制作第一个独立窗口 525
27.2.4 弹出第一个窗口 532
27.2.5 使用窗口控制VRML场景 536
附录 547
Anchor节点 548
附录A 节点参考 548
Appearance节点 549
AudioClip节点 550
Background节点 550
Billboard节点 552
Box节点 553
Collision节点 553
Color节点 554
ColorInterpolator节点 555
Cone节点 555
CoordinateInterpolator节点 556
Coordinate节点 556
Cylinder节点 557
CylinderSensor节点 558
DirectionalLight节点 559
ElevationGrid节点 559
Extrusion节点 561
Fog节点 563
FontStyle节点 563
Group节点 565
ImageTexture节点 565
IndexedFaceSet节点 566
IndexedLineSet节点 568
LOD节点 569
Inline节点 569
Material节点 570
MovieTexture节点 571
NavigationInfo节点 572
NormalInterpolator节点 573
Normal节点 573
OrientationInterpolator节点 574
PixelTexture节点 574
PlaneSensor节点 575
PointLight节点 576
PositionInterpolator节点 577
PointSet节点 577
ScalarInterpolator节点 578
Script节点 578
Shape节点 579
Sound节点 579
SphereSensor节点 580
Text节点 581
TextureCoordinate节点 582
TimeSensor节点 582
TouchSensor节点 584
Transform节点 585
WorldInfo节点 586
VisibilitySensor节点 586
附录B 类的层次结构 587
附录C Java包常用对象及函数参考 589
C1 java.lang包 589
C1.1 java.lang.Object类 590
C1.2 java.lang.Class类 592
C1.3 java.lang.Boolean类 593
C1.4 java.lang.Character类 594
C1.5 java.lang.Number类 596
C1.6 java.lang.Integer类 596
C1.7 java.lang.Long类 598
C1.8 java.lang.Float类 600
C1.9 java.lang.Double类 601
C1.10 java.lang.Math类 603
C1.11 java.lang.String类 605
C2 java.util包 608
C2.1 java.util.Enumeration接口 609
C2.2 java.util.BitSet类 609
C2.3 java.util.Date类 611
C2.4 java.util.Dictionary类 613
C2.5 java.util.Hashtable类 614
C2.6 java.util.Observable类 616
C2.8 java.util.Random类 617
C2.7 java.util.Observer接口 617
C2.9 java.util.Stack类 618
C3 java.io包 619
C3.1 java.io.DataInput接口 619
C3.2 java.io.DataOutput接口 621
C3.3 java.io.InputStream类 622
C3.4 java.io.FileInputStream类 623
C3.5 java.io.PipedInputStream类 625
C3.6 java.io.ByteArrayInputStream类 625
C3.7 java.io.StringBufferInputStream类 627
C3.8 java.io.SequenceInputStream类 628
C3.9 java.io.FilterInputStream类 628
C3.10 java.io.BufferedInputStream类 630
C3.11 java.io.OutputStream类 631
C3.12 java.io.FileOutputStream类 632
C3.13 java.io.PipedOutputStream类 633
C3.14 java.io.ByteArrayOutputStream类 634
C3.15 java.io.PrintStream类 635
C3.16 java.io.RandomAccessFile类 637
附录D VRML包常用对象及函数参考 642
附录E VRML.FILED包常用对象及函数参考 645
附录F VRML.NODE包常用对象及函数参考 665
附录G 浏览器CP简介 667
G1 安装CP 667
G2 CP用法 667