基于JAVA3D的网络三维技术的设计
关键字:Java3D、Web3D、三维
基于Java3D的网络三维技术的设计与实现
摘要:互联网的出现及飞速发展使IT业的各个领域发生了深刻的变化,它必然引发一些新技术的出现。3D图形技术并不是一个新话题,在图形工作站以至于PC机上早已日臻成熟,并已应用到各个领域。然而互联网的出现,却使3D图形技术发生了和正在发生着微妙而深刻的变化。Web3D协会(前身是VRML协会)最先使用Web3D术语,这一术语的出现反映了这种变化的全貌,没有人能严格定义Web3D,在这里我们把Web3D理解为:互联网上的3D图形技术,互联网代表了未来的新技术,很明显,3D图形和动画将在互联网上占有重要的地位。
Java3DAPI是Sun定义的用于实现3D显示的接口。使用Java的重要理由之一是它的平台无关性。Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性
本文以Java3D为开发平台,利用Java语言强大的网络功能,实现了在网页上对3D动画进行显示和操作。
第一章绪论
§1.1引言
互联网的出现及飞速发展使IT业的各个领域发生了深刻的变化,它必然引发一些新技术的出现。3D图形技术并不是一个新话题,在图形工作站以至于PC机上早已日臻成熟,并已应用到各个领域。然而互联网的出现,却使3D图形技术发生了和正在发生着微妙而深刻的变化。Web3D协会(前身是VRML协会)最先使用Web3D术语,这一术语的出现反映了这种变化的全貌,没有人能严格定义Web3D,在这里我们把Web3D理解为:互联网上的3D图形技术,互联网代表了未来的新技术,很明显,3D图形和动画将在互联网上占有重要的地位。
§1.2互联网3D图形技术的应用
当前,互联网上的图形仍以2D图像为主流。但是,3D图形必将在互联网上占有重要地位。互联网上的交互式3D图形技术---Web3D正在取得新的进展,正在脱离本地主机的3D图形,而形成自己独立的框架。互联网的需求是它发展的动力。互联网的内容提供商和商业网站不断使用新的工具与技术使网站更具吸引力,Web3D图形是最新的和最具魅力的技术。Web3D图形将在互联网上有广泛应用,从目前的趋势来看主要有
第二章Java3D技术的简介
Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本章将介绍Java3D特有的两个重要概念:场景图(SceneGraph)、观察模式(ViewModel)。在接口使用上的介绍分为两部分:说明如何使用Java3D接口;说明如何将Java3D技术与Java原有的Web技术(JSP、Serverlet)相结合,在网页上实现三维显示
§2.2Java3D的场景图结构
Java3D实际上是Java语言在三维图形领域的扩展,与Java一样,Java3D有纯粹的面向对象结构。Java3D的数据结构采用的是SceneGraphsStructure(场景图),就是一些具有方向性的不对称图形组成的树状结构(图1)。
实际由Java3D定义的一系列的对象,这些对象不是杂乱无序,对象之间也不是毫无关系。如果想让三维图像正常显示,必须在这两点上遵循Java3D场景图的规定。观察图1,Java3D场景图的树结构由各种各样的对象组成:
在图中出现的这些对象都实现了Java3D中有重要的意义的类,从逻辑上我将它们分为三类
§2.3实现三维世界
2.3.1Java3D的观察模式
Java3D引入了一种新的观察模式,这种模式使Java编写的显示效果符合"编写一次,随处运行"的原则。Java3D还把这种功能推广到显示设备或六等级自由度输入外部设备,例如跟踪摄像头。这种新的观察模式的"一次编写,随处观察"的特性意味着用Java3D观察模式编写的应用程序和Applet可以广泛应用于各种各样的显示设备。在不修改场景图的条件下,图像可以在包括标准电脑显示、多放射显示空间和安装摄像头设备的显示设备上被渲染。这也意味着在不需要修改场景图的情况下,同一个应用程序既能够渲染立体景象,还能通过摄像头的输入控制渲染过的观察图。Java3D的观察模式通过完全分离虚拟和现实世界来实现这种多功能性。这种模式区分了以下两种情况:
1.一个应用程序通过控制观察平台的位置和方向在虚拟宇宙中对一个观察台对象(ViewPlatform)定位、定向和设定比例尺;
2.渲染器使用已知位置和方向计算出要使用的观察对象,对终端用户物理环境的描述确定用户在物理环境中的位置和方向。
为什么使用一个新的模式,由于在底层的编程接口中可以找到基于照相机的观察模式,开发者通过它可以控制所有渲染图的参数。它可以应付处理常规的应用程序,但是处理有更广阔的适应性的系统的时候就显得力不从心,这些系统包括:把整个世界作为一个单元装入和显示的观察器或浏览器、可供终端用户观察、操纵、显示、甚至与虚拟世界交互的系统。
目录
基于Java3D的网络三维技术的设计与实现..........................1
第一章绪论..................................................4
§1.1引言...........................................................4
§1.2互联网3D图形技术的应用........................................4
§1.3JAVA3D在Web中的成功...........................................5
第二章Java3D技术的简介......................................6
§2.1Java3D概述....................................................6
2.1.1Java3D简介.................................................6
2.1.2Java3D与其他三维技术的比较.................................6
§2.2Java3D的场景图结构............................................7
2.2.1虚拟宇宙(VirtualUniverse)...............................9
2.2.2Java3D的坐标系统...........................................9
2.2.3场景(Locale)............................................10
§2.3实现三维世界..................................................11
2.3.1Java3D的观察模式..........................................11
2.3.2Java3D中用来定义观察的对象................................12
2.3.3在三维世界中建立、移动观察点..............................14
2.3.4Java3D的网络基础..........................................15
第三章实现JAVA3D结构体系的方法..............................15
§3.1总体设计......................................................15
§3.2基本形体的生成................................................15
3.2.1平板的生成..................................................15
3.2.2立方体的生成...............................................16
3.2.3圆锥的生成.................................................16
3.2.4球体的生成.................................................16
3.2.5.圆柱体的生成...............................................17
§3.3点、线、面的生成..............................................17
3.3.1点的生成....................................................17
3.3.2直线的生成..................................................18
3.3.3面的生成....................................................18
§3.4外部复杂形体的调用............................................18
§3.5背景变换的实现方法............................................19
3.5.1灯光.......................................................19
3.5.2纹理贴图...................................................20
3.5.3雾.........................................................21
§3.6动画的生成....................................................21
第四章JAVA3D场景的实现.......................................21
§4.1Java3D的实现流程..............................................21
§4.2JAVA3D的建模.................................................22
4.2.1生成场景:............22
4.2.2Temple的圆柱体的构建.......................................22
4.2.3Tower的构建................................................24
§4.3动画的实现....................................................25
4.3.1调用galleon.obj文件.......................................25
4.3.2物体转动...................................................26
4.3.3场景的移动..................................................27
§4.4背景变换......................................................28
4.4.1创建灯光...................................................28
4.4.2创建背景图片...............................................31
4.4.3指数雾.....................................................32
4.4.4背景音乐...................................................33
§4.5在网页上显示3D图形...........................................34
第五章实践和展望............................................34
§5.1Web3D技术发展前景............................................34
§5.2论文总结......................................................35