3.1 跨平台三维图形开发工具包Java 3D
官方主页:https://java3d.dev.java.net/
Java 3D严格遵循“建模-绘制”泛型。场景图(scene graph)的 抽象模型被用来组织和维护虚拟场景中的可是对象及其行为。场景图包含了虚拟图形世界的全部信息,Java 3D绘 制引擎会对场景图进行自动绘制。
Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs on top of either OpenGL or Direct3D. Since version 1.2, Java 3D is developed under the Java Community Process. JSR 926 specifies Java 3D 1.4; as of 2007, the current version is 1.5.1 (released in June 2007).
Compared to other solutions, Java 3D is not only a wrapper around these graphics APIs, but an interface that encapsulates the graphics programming using a real, object-oriented concept. Here a scene is constructed using a scene graph that is a representation of the objects that have to be shown. This scene graph is structured as a tree containing several elements that are necessary to display the objects. Additionally, Java 3D offers extensive spatialized sound support.
Java 3D and its documentation are available for download separately. They are not part of the JDK 6. However,future versions of the JDK are expected to include an API package for Java 3D.
Java 3D开源项目包含一组3D图形API, 它提供的一组面向对象接口支持简单、高级编程模型,你可以用于构建、展示和控制3D对象的行为与可 视化环境。Java3D项目包括j3d-core(Java3D API的核心)、 vecmath(3D矢 量数学包)、j3d-core-utils(Java3D核 心utilitie)、Java3D VRML97 Loader等子项目。
Java 3D是Sun公司开发的一种适用于Internet环 境的跨平台三维图形开发工具包,也是一个交互式三维图形应用编程接口(API),同时具有图像处 理、绘制2D图形、交互式用户界面设计等功能。
Java 3D是对Java的一个用来显示三维图形的扩展,用Java 3D编写的程序可以运行在很多不同类型的计算机或互联网上。Java 3D类 库提供了比其它多数图形库更简单的接口,但仍有足够的能力制作不错的游戏和动画。Java 3D建 立在DirectX和OpenGL这些已有 的技术上,所以程序运行并不是你所想像的那样慢,并且Java 3D中也可以加入使用诸如TrueSpace和VRML这 些3D模型包创建的物件。
Java 3D对底层的OpenGL和DirectX图 形库进行了封装。Java本身多具有的强大网络功能通过与OpenGL和DirectX强 大的图形、图像处理功能相结合,使得Java语言的三维图形可以通过浏览器在Internet上 显示。同时,Java 3D与Java一 样、一次编程便可跨平台运行。用Java 3D生成的代码具有可传输性,即从服务器端到客户端传输 的是生成三维图形的程序和数据(Applet),而不是图形本身。这样,就可以大大较少网络传输数 据量。客户端从服务器端下载相应的Applet,由Java 3D运 行环境解释执行,并在执行过程中不断从服务器端获取控制图形变换的数据,即可生成动态的三维图形。Java 3D能 够对场景的可视化进行并行计算与优化,能够自动应用计算机硬件的加速功能,并提高图形显示的效率,能够对场景进行预编译。
在Eclipse 3.3.2中配置Java3D 1.5.2的基本方法:
(1) 下载Java3D安装包de>j3d-1_5_2-XXX.zipde>de>,并解压到当前目录,得到一个j3d-1_5_2-XXXde>文 件夹,解压该文件夹下的j3d-jre.zip压缩包,得到两个bin和lib两 个子文件夹。
( 2 )新建一 个 Java3D 的项目工程,然后将 lib/ext 子目录下的 j3dcore.jar 、 j3dutils.jar 和 vecmath.jar 三个 JAR 包添加到当前项目的工作路径下。再将 bin 目录 下的四个 DLL 文件拷贝到当前项目文件夹下,即 src 文件夹所在的文件夹下。3.2 开源JOGL
官方主页:https://jogl.dev.java.net/
The JOGL project hosts the development version of the Java? Binding for the OpenGL? API (JSR-231), and is designed to provide hardware-supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 2.0 specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets. It is part of a suite of open-source technologies initiated by the Game Technology Group at Sun Microsystems.
3.3 开源LWJGL
官方主页:http://new.lwjgl.org/
LWJGL(Lightweight Java Game Library)是一套面向专业和业余程序员的具有商业级品质的Java程 序,为开发者提供简单易用的API来访问OpenGL和OpenAL(Open Audio Library),另外还支持游戏手柄(Gamepads, Steering wheel和操纵杆)的API。LWJGL并 不意味着编写游戏会更简单,LWJGL是想把一些游戏库整合到一起。
3.4 开源Java Monkey Engine(jME)及 其情景图编辑器Monkey World 3D
jME官 方主页:http://www.jmonkeyengine.com/
Monkey World 3D官方主页:http://mw3d.org/
jME (jMonkey Engine) is a high performance scene graph based graphics API. Much of the inspiration for jME comes from David Eberly's book 3D Game Engine Design.jME was built to fulfill the lack of full featured graphics engines written in Java. Using a abstraction layer, it allows any rendering system to be plugged in. Currently, LWJGL is supported with plans for JOGL support in the near future.
jME(jMonkey Engine)是一个基于场景图(scene graph)、高性能 的图形API。jME设计的思想主要来源于David Eberly所写的《3D Game Engine Design》 一书。jME是一个使用Java语言编写的 图形绘制引擎。通过使用一个抽象层,jME支持任意的绘制系统。jME当 前使用LWJGL作为底层绘制引擎,将来会增加对JOGL的 支持。
MonkeyWorld3D是 一个用于Java 3D游戏引擎jMonkeyEngine(jME) 的情景图编辑器。可以利用MonkeyWorld3D编辑情景元素,地形,动画等。它的目标是成为 一个 WYSIWYP(What you see is what you play)游戏编辑器。
3.5 开源Xith3D
官方主页:http://xith.org/
Xith3D是 一款基于JOGL (JSR-231)和LWJGL, 支持AWT、Swing、SWT和QT-Jambi, 其目的是提供一个创建三维交互环境的工具箱,可以用来进行游戏、数据可视化、三维环境原型开发。
3.6 开源Aviatrix3D Toolkit
官方主页:http://aviatrix3d.j3d.org/
Aviatrix3D Toolkit. It is a pure retained-mode Java scene graph API over the top of Java OpenGL bindings (JSR 231) and OpenAL Java bindings (for spatialised audio support). It supports lightweight and heavyweight rendering in both AWT and SWT environments.
3.7 开源Java3d-eclipse插 件
官方主页:http://java3d-eclipse.sourceforge.net/
Java3d-eclipse project bundles java3d as a plugin for eclipse. The plugin can be used for developing other plugins and RCP applications. The idea is to have a convenient way of incorporating java3d into RCP application.
Java3d-eclipse项 目将Java3D封装成一个Eclipse插 件,便于开发其它集成Java3D的插件和RCP应 用。
3.8 开源3D场 景编辑工具J3DWorkbench
官方主页:http://eclectic3d.net/
J3DWorkbench是 一个可扩展、实时、所见即所得3D可视化场景与游戏设计制作工具,集成了Java3D和Eclipse RCP框架,支持拖放编辑复杂Java3D场景图片,三维场景快速成 型。
3.9 免费非开源纹理贴图引擎jPCT(优 秀的贴图处理功能)
官方主页:http://www.jpct.net/index.php
jPCT is a texture mapping 3d engine/API for java featuring gouraud shading, filtering, environment mapping, bump mapping, support for openGL via LWJGL.
支持3DS、OBJ、MD2、ASC and XML等格式文件的加载。
3.10 开源实时3D引 擎Espresso3D
官方主页:http://www.espresso3d.com/
Espresso3D is a high performance real-time 3D engine for the Java programming language. E3D is not just a scene graph. It aims to be a complete solution for your application with OpenGL rendering, OpenAL audio, collision detection, input, and rendering support.
3.11 已不再更新的Java实 现的3DS文件加载类库
(1)Java3D 3DS FileLoader
网址:http://sourceforge.net/projects/java3dsloader
Java3D 3DS FileLoader for platforms supporting JDK1.4 and Java 3D Highly functional, multiplatform 3DS File format loader Supports: Heirarchical animation Cameras Point Lights Directional Lights Textures Smooth Groups and other features.
(2)Loader3DS扩 展类库XithLoader3DS
网址:http://www.mnstarfire.com/download/inspector3ds.html
下载主页:http://www.kinostudios.com/java/3dsloader/
Inspector3DS/Loader3DS is a port (with permission) of an excellent 3DS loader for Java3D by Josh DeFord(Java3D 3DS FileLoader).利 用Loader3ds这个工具,可以把3DS里 面的模型导入到应用程序中。
参考网址:http://space.itpub.net/14734416/viewspace-446973
(3)Hyperview3d
网址:http://sourceforge.net/projects/hyperview3d/
Hyperview3d allows the visualization of hyperbolic geometry models. Specifically the Klein, Poincare, Weierstrass and Gans model. It allows switching between one model to the other and user defined texture mapping onto the 3D model.
3.12 开源OGRE 3D与ogre4j(OGRE的Java版)
官方主页:(1)http://www.ogre3d.org/
(2)http://ogre4j.sourceforge.net/(Java版)
OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. OGRE 3D 是一个被广泛使用的开源三维图形渲染 库,成功地被应用于诸多三维仿真领域,其中包括网络游戏和一些商业的三维仿真项目。
ogre4j is a project that enables the use of the OGRE (Object-Oriented Graphics Rendering Engine) library through JNI in Java applications.