jmonkeyengine - 3D mit Java

jmonkeyengine ist eine freie Java-3D-Engine welche vor kurzem in der Version 1.1 erschienen ist. Mit jmonkeyengine ist es auch Java-Entwicklern möglich ansprechende 3D-Inhalte zu generieren und einzubinden. Hierbei wird eine große Auswahl an 3D-Formaten unterstützt, auch sind schon einige Erweiterungen wie eine Physik-Engine und ein Editor verfügbar. Auf der Homepage von jmonkeyengine gibt es eine beträchtliche Anzahl von Grafikdemos. Damit mausert jmonkeyengine sich zum Game-Development-Toolkit für Java Entwickler.

Anbei eine „kurze“ Auflistung der unterstützten Features:

Sample Applications

  • Game system allows for maintenance of the main game loop
  • SimpleGame provides a quick entry point for proof of concepts
  • GameState provides ability to change game states (menu, game, credits, etc)

Embedded Integration

  • Java Applet
  • AWT/Swing
  • SWT through user code

Import / Export

  • Fast and compact jME binary format
  • Extensible to allow other import/export formats (XML is planned)

Bounding System

  • All geometry can be enclosed in a bounding system.
  • Boxes, Capsules and Spheres.


  • Bezier curves can be used for node controlling.

Bezier Mesh

  • For smooth curved surfaces.
  • Font Meshes
  • Ability to generate 3d meshes from fonts.


  • GLSL Shader Support
  • Vertex and Fragment Program Support (ARB Shaders)
  • High Quality Water with configurable reflection, refraction, wave generation, etc.
  • Bloom
  • Extensible Particle System.
  • Lens Flare.
  • Cloth Simulation.
  • Screen tinting.
  • Texture based dot3 bump-mapping

Image Loading

  • Support BMP, uncompressed TGA, JPG, PNG, GIF, DDS.

Texture System

  • Supports mipmapping, environmental mapping, multitexturing.

Input System

  • Robust system allows for easy creation of input actions.

Collision and Picking

  • Efficient bounding volume and triangle accurate picking and collision.

Lighting System

  • Handles up to eight lights at a time with utilities for optimal light selection.
  • Supports directional light, spot light and point light.

Shadow System

  • Z-Pass Shadow Volumes.

Math Library

  • Provides faster system for linear algebra
  • Use of look up tables.

Level of Detail

  • Discrete Level of Detail using a switching mechanism for fast model switching.
  • Continuous Level of Detail dynamically collapses triangles of a single model.

Model Loading

  • COLLADA, 3DS, Obj, MD2, MD3, Milkshape, ASE support.
  • Supports skin and bones and weighted skeletal animation.

Shape Primitives

  • Box, Sphere, Cylinder, Capsule, Torus, Arrow, Disk, Hexagon, Dodecahedron, Icosahedron, Octahedron, PQTorus, Pyramid and Quad support.

State System

  • Minimizes OpenGL state changes by tracking and managing the status of the OpenGL machine.
  • Allows merging of Texture and Light states in the tree.

Camera System

  • Maintains camera as a separate object or a node in the scene.
  • Frustum culling for efficiency.

Renderer Abstraction

  • Allows for any rendering API to be implemented.
  • Currently LWJGL 1.0 implemented.

Render Queue

  • Sorts scene elements based on Opacity. Opaque are sorted front to back and rendered first, then transparent is sorted back to front, last screen elements are sorted by z depth.

Render to Texture

  • Render any scene to a texture object (currently requires FBO support)


  • Render to texture used to display a single model to a texture, can be animated as slow as needed to increase frame rate.

Billboard Node

  • Keeps a node facing the camera


  • Supports OpenAL and FMOD
  • Music queue system


  • Terrain blocks act as single geometry.
  • Terrain Pages implements a Quad tree of Terrain blocks.

User Interface

  • JMEDesktop System allows rendering of Swing components in jME scenes.

Kommentar schreiben:




How neat! Is it rellay this simple? You make it look easy.