VRML(虚拟现实建模语言)用来在网络上创建逼真的三维虚拟场景。它改变了网络上2D画面的状况,并能实现3D动画效果,特别是改变了当前网络与用户交互的局限性,使得人机交互更加方便,这样虚拟世界的真实性、交互性、动态性得到更充分体现。众所周知,Java是一种面向网络的程序设计语言,通过Java语言可以为网页添加上各式各样的特效,使得网页更加丰富多彩。这两种语言的结合将使得网页的创建更加完善。
本书全面介绍了VRML的语法和用法,以及将VRML与Java相结合创建虚拟世界的技术与实例,适合中级程序员以及从事VRML和Java开发与应用的广大读者阅读。
第1章 VRML简介\r\n\r\n1.1 虚拟现实技术\r\n1.2 VRML的发展历史\r\n1.3 VRML的强大功能与诱人前景\r\n1.3.1 VRML的功能概述\r\n1.3.2 VRML的发展前景\r\n1.4 简单示例\r\n1.5 VRML文件开发工具和浏览器简介\r\n1.5.1 开发工具\r\n1.5.2 浏览器\r\n\r\n第2章 VRML文件\r\n\r\n2.1 文件结构\r\n2.1.1 VRML文件扩展名及文件头\r\n2.1.2 原型、造型、脚本和路由\r\n2.2 文件的基本内容\r\n2.2.1 节点和域\r\n2.2.2 程序注释\r\n\r\n第3章 基本造型\r\n\r\n3.1 Shape节点\r\n3.2 简单物体造型节点\r\n3.2.1 Box节点\r\n3.2.2 Sphere节点\r\n3.2.3 Cone节点\r\n3.2.4 Cylinder节点\r\n3.3 编组节点\r\n3.4 复杂应用\r\n3.4.1 使用多个造型节点\r\n3.4.2 多次使用同一节点\r\n\r\n第4章 造型的空间变换\r\n\r\n4.1 基本概念\r\n4.1.1 计量单位\r\n4.1.2 空间坐标系\r\n4.2 Transform节点语法\r\n4.3 平移\r\n4.3.1 不同方向上的平移\r\n4.3.2 创建多个平移坐标系\r\n4.3.3 平移的嵌套\r\n4.4 旋转\r\n4.4.1 不同方向上的旋转\r\n4.4.2 创建多个旋转坐标系\r\n4.4.3 旋转坐标系的嵌套\r\n4.4.4 指定中心的旋转\r\n4.5 缩放\r\n4.5.1 不同方向上的缩放\r\n4.5.2 创建多个缩放坐标系\r\n4.5.3 指定中心的缩放\r\n4.5.4 缩放的嵌套\r\n4.5.5 指定缩放的方向\r\n\r\n第5章 文本造型的创建\r\n\r\n5.1 Text节点\r\n5.2 FontStyle节点\r\n5.3 综合应用\r\n5.3.1 创建多文本造型\r\n5.3.2 将文本和基本造型结合\r\n\r\n第6章 空间效果设定\r\n\r\n6.1 空间背景\r\n6.1.1 Backgroud节点\r\n6.1.2 添加背景\r\n6.2 空间大气效果\r\n6.2.1 Fog节点\r\n6.2.2 雾的应用\r\n\r\n第7章 添加声音\r\n\r\n7.1 声音节点\r\n7.1.1 AudioClip节点\r\n7.1.2 MovieTexture节点\r\n7.1.3 Sound节点\r\n7.2 使用声音节点\r\n\r\n第8章 造型的外观控制\r\n\r\n8.1 基本概念\r\n8.1.1 颜色外观\r\n8.1.2 其他外观效果\r\n8.2 控制外观\r\n8.2.1 Material节点\r\n8.2.2 节点应用\r\n\r\n第9章 用点线面构造造型\r\n\r\n9.1 使用点来构造造型\r\n9.1.1 PointSet节点\r\n9.1.2 节点应用\r\n9.2 使用线来构造造型\r\n9.2.1 IndexedLineSet节点\r\n9.2.2 用线构成的造型\r\n9.3 使用面来构造造型\r\n9.3.1 IndexedFaceSet节点\r\n9.3.2 面的应用\r\n\r\n第10章 复杂造型\r\n\r\n10.1 创建海拔栅格\r\n10.1.1 ElevationGrid节点\r\n10.1.2 海拔栅格的创建\r\n10.2 创建挤出造型\r\n10.2.1 Extrusion节点\r\n10.2.2 挤出造型的创建\r\n\r\n第11章 纹理映射\r\n\r\n11.1 有关纹理映射\r\n11.2 纹理节点\r\n11.2.1 ImageTexture节点\r\n11.2.2 PixelTexture节点\r\n11.2.3 MovieTexture节点\r\n11.3 纹理坐标节点\r\n11.3.1 TextureCoordinate节点\r\n11.3.2 TextureTransform节点\r\n11.4 映射纹理\r\n\r\n第12章 光照效果\r\n\r\n12.1 有关知识\r\n12.1.1 光源\r\n12.1.2 光源颜色\r\n12.1.3 光线\r\n12.2 节点介绍\r\n12.2.1 PointLight节点\r\n12.2.2 DirectionalLight节点\r\n12.2.3 SpotLight节点\r\n12.3 节点应用\r\n\r\n第13章 视点控制\r\n\r\n13.1 有关视点及导航\r\n13.2 节点介绍\r\n13.2.1 Viewpoint节点\r\n13.2.2 NavigationInfo节点\r\n13.3 控制视点\r\n\r\n第14章 明暗控制\r\n\r\n14.1 Normal节点\r\n14.2 IndexedFaceSet节点\r\n14.3 ElevationGrid节点\r\n\r\n第15章 实现动画效果\r\n\r\n15.1 时间传感器\r\n15.2 控制动画的插补器\r\n15.2.1 ColorInterpolator节点\r\n15.2.2 CoordinateInterpolator节点\r\n15.2.3 NormalInterpolator节点\r\n15.2.4 PositionInterpolator节点\r\n15.2.5 ScalarInterpolator节点\r\n15.2.6 OrientationInterpolator节点\r\n\r\n第16章 在点、线、面和坐标上着色\r\n\r\n16.1 节点介绍\r\n16.1.1 Color节点\r\n16.1.2 PointSet节点\r\n16.1.3 IndexedLineSet节点\r\n16.1.4 IndexedFaceSet节点\r\n16.1.5 ElevationGrid节点\r\n16.2 给坐标着色\r\n\r\n第17章 实现交互功能\r\n\r\n17.1 触动检测器\r\n17.1.1 TouchSensor节点\r\n17.1.2 PlaneSensor节点\r\n17.1.3 CylinderSensor节点\r\n17.1.4 SphereSensor节点\r\n17.2 感知检测器\r\n17.2.1 VisibilitySensor节点\r\n17.2.2 ProximitySensor节点\r\n17.2.3 Collision节点\r\n\r\n第18章 简单脚本\r\n\r\n18.1 Script节点\r\n18.2 使用Script节点处理事件\r\n18.3 使用Script节点控制动画\r\n\r\n第19章 VRML的Java支持\r\n\r\n19.1 认识Java\r\n19.1.1 Java历史\r\n19.1.2 Java的现状\r\n19.1.3 Java的特征\r\n19.2 Script节点\r\n19.3 动态场景\r\n19.3.1 用VrmlScript操纵场景\r\n19.3.2 用Java程序操纵场景\r\n19.4 Script节点和Java程序之间的通信方式\r\n19.4.1 从VRML场景到Java代码\r\n19.4.2 Java程序对VRML场景的控制\r\n\r\n第20章 Java开发环境\r\n\r\n20.1 Java Developers Kit(JDK)\r\n20.1.1 JDK的安装\r\n20.1.2 Java程序的编译\r\n20.1.3 使用Java调试器\r\n20.1.4 Java程序的执行\r\n20.2 编制Java程序\r\n\r\n第21章 Java编程基础\r\n\r\n21.1 Java数据类型\r\n21.1.1 基本数据类型\r\n21.1.2 数组类型\r\n21.2 Java关键字、运算符和表达式\r\n21.3 流程控制语句\r\n21.3.1 if语句\r\n21.3.2 switch语句\r\n21.3.3 循环语句\r\n21.3.4 标号和转移语句\r\n\r\n第22章 面向对象的Java\r\n\r\n22.1 对象与类\r\n22.2 类的继承关系\r\n22.3 类的严格定义及修饰字\r\n22.3.1 abstract \r\n22.3.2 final\r\n22.3.3 public\r\n22.4 变量和方法\r\n22.4.1 变量域\r\n22.4.2 方法域\r\n22.5 public、protected和private\r\n22.5.1 public\r\n22.5.2 protected\r\n22.5.3 private\r\n22.6 类继承时的变量和方法\r\n22.6.1 类中变量和方法的可视范围\r\n22.6.2 方法的重设和重载\r\n22.7 final\r\n22.7.1 final变量\r\n22.7.2 final方法\r\n22.8 static\r\n22.9 abstract\r\n22.10 异常的处理\r\n22.10.1 调用堆栈\r\n22.10.2 抛出异常\r\n22.10.3 捕获异常\r\n22.11 接口和包\r\n22.11.1 Java.lang\r\n22.11.2 Java.util\r\n22.11.3 Java.io\r\n22.11.4 Java.net\r\n22.11.5 Java.awt\r\n22.11.6 Java.awt.image\r\n22.11.7 Java.awt.peer\r\n22.11.8 Java.applet\r\n\r\n第23章 多线程\r\n\r\n23.1 多线程的概念\r\n23.1.1 Java线程的模型\r\n23.1.2 启动接口\r\n23.1.3 同步\r\n23.1.4 消息\r\n23.2 Java线程例子\r\n23.2.1 显式定义线程\r\n23.2.2 多线程例子\r\n23.2.3 启动一个线程\r\n23.2.4 操作线程\r\n23.2.5 暂停一个线程\r\n23.2.6 停止一个线程\r\n23.3 多线程间的通信\r\n23.3.1 生产者\r\n23.3.2 消费者\r\n23.3.3 监视\r\n23.3.4 通信方式\r\n23.4 线程API列表\r\n23.4.1 类函数\r\n23.4.2 对象函数\r\n\r\n第24章 回到VRML\r\n\r\n24.1 访问Script节点\r\n24.1.1 Script类\r\n24.1.2 事件类\r\n24.1.3 字段类方法\r\n24.1.4 访问Script节点例子\r\n24.2 访问场景中任意节点\r\n24.2.1 节点类\r\n24.2.2 类型映射\r\n24.2.3 访问场景中任意节点例子\r\n\r\n第25章 VRML和Java的典型结合\r\n\r\n25.1 Java控制台程序\r\n25.2 TimeSensor节点\r\n25.3 生成动画\r\n25.4 实现随机运动\r\n25.5 结合proto进行原型定义\r\n25.6 进行用户跟踪\r\n\r\n第26章 Java用于场景的动态生成\r\n\r\n26.1 浏览器类\r\n26.1.1 addRoute()、deleteRoute()方法\r\n26.1.2 creatVrmlFromString()方法\r\n26.1.3 createVrmlFromURL()方法\r\n26.2 使用线程\r\n\r\n第27章 窗口环境及其应用\r\n\r\n27.1 小应用程序窗口\r\n27.1.1 什么是Java小应用程序\r\n27.1.2 制作第一个Java小应用程序\r\n27.1.3 显示字符\r\n27.1.4 制作按钮\r\n27.1.5 外观布局\r\n27.1.6 按钮事件\r\n27.1.7 按钮类型\r\n27.1.8 小应用程序的生命周期\r\n27.1.9 使用小应用程序控制VRML场景\r\n27.1.10 action()方法\r\n27.2 制作独立窗口\r\n27.2.1 AWT的基本概念\r\n27.2.2 组件容器\r\n27.2.3 制作第一个独立窗口\r\n27.2.4 弹出第一个窗口\r\n27.2.5 使用窗口控制VRML场景\r\n\r\n附录\r\n\r\n附录A 节点参考\r\n\r\nAnchor节点\r\nAppearance节点\r\nAudioClip节点\r\nBackground节点\r\nBillboard节点\r\nBox节点\r\nCollision节点\r\nColor节点\r\nColorInterpolator节点\r\nCone节点\r\nCoordinate节点\r\nCoordinateInterpolator节点\r\nCylinder节点\r\nCylinderSensor节点\r\nDirectionalLight节点\r\nElevationGrid节点\r\nExtrusion节点\r\nFog节点\r\nFontStyle节点\r\nGroup节点\r\nImageTexture节点\r\nIndexedFaceSet节点\r\nIndexedLineSet节点\r\nInline节点\r\nLOD节点\r\nMaterial节点\r\nMovieTexture节点\r\nNavigationInfo节点\r\nNormalInterpolator节点\r\nNormal节点\r\nOrientationInterpolator节点\r\nPixelTexture节点\r\nPlaneSensor节点\r\nPointLight节点\r\nPointSet节点\r\nPositionInterpolator节点\r\nScalarInterpolator节点\r\nScript节点\r\nShape节点\r\nSound节点\r\nSphereSensor节点\r\nText节点\r\nTextureCoordinate节点\r\nTimeSensor节点\r\nTouchSensor节点\r\nTransform节点\r\nVisibilitySensor节点\r\nWorldInfo节点\r\n\r\n附录B 类的层次结构\r\n\r\n附录C Java包常用对象及函数参考\r\n\r\nC1 java.lang包\r\nC1.1 java.lang.Object类\r\nC1.2 java.lang.Class类\r\nC1.3 ja.lang.Boolean类\r\nC1.4 ja.lang.Character类\r\nC1.5 java.lang.Number类\r\nC1.6 java.lang.Integer类\r\nC1.7 java.lang.Long类\r\nC1.8 java.lang.Float类\r\nC1.9 java.lang.Double类\r\nC1.10 java.lang.Main类\r\nC1.11 java.lang.String类\r\nC2 java.util包\r\nC2.1 java.util.Enumeration接口\r\nC2.2 java.util.BitSet类\r\nC2.3 java.util.Date类\r\nC2.4 java.util.Dictionary类\r\nC2.5 java.util.Hashtable类\r\nC2.6 java.util.Observable类\r\nC2.7 java.util.Observer接口\r\nC2.8 java.util.Random类\r\nC2.9 java.util.Stack类\r\nC3 java.io包\r\nC3.1 java.io.DataInput接口\r\nC3.2 java.io.DataOutput接口\r\nC3.3 java.io.InputStream类\r\nC3.4 java.io.FileInputStream类\r\nC3.5 java.io.PipedInputStream类\r\nC3.6 ja.io.ByteArrayInputStream类\r\nC3.7 java.io.StringBufferInputStream类\r\nC3.8 ja.io.SequenceInputStream类\r\nC3.9 java.io.FilterInputStream\r\nC3.10 java.io.BufferedInputStream类\r\nC3.11 java.io.OutputStream类\r\nC3.12 java.io.FileOutputStream类\r\nC3.13 java.io.PipedOutputStream类\r\nC3.14 java.io.ByteArrayOutputStream类\r\nC3.15 java.io.PrintStream类\r\nC3.16 ja.io.RandomAccessFile类\r\n\r\n附录D VRML包常用对象及函数参考\r\n附录E VRML.FILED包常用对象及函数参考\r\n附录F VRML.NODE包常用对象及函数参考\r\n附录G 浏览器CP简介\r\n\r\nG1 安装CP\r\nG2 CP用法
随着现代科学技术的飞速发展, 人类社会已经进入了信息时代, 而作为其核心技术的计算机技术经过50多年的发展, 已广泛应用于商业. 军事. 社会生活等各个领域. 特别是网络的迅速发展, 已经深入到各家各户, 静态的HTML网页已不能满足用户的需求和设计者的要求, 所以VRML应运而生.
VRML, 即虚拟现实建模语言, 是一种三维造型和渲染的图形描述性语言, VRML支持的三维动画, 实时交互功能大大地改变了原来万维网上单调. 交互性差的弱点, 创建的是可进入. 可参与的三维虚拟世界.
Java是一种简单的面向对象的. 分布式的. 解释的. 健壮的. 安全的. 结构中立的. 可移植的. 性能优异的. 多线程的动态语言, 这种面向网络的程序设计语言使得网页更加生动, 丰富多彩.
这两种语言的结合将使得在网络上创建的虚拟世界更加真实. 更加生动, 而人机交互也将更加方便, 实时性更强. 但由于VRML的历史短暂, 应用还不是很普遍, 当前市场上有关这方面的书籍很少. 而本书就是介绍如何将这两种功能强大的网络开发工具结合起来的, 以满足广大读者的需求.
本书整体上分为3部分. 第一部分主要介绍有关VRML的基本知识和基本用法, 第二部分主要介绍Java程序设计基础, 第三部分则介绍VRML和Java的结合使用.
全书共27章. 前18章为第一部分内容, 介绍了VRML所提供的大量节点语法和用法, 除了文字介绍外, 大部分节点均通过实例详细说明.
第19章至第23章为第二部分内容, 是有关Java程序设计的简单介绍, 其中包括Java开发平台的介绍.
第24章至第27章则为第三部分内容, 详细介绍了VRML和Java结合的多种方法, 并通过一些有关实例进行说明以便于读者理解.
由于Java和VRML的平台无关性, 这些例子适用于绝大部分的操作系统. 因此本书尽可能地提供完整的例子, 读者可以尝试在自己的计算机上实现网络虚拟世界.
本书由赛博科技工作室编著, 陆昌辉. 王建明. 仇刚. 蔡勇. 霍精明. 倪文志. 彭志宇. 戴超凡. 肖防. 叶鹏. 唐九阳等编写. 由于作者水平有限, 书中肯定会有许多不足之处, 恳请广大读者提出批评和建议.