Java3D简介
Java3D API是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性。
JAVA3D建立在JAVA2(JAVA1.2)基础之上,JAVA语言的简单性使JAVA3D的推广有了可能。它实现了以下三维显示能够用到的功能:
- 生成简单或复杂的形体(也可以调用现有的三维形体)
- 使形体具有颜色、透明效果、贴图。
- 在三维环境中生成灯光、移动灯光。
- 具有行为的处理判断能力(键盘、鼠标、定时等)。
- 生成雾、背景、声音。
- 使形体变形、移动、生成三维动画。
- 编写非常复杂的应用程序,用于各种领域如VR(虚拟现实)。
Java3D与其他三维技术的比较
JAVA3D可应用在三维动画、三维游戏、机械CAD等多个领域。但作为三维显示实现技术,它并不是唯一选择而且是一个新面孔。在Java3D之前已经存在很多三维技术,这些三维技术在实现的技术、使用的语言以及适用的情况上各有不同,我们主要介绍与Java3D又密切关系的三种技术:OpenGL、DIRECT3D、VRML
OpenGL是业界最为流行也是支持最广泛的一个底层3D技术,几乎所有的显卡厂商都在底层实现了对OpenGL的支持和优化。OpenGL同时也定义了一系列接口用于编程实现三维应用程序,但是这些接口使用C(C++)语言实现并且很复杂。掌握针对OpenGL的编程技术需要花费大量时间精力。
DIRECT3D是Microsoft公司推出的三维图形编程API,它主要应用于三维游戏的编程。众多优秀的三维游戏都是由这个接口实现。与OpenGL一样,Direct3D的实现主要使用C++语言。
VRML2.0(VRML97)自1997年12月正式成为国际标准之后,在网络上得到了广泛的应用,这是一种比BASIC、JAVASCRIPT等还要简单的语言。脚本化的语句可以编写三维动画片、三维游戏、计算机三维辅助教学。它最大的优势在于可以嵌在网页中显示,但这种简单的语言功能较弱(如目前没有形体之间的碰撞检查功能),与JAVA语言等其它高级语言的连接较难掌握,因而逐渐被淹没在竞争激烈的网络三维技术中。
技术 | 实现层次 | 开发技术(难度) | 扩展性 | 最适合应用领域 |
Java3D | 中层(JVM) | Java(较易) | J2SE标准扩展(好) | 网上三维显示实现 |
OpenGL | 底层(显卡) | C\C++(难) | 各大厂商支持(较好) | 三维设计软件 |
Direct3D | 底层(操作系统) | C++(较难) | Windows平台(差) | 三维游戏 |
VRML | 上层(网页) | 标记语言(容易) | 安装插件支持(一般) | 网上虚拟现实 |