

= jMonkeyEngine 3.0 Feature Overview

See also: link:http://www.jmonkeyengine.com/forum/index.php?topic=13057.0[Feature comparison] and <<jme3/requirements#,requirements>>.



== Software Development Kit: jMonkeyEngine SDK

*  <<sdk/project_creation#,Creates jME3-ready Java projects>> 
**  Preconfigured classpath
**  Bundled with compatible JDK
**  link:http://hub.jmonkeyengine.org/forum/topic/bundling-blender[Bundled with Blender conversion tools and more]
**  <<jme3/advanced/asset_manager#,Asset Manager>> for loading multi-media files and 3D models +
including asset name code completion
**  <<sdk/default_build_script#,Non-proprietary Ant build scripts>>
**  jME3-ready Javadoc popups, <<sdk/sample_code#,sample code projects>>, and code snippet palette 

*  <<sdk/code_editor#,Full-featured Java and XML code editor>>
*  <<sdk/update_center#,Plugins>>
**  <<sdk/version_control#,File Version Control>>
**  <<sdk/debugging_profiling_testing#,Debugger and Profiler (optional)>>
**  <<sdk/model_loader_and_viewer#,Converters and Importers for game assets (3D models etc)>>
**  <<sdk/scene_composer#,3D Scene Viewer and Scene Composer>>
**  <<sdk/material_editing#,Material editor>>  
**  Shader Node editor
**  <<sdk/terrain_editor#,Terrain generation, painting, and editing>>
**  <<jme3/external/fonts#,Custom font creator>>
**  <<sdk/asset_packs#,Support for custom Asset Packs with your models, textures, and more>>
**  <<sdk/neotexture#,Procedural texture creator (NeoTexture)>>
**  <<jme3/advanced/level_of_detail#,Level of Detail (LOD) generator>>
**  <<sdk#,... and much more...>>

*  <<sdk/application_deployment#,Deployment>>
**  Generates desktop executables for Win, Mac, Linux
**  Generates mobile executables for <<jme3/android#,Android>>, iOS support is in the works.
**  Generates JNLP WebStart and Java Browser Applets

*  <<sdk/whynoteclipse#,Based on the NetBeans Platform>>
**  Supports all NetBeans IDE plugins



== Physics

*  <<jme3/advanced/physics#,JBullet physics binding>>
**  <<jme3/advanced/walking_character#,Physical characters>>
**  <<jme3/advanced/hinges_and_joints#,Physical joints and hinges>>
**  <<jme3/advanced/vehicles#,Ray-cast vehicle>>
**  <<jme3/advanced/ragdoll#,Ragdoll physics>>

*  <<jme3/advanced/bullet_multithreading#,Multi-threaded physics>>
*  <<jme3/advanced/physics#create_a_collisionshape,Mesh-accurate collision shapes>>


== Supported Formats

*  Models: Blender (.blend)
*  Models: Ogre3D model (.mesh.xml, .skeleton.xml, .material), Ogre3D dotScene (.scene)
*  Models: Wavefront (.OBJ, .MTL)
*  Models: Collada
*  Models: 3DS
*  Textures: .DDS, .HDR, .PFM, .TGA, .JPG, .PNG, .GIF.
*  Font: BMFont fonts (.FNT)
*  Audio: Waveform (.WAV), Ogg/Vorbis (.OGG)
*  jME3 binary files (models and scenes): .j3o 
*  jME3 materials: .j3m 
*  jME3 material definitions: .j3md
*  jME3 filter post processors: .j3f


== Shaders

*  GLSL support
*  Shader libraries
*  Shader permutations
*  link:http://hub.jmonkeyengine.org/wiki/doku.php/jme3:advanced:jme3_shadernodes[Shader Nodes]


== Material Lighting

*  Per-pixel lighting
*  Multi-pass lighting
*  Phong Lighting
**  Diffuse Map
**  Alpha Map
**  Glow Map
**  Specular Map
**  Normal Map, Parallax Map (a.k.a. bump mapping)

*  Tangent shading
*  Reflection


== Material Textures

*  Texturing
***  material colors (ambient, diffuse, specular/shininess, glow), 
***  color map, light map, 
***  transparency, translucency, alpha map, alpha testing with falloff threshold,
***  sphere map, cube map, 
***  texture scale, 
***  wireframe
***  color ramp texture

*  Multi-texturing through shaders
*  UV textures
*  Splat textures, Phong lit or unshaded, supports diffuse and normal maps
*  link:http://hub.jmonkeyengine.org/forum/topic/textureatlas-creation-and-packed-texture-handling-in-sdk/[Texture Atlas, handling of packed Textures]


== Asset System

*  Asset importing
**  Animation
**  Meshes
**  Textures
**  Scenes
**  Materials
**  Shaders

*  Multi-threaded asset loading via HTTP
*  Loading scenes from .ZIP files
*  Sharable AssetPacks


== Special Effects

*  <<jme3/advanced/particle_emitters#,Particles: Smoke, fire, explosions, etc>>
*  <<jme3/advanced/effects_overview#,Post processing / 2D Filter Effects>>
**  Reflective Water
**  Shadow mapping
**  High Dynamic Range rendering
**  Screen Space Ambient Occlusion
**  Light Scattering
**  Cartoon Effect
**  Fog
**  Bloom
**  Depth of Field Blur



== Terrain

*  <<jme3/advanced/terrain#,Geomipmapped hightmap terrain>>
*  <<jme3/advanced/ogrecompatibility#,Import Ogre3D dotScene format>>
*  <<jme3/advanced/sky#,SkyBox and SkyDome>>
*  Terrain lighting


== GUI / HUD

*  <<jme3/advanced/hud#,Orthogonal (Billboard) node>>
*  <<jme3/advanced/nifty_gui#,Nifty GUI integration>>


== Miscellaneous

*  <<jme3/advanced/application_states#,Application States>> and <<jme3/advanced/custom_controls#,Controls>> to implement <<jme3/advanced/update_loop#,game logic>>
*  <<jme3/advanced/cinematics#,Cinematics and motion paths>>
*  <<jme3/advanced/camera#,Camera System>>
**  Normal or parallel view
**  Multiple views

*  Swing canvas (e.g. for Applets)
*  <<jme3/advanced/input_handling#,Input handling>>
**  Mouse, keyboard, joystick
**  <<jme3/advanced/combo_moves#,Combo moves>>



== Networking

*  <<jme3/advanced/networking#,SpiderMonkey API>>
