From 733ad2fdbedb1aa535cd9adf550c670680aa0d0a Mon Sep 17 00:00:00 2001 From: "nor..67" Date: Fri, 18 Jan 2013 23:33:44 +0000 Subject: [PATCH] SDK: - Update SDK manual git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10104 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../com/jme3/gde/core/docs/core-toc.xml | 1 + .../jme3/advanced/application_states.html | 33 +- .../docs/jme3/advanced/asset_manager.html | 94 ++- .../gde/core/docs/jme3/advanced/audio.html | 103 +-- .../gde/core/docs/jme3/advanced/camera.html | 2 +- .../capture_audio_video_to_a_file.html | 2 +- .../core/docs/jme3/advanced/cinematics.html | 2 +- .../advanced/collision_and_intersection.html | 18 +- .../core/docs/jme3/advanced/combo_moves.html | 6 +- .../docs/jme3/advanced/custom_controls.html | 8 +- .../docs/jme3/advanced/custom_meshes.html | 8 +- .../core/docs/jme3/advanced/debugging.html | 31 +- .../docs/jme3/advanced/effects_overview.html | 68 +- .../jme3/advanced/endless_terraingrid.html | 10 +- .../docs/jme3/advanced/headless_server.html | 12 +- .../docs/jme3/advanced/hinges_and_joints.html | 10 +- .../jme3/gde/core/docs/jme3/advanced/hud.html | 8 +- .../docs/jme3/advanced/input_handling.html | 10 +- .../jme3/advanced/j3m_material_files.html | 8 +- .../core/docs/jme3/advanced/jme3_shaders.html | 16 +- .../docs/jme3/advanced/light_and_shadow.html | 20 +- .../docs/jme3/advanced/loading_screen.html | 2 +- .../core/docs/jme3/advanced/localization.html | 10 +- .../gde/core/docs/jme3/advanced/logging.html | 87 ++- .../making_the_camera_follow_a_character.html | 4 +- .../jme3/advanced/material_definitions.html | 4 +- .../jme3/advanced/materials_overview.html | 6 +- .../gde/core/docs/jme3/advanced/mesh.html | 2 +- .../core/docs/jme3/advanced/monkey_zone.html | 24 +- .../docs/jme3/advanced/mouse_picking.html | 4 +- .../jme3/advanced/multiple_camera_views.html | 4 +- .../docs/jme3/advanced/multithreading.html | 8 +- .../core/docs/jme3/advanced/networking.html | 4 +- .../core/docs/jme3/advanced/nifty_gui.html | 12 +- .../advanced/nifty_gui_java_interaction.html | 4 +- .../jme3/advanced/nifty_gui_java_layout.html | 6 +- .../docs/jme3/advanced/nifty_gui_overlay.html | 2 +- .../jme3/advanced/nifty_gui_scenarios.html | 4 +- .../jme3/advanced/nifty_gui_xml_layout.html | 27 +- .../docs/jme3/advanced/particle_emitters.html | 8 +- .../gde/core/docs/jme3/advanced/physics.html | 121 +++- .../docs/jme3/advanced/physics_listeners.html | 2 +- .../jme3/advanced/post-processor_water.html | 10 +- .../gde/core/docs/jme3/advanced/ragdoll.html | 6 +- .../read_graphic_card_capabilites.html | 2 +- .../docs/jme3/advanced/save_and_load.html | 6 +- .../gde/core/docs/jme3/advanced/shape.html | 34 +- .../jme3/gde/core/docs/jme3/advanced/sky.html | 2 +- .../gde/core/docs/jme3/advanced/spatial.html | 46 +- .../core/docs/jme3/advanced/swing_canvas.html | 6 +- .../gde/core/docs/jme3/advanced/terrain.html | 6 +- .../docs/jme3/advanced/terrain_collision.html | 2 +- .../core/docs/jme3/advanced/update_loop.html | 16 +- .../gde/core/docs/jme3/advanced/vehicles.html | 16 +- .../docs/jme3/advanced/walking_character.html | 31 +- .../gde/core/docs/jme3/advanced/water.html | 4 +- .../com/jme3/gde/core/docs/jme3/android.html | 14 +- .../docs/jme3/beginner/hello_animation.html | 2 +- .../core/docs/jme3/beginner/hello_asset.html | 52 +- .../core/docs/jme3/beginner/hello_audio.html | 26 +- .../docs/jme3/beginner/hello_collision.html | 16 +- .../docs/jme3/beginner/hello_effects.html | 10 +- .../jme3/beginner/hello_input_system.html | 6 +- .../jme3/beginner/hello_main_event_loop.html | 2 +- .../docs/jme3/beginner/hello_material.html | 22 +- .../core/docs/jme3/beginner/hello_node.html | 36 +- .../docs/jme3/beginner/hello_physics.html | 48 +- .../docs/jme3/beginner/hello_picking.html | 10 +- .../beginner/hello_simpleapplication.html | 22 +- .../docs/jme3/beginner/hello_terrain.html | 22 +- .../jme3/gde/core/docs/jme3/external/1.png | Bin 0 -> 169497 bytes .../gde/core/docs/jme3/external/3dsmax-0.png | Bin 0 -> 123460 bytes .../gde/core/docs/jme3/external/3dsmax-1.png | Bin 0 -> 133855 bytes .../gde/core/docs/jme3/external/3dsmax-10.png | Bin 0 -> 32375 bytes .../gde/core/docs/jme3/external/3dsmax-11.png | Bin 0 -> 47963 bytes .../gde/core/docs/jme3/external/3dsmax-12.png | Bin 0 -> 28084 bytes .../gde/core/docs/jme3/external/3dsmax-2.png | Bin 0 -> 137279 bytes .../gde/core/docs/jme3/external/3dsmax-3.png | Bin 0 -> 115918 bytes .../gde/core/docs/jme3/external/3dsmax-4.png | Bin 0 -> 107748 bytes .../gde/core/docs/jme3/external/3dsmax-5.png | Bin 0 -> 25770 bytes .../gde/core/docs/jme3/external/3dsmax-6.png | Bin 0 -> 105179 bytes .../gde/core/docs/jme3/external/3dsmax-7.png | Bin 0 -> 108504 bytes .../gde/core/docs/jme3/external/3dsmax-8.png | Bin 0 -> 54306 bytes .../gde/core/docs/jme3/external/3dsmax-9.png | Bin 0 -> 35626 bytes .../gde/core/docs/jme3/external/3dsmax.html | 616 ++++++++++++++++++ .../docs/jme3/external/3dsmax_biped_2.png | Bin 0 -> 183030 bytes .../docs/jme3/external/3dsmax_biped_3_1.png | Bin 0 -> 128628 bytes .../docs/jme3/external/3dsmax_biped_4.png | Bin 0 -> 32484 bytes .../docs/jme3/external/3dsmax_biped_5.png | Bin 0 -> 27149 bytes .../docs/jme3/external/3dsmax_biped_6.png | Bin 0 -> 211713 bytes .../docs/jme3/external/3dsmax_biped_7.png | Bin 0 -> 84755 bytes .../docs/jme3/external/3dsmax_biped_8.png | Bin 0 -> 25735 bytes .../gde/core/docs/jme3/external/blender.html | 18 +- .../com/jme3/gde/core/docs/jme3/faq.html | 148 ++--- .../docs/jme3/intermediate/appsettings.html | 2 +- .../jme3/intermediate/best_practices.html | 109 +++- .../intermediate/how_to_use_materials.html | 6 +- .../gde/core/docs/jme3/intermediate/math.html | 19 +- .../multi-media_asset_pipeline.html | 24 +- .../docs/jme3/intermediate/optimization.html | 6 +- .../jme3/intermediate/simpleapplication.html | 12 +- .../com/jme3/gde/core/docs/jme3/ios.html | 11 +- .../com/jme3/gde/core/docs/jme3/math.html | 10 +- ...impleapplication_from_the_commandline.html | 4 +- .../jme3/gde/core/docs/jme3/terminology.html | 28 +- .../gde/core/docs/jme3/the_scene_graph.html | 6 +- .../core/docs/sdk/3ds_to_blender_to_jmp.html | 2 +- .../core/docs/sdk/application_deployment.html | 38 +- .../jme3/gde/core/docs/sdk/asset_packs.html | 10 +- .../com/jme3/gde/core/docs/sdk/blender.html | 4 +- .../jme3/gde/core/docs/sdk/code_editor.html | 4 +- .../docs/sdk/debugging_profiling_testing.html | 10 +- .../core/docs/sdk/default_build_script.html | 47 +- .../jme3/gde/core/docs/sdk/development.html | 8 +- .../sdk/development/extension_library.html | 6 +- .../core/docs/sdk/development/general.html | 2 +- .../docs/sdk/development/projects_assets.html | 2 +- .../docs/sdk/development/sceneexplorer.html | 2 +- .../gde/core/docs/sdk/development/setup.html | 18 +- .../com/jme3/gde/core/docs/sdk/filters.html | 8 +- .../com/jme3/gde/core/docs/sdk/log_files.html | 2 +- .../gde/core/docs/sdk/material_editing.html | 2 +- .../docs/sdk/model_loader_and_viewer.html | 31 +- .../gde/core/docs/sdk/project_creation.html | 18 +- .../gde/core/docs/sdk/scene_composer.html | 2 +- .../gde/core/docs/sdk/scene_explorer.html | 4 +- .../gde/core/docs/sdk/terrain_editor.html | 2 +- .../gde/core/docs/sdk/troubleshooting.html | 4 +- .../jme3/gde/core/docs/sdk/use_own_jme.html | 2 +- .../gde/core/docs/sdk/vehicle_creator.html | 4 +- .../gde/core/docs/sdk/version_control.html | 2 +- .../gde/core/docs/sdk/welcome/3_0rc3.html | 17 +- .../com/jme3/gde/core/docs/wiki-map.xml | 2 +- sdk/jme3-core/javahelp/wiki_help.properties | 1 + 134 files changed, 1728 insertions(+), 835 deletions(-) create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/1.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-0.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-1.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-10.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-11.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-12.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-2.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-3.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-4.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-5.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-6.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-7.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-8.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax-9.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax.html create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_2.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_3_1.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_4.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_5.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_6.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_7.png create mode 100644 sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/external/3dsmax_biped_8.png diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/core-toc.xml b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/core-toc.xml index c3640e2c9..f52240ef4 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/core-toc.xml +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/core-toc.xml @@ -47,6 +47,7 @@ + diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/application_states.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/application_states.html index f2a69ee6e..f265102f5 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/application_states.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/application_states.html @@ -4,7 +4,7 @@

-The com.jme3.app.state.AppState class is a customizable jME3 interface that allows you to control the global game logic – the overall game mechanics. (To control the behaviour of a Spatial, see Custom Controls instead. Controls and AppStates can be used together.) +The com.jme3.app.state.AppState class is a customizable jME3 interface that allows you to control the global game logic ??? the overall game mechanics. (To control the behaviour of a Spatial, see Custom Controls instead. Controls and AppStates can be used together.)

@@ -51,7 +51,7 @@ You can! This is what AppStates are there for. An AppState class is subset of (o
  • a subset of other AppStates and Controls
  • -
  • … or combinations thereof.
    +
  • ??? or combinations thereof.
  • @@ -190,7 +190,7 @@ stateDetached(asm)The AppState knows when it is attached to, or detache

    -The AbstractAppState class already implements some common methods (isInitialized(), setActive(), isActive()) and makes creation of custom AppStates a bit easier. We recommend you extend AbstractAppState and override the remaining AppState methods: initialize(), setEnabled(), cleanUp(). +The AbstractAppState class already implements some common methods (isInitialized(), setActive(), isActive()) and makes creation of custom AppStates a bit easier. We recommend you extend AbstractAppState and override the remaining AppState methods: initialize(), setEnabled(), cleanup().

    @@ -263,7 +263,7 @@ You define what an AppState does when Paused or Unpaused, in the setEnable

    -The com.jme3.app.state.AppStateManager holds the list of AppStates for an application. AppStateManager ensures that activate AppStates can modify the scene graph, and that the update() loops of active AppStates is executed. There is one AppStateManager per application. You typically attach several AppStates to one AppStateManager, but the same state can only be attached once. +The com.jme3.app.state.AppStateManager holds the list of AppStates for an application. AppStateManager ensures that active AppStates can modify the scene graph, and that the update() loops of active AppStates is executed. There is one AppStateManager per application. You typically attach several AppStates to one AppStateManager, but the same state can only be attached once.

    @@ -277,19 +277,32 @@ The com.jme3.app.state.AppStateManager holds the list of AppStates for an applic
    getState(MyAppState.class)Returns the first attached state that is an instance of a subclass of MyAppState.class.
    - +

    -The AppStateManager's render(), postRender(), cleanUp() methods are internal, ignore them, users never call them directly. +The AppStateManager's render(), postRender(), cleanup() methods are internal, ignore them, users never call them directly. +

    +
      +
    • If a detached AppState is attached then initialize() will be called on the following render pass.
      +
    • +
    • If an attached AppState is detached then cleanup() will be called on the following render pass.
      +
    • +
    • If you attach an already-attached AppState then the second attach is a no-op and will return false.
      +
    • +
    • If you both attach and detach an AppState within one frame then neither initialize() or cleanup() will be called, although if either is called both will be.
      +
    • +
    • If you both detach and then re-attach an AppState within one frame then on the next update pass its cleanup() and initialize() methods will be called in that order.
      +
    • +
    - +

    Best Practices

    - +

    Communication Among AppStates

    @@ -305,7 +318,7 @@ You can use custom accessors to get data from AppStates, to set data in AppState
    this.app.getStateManager().getState(MyAppState.class).doSomeCustomStuffInThisState();
    - +

    Initialize Familiar Class Fields

    @@ -336,5 +349,5 @@ public class MyAppState extends AbstractAppState { }
    - +

    view online version

    \ No newline at end of file diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html index 81fae5c5c..c85e215de 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/asset_manager.html @@ -4,7 +4,25 @@

    -JME3 has an integrated an asset manager that helps you keep your project assets organized. By assets we mean media files, such as 3D models, materials, textures, scenes, shaders, sounds, and fonts. Think of the asset manager as the filesystem of your game, independent of the actual deployment platform. It also manages the appropriate managing of OpenGL objects like textures so that they are e.g. not uploaded to the graphics card multiple times when multiple models use them. +By assets we mean multi-media files, such as 3D models, materials, textures, scenes, custom shaders, music and sound files, and custom fonts. JME3 has an integrated asset manager that helps you keep your project assets organized. Think of the asset manager as the filesystem of your game, independent of the actual deployment platform. By default, store your assets in the MyGame/assets/ directory of your project. +

    + +

    +Advantages of the AssetManager: +

    +
      +
    • The paths stay the same, no matter whether the game runs on Windows, Mac, Linux, etc!
      +
    • +
    • The AssetManager automatically optimizes the handling of OpenGL objects.
      +For example, the same textures are not uploaded to the graphics card multiple times when multiple models use them.
      +
    • +
    • The default build script automatically bundles the contents of the assets directory into the executable.
      +
    • +
    + +

    + +Advanced users can write a custom build and packaging script, and can register custom paths to the AssetManager, but this is up to you then.

    @@ -25,7 +43,7 @@ See also - +

    Usage

    @@ -45,7 +63,7 @@ Here is an example how you load assets using the AssetManager. This lines loads new AssetKey("Common/Materials/RedColor.j3m"));

    -This Material is "somewhere" in the jME3 JAR; the default Asset Manager is configured to handle a Common/… path correctly, so you don't have to specify the whole path when referring to built-in assets (such as default Materials). +This Material is "somewhere" in the jME3 JAR; the default Asset Manager is configured to handle a Common/??? path correctly, so you don't have to specify the whole path when referring to built-in assets (such as default Materials).

    @@ -53,31 +71,41 @@ Additionally, you can configure the Asset Manager and add any path to its root.

    - +

    Asset Directory

    -By default, jME3 searches for models in a directory named assets. In Java projects created with the jMonkeyEngine SDK, an assets folder is created by default. Using any other IDE or the command line, you have to create this assets directory as an extra step (see the Codeless Project tip below). +By default, jME3 searches for models in a directory named assets. +

    + +

    +

    In Java projects created with the jMonkeyEngine SDK, an assets folder is created by default in your project directory. If you are using any other IDE, or the command line, you simply create an assets directory manually (see the Codeless Project tip below). +

    This is our recommended directory structure for storing assets:

    -
    jMonkeyProjects/MyGame/src/...          # Packages, .java source code.
    -jMonkeyProjects/MyGame/assets/...       # The assets directory:
    -jMonkeyProjects/MyGame/assets/Interface/  # .font, .jpg, .png, .xml
    -jMonkeyProjects/MyGame/assets/MatDefs/    # .j3md
    -jMonkeyProjects/MyGame/assets/Materials/  # .j3m
    -jMonkeyProjects/MyGame/assets/Models/     # .j3o
    -jMonkeyProjects/MyGame/assets/Scenes/     # .j3o
    -jMonkeyProjects/MyGame/assets/Shaders/    # .j3f, .vert, .frag
    -jMonkeyProjects/MyGame/assets/Sounds/     # .ogg, .wav
    -jMonkeyProjects/MyGame/assets/Textures/   # .jpg, .png; also .mesh.xml+.material, .mtl+.obj, .blend (!) 
    +
    jMonkeyProjects/MyGame/src/...           # Packages, .java source code.
    +jMonkeyProjects/MyGame/assets/...        # The assets directory:
    +jMonkeyProjects/MyGame/assets/Interface/   # .font, .jpg, .png, .xml
    +jMonkeyProjects/MyGame/assets/MatDefs/     # .j3md
    +jMonkeyProjects/MyGame/assets/Materials/   # .j3m
    +jMonkeyProjects/MyGame/assets/Models/      # .j3o
    +jMonkeyProjects/MyGame/assets/Scenes/      # .j3o
    +jMonkeyProjects/MyGame/assets/Shaders/     # .j3f, .vert, .frag
    +jMonkeyProjects/MyGame/assets/Sounds/      # .ogg, .wav
    +jMonkeyProjects/MyGame/assets/Textures/    # .jpg, .png; also .mesh.xml+.material, .mtl+.obj, .blend (!) 

    -These are just the most common examples. You can rename/delete/add directories and subdirectories inside the assets directory in any way you like. Note however that there is no automatic refactoring for asset paths in the SDK, so if you modify them late in the development process, you have to refactor all paths manually. +These subdirectories are just the most common examples. +

    + +

    +

    You can rename/delete/add (sub)directories inside the assets directory in any way you like. Note however that there is no automatic refactoring for asset paths in the SDK, so if you modify them late in the development process, you have to refactor all paths manually. +

    @@ -91,7 +119,7 @@ After the conversion, you move the .j3o file into the assets/Models/

    - +

    Example Code: Loading Assets

    @@ -148,7 +176,7 @@ jME3 also offers a ClasspathLocator, ZipLocator, FileLocator, HttpZipLocator, an

    - +

    Common AssetManager Tasks

    @@ -175,9 +203,9 @@ rootNode.attachChild(scene);
    - +
    - +

    NullPointerException: Cannot locate resource?

    @@ -200,7 +228,7 @@ java.lang.NullPointerException

    -If you use the default build script, original models and scenes, and ZIP files, are excluded from the distribution automatically. A stand-alone executable includes converted .j3o models and scenes only. The default build script makes sure to include existing .j3o files in the distribution, but you need to convert the models manually. +If you use the default build script, original models and scenes (.mesh.xml, .obj, .blend, .zip), are excluded from the distribution automatically. A stand-alone executable includes converted .j3o files (models and scenes) only. The default build script makes sure to bundle existing .j3o files in the distribution, but you need to remember to convert the models (from mesh.xml???>.j3o, or .obj???>.j3o, etc) yourself.

    @@ -211,28 +239,34 @@ If you use the default build script, original models and scenes, and ZIP Before building the executable, you must use the jMonkeyEngine SDK's context menu action to convert 3D models to .j3o binary format.

      -
    1. Open the jME3 Project in the jMonkeyEngine SDK.
      +
    2. Save your original models (.mesh.xml, .scene, .blend, or .obj files, plus textures) into assets/Textures/. (!)
      +
    3. +
    4. Open the jME3 project in the jMonkeyEngine SDK.
    5. Browse to the assets directory in the Projects window.
    6. -
    7. Right-click a .mesh.xml/.scene/.obj file, and choose "convert to JME3 binary".
      +
    8. Right-click an original model in assets/Textures/, and choose "Convert to JME3 binary".
    9. -
    10. The converted file appears in the same directory as the .mesh.xml file. It has the same name and a .j3o suffix.
      +
    11. The converted file appears in the same directory as the original file. It has the same name and a .j3o suffix.
    12. -
    13. Move the .j3o file into the assets/Models/ or assets/Scenes/ directories.
      +
    14. Move the .j3o file into the assets/Models/ or assets/Scenes/ directory.
    15. -
    16. Update the file name in the load() code to access the .j3o file.
      +
    17. Use the assetManager's load() method to load the .j3o file.

    -

    If you load the scene from a non-.j3o ZIP file, ammend the default_build_script manully to copy the ZIP files into the distribution. +This ensures that the model's Texture paths keep working between your 3D mesh editor and JME3. +

    + +

    +

    If you must load custom assets from a non-.j3o ZIP file, you must manually ammend the default build script to copy ZIP files into your distribution. ZIPs are skipped by default.

    - +

    Asset Handling For Other IDEs: Codeless Projects

    @@ -261,7 +295,7 @@ Store your assets there as described above.
  • Download and install the jMonkeyEngine SDK.
  • -
  • In the SDK, go to File → Import Projects → External Project Assets.
    +
  • In the SDK, go to File ??? Import Projects ??? External Project Assets.
  • Select your (Eclipse or whatever) project and your assets folder in the Import Wizard.
  • @@ -282,5 +316,5 @@ Convert assets as described above.

    - +

    view online version

    \ No newline at end of file diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html index 4f87adbc6..b51e3749e 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/audio.html @@ -36,13 +36,13 @@ The main jME audio class to look at is com.jme3.audio.AudioNode. Wh AudioNode boom = new AudioNode(assetManager, "Sound/boom.wav", false); -
  • Streamed: If it is a long file such as music or a dialog, you stream the audio. Streaming means, you load and play in parallel until the sound is done. You create a streamed sound by setting the boolean to true:
    AudioNode music = new AudioNode(assetManager, "Sound/music.wav", true);
    +
  • Streamed: If it is a long file such as music or a dialog, you stream the audio. Streaming means, you load and play in parallel until the sound is done. You cannot loop streams. You create a streamed sound by setting the boolean to true:
    AudioNode music = new AudioNode(assetManager, "Sound/music.wav", true);
  • - +

    Getting AudioNode Properties

    @@ -59,14 +59,14 @@ AudioNode boom = new AudioNode(assetManager, "Sound/boom.wav", fal
    getPitch()Returns the pitch.
    - +

    Note: There are other obvious getters to poll the status of all corresponding setters listed here.

    - +

    Setting AudioNode Properties

    @@ -74,24 +74,27 @@ Note: There are other obvious getters to poll the status of all corresponding se - + - + + + + - + - +
    AudioNode MethodUsage
    setVolume(1)Sets the volume gain. 1 is the default volume, 2 is twice as loud, etc. 0 is silent/mute. setTimeOffset(0.5f)Play the sound starting at a 0.5 second offset from the beginning. Default is 0.
    setPitch(1)Makes the sound play in a higher or lower pitch. Default is 1. 2 is twice as high, .5f is half as high.
    setTimeOffset(0.5f)Play the sound starting at a 0.5 second offset from the beginning. Default is 0.setVolume(1)Sets the volume gain. 1 is the default volume, 2 is twice as loud, etc. 0 is silent/mute.
    setRefDistance(50f)The reference distance controls how far a sound can still be heard at 50% of its original volume (this is assuming an exponential fall-off!). A sound with a high RefDist can be heard loud over wide distances; a sound with a low refDist can only be heard when the listener is close by. Default is 10 world units.
    setMaxDistance(100f)Maximum distance the sound can be heard, in world units. Default is 20.setMaxDistance(100f) The 'maximum attenuation distance' specifies how far from the source the sound stops growing more quiet (sounds in nature don't do that). Set this to a smaller value to keep the sound loud even at a distance; set this to higher value to let the sound fade out quickly. Default is 20 world units.
    setLooping(false)Configures the sound so that, if it is played, it plays once and stops. This is the default.setLooping(false)Configures the sound so that, if it is played, it plays once and stops. No looping is the default.
    - +
    - +

    Looping & Ambient Sounds

    @@ -100,16 +103,16 @@ Note: There are other obvious getters to poll the status of all corresponding se +setDirectional(false) - +
    setPositional(false)
    -setDirectional(false)
    All 3D effects switched off. This sound is global and comes from everywhere. Good for environmental ambient sounds and background music.All 3D effects switched off. This sound is global and plays in headspace (it appears to come from everywhere). Good for environmental ambient sounds and background music.
    setLooping(true)Configures the sound to be a loop: When it is played, it repeats from the beginning, until stop() or pause() are called. Good for music and ambient background noises.
    -Looping does not work on streamed sounds!
    setLooping(true)Configures the sound to be a loop: After the sound plays, it repeats from the beginning, until you call stop() or pause(). Good for music and ambient background noises.
    +Looping does not work on streamed sounds.
    - +
    - +

    Positional 3D Sounds

    @@ -118,20 +121,21 @@ Looping does not work on streamed sounds! +setLocalTranslation(???) - +
    setPositional(true)
    -setLocalTranslation(…)
    Activates 3D audio: The sound appears to come from a certain position, where it is loudest. Position the AudioNode in the 3D scene, or move it with mobile players or NPCs.Activates 3D audio: The sound appears to come from a certain position, where it is loudest. Position the AudioNode in the 3D scene, or move it with mobile players or NPCs.
    setReverbEnabled(true)A 3D echo effect that only makes sense to use with positional AudioNodes. The reverb effect is influenced by the environment that the audio renderer is in. See "Setting Environment Properties" below. setReverbEnabled(true)Reverb is a 3D echo effect that only makes sense with positional AudioNodes. Use Audio Environments to make scenes sound as if they were "outdoors", or "indoors" in a large or small room, etc. The reverb effect is defined by the com.jme3.audio.Environment that the audioRenderer is in. See "Setting Audio Environment Properties" below.
    - +

    -Note: 3D sounds require an audio listener. +

    Positional 3D sounds require an AudioListener object in the scene (representing the player's ears). +

    - +

    Directional 3D Sounds

    @@ -140,21 +144,22 @@ Note: 3D sounds require an audio listener. +setDirection(???) +setOuterAngle()
    setDirectional(true)
    -setDirection(…)
    Activates 3D audio: This sound can only be heard from a certain direction. Specify the direction and angle in the 3D scene if you have setDirectional() true. Use this to restrict noises that should not be heard, for example, through a wall.Activates 3D audio: This sound can only be heard from a certain direction. Specify the direction and angle in the 3D scene if you have setDirectional() true. Use this to restrict noises that should not be heard, for example, through a wall.
    setInnerAngle()
    -setOuterAngle()
    Set the angle in degrees for the directional audio. The angle is relative to the direction. Note: By default, both angles are 360° and the sound can be heard from all directions!Set the angle in degrees for the directional audio. The angle is relative to the direction. Note: By default, both angles are 360?? and the sound can be heard from all directions!
    - +

    -Note: 3D sounds require an audio listener. +

    Directional 3D sounds require an AudioListener object in the scene (representing the player's ears). +

    - +

    Play, Pause, Stop

    @@ -176,29 +181,29 @@ You can also start playing instances of an AudioNode. Use the playInstance
    myAudioNode.playInstance();
    - -

    The Listener

    + +

    The Audio Listener

    -The default listener object is the user's ear in the scene. If you use 3d audio (positional and directional sounds), you have to move the listener with the player: For example, for a first-person player, you move the listener with the camera. For a third-person player, you move the listener with the player avatar Geometry. +The default AudioListener object listener in SimpleApplication is the user's ear in the scene. If you use 3D audio (positional or directional sounds), you must move the AudioListener with the player: For example, for a first-person player, you move the listener with the camera. For a third-person player, you move the listener with the player avatar Geometry.

      @Override
       public void simpleUpdate(float tpf) {
    -    // keep the audio listener moving with the camera
    +    // first-person: keep the audio listener moving with the camera
         listener.setLocation(cam.getLocation());
         listener.setRotation(cam.getRotation());
       }
    - -

    Setting Environment Properties

    + +

    Setting Audio Environment Properties

    -Optionally, You can choose from the following environmental presets from com.jme3.audio.Environment. This presets influence subtle echo effects that evoke associations of different environments in your users. You use it together with setReverbEnabled(true) mentioned above. +Optionally, You can choose from the following environmental presets from com.jme3.audio.Environment. This presets influence subtle echo effects (reverb) that evoke associations of different environments in your users. That is, it makes you scene sound "indoors" or "outdoors" etc. You use Audio Environments together with setReverbEnabled(true) on positional AudioNodes (see above).

    @@ -221,22 +226,38 @@ Optionally, You can choose from the following environmental presets from c
    Closet 1.00f1.0f1.0f1.00f0.15f1.0f0.600f0.0025f0.500f0.0006f
    - +
      +
    1. Activate a Environment preset
      +
        +
      • Either use a default, e.g. make you scene sounds like a dungeon environment:
        audioRenderer.setEnvironment(new Environment(Environment.Dungeon));
        +
        +
      • +
      • Or activate custom environment settings in the Environment constructor:
        audioRenderer.setEnvironment(
        +        new Environment( density, diffusion, gain, gainHf, decayTime, decayHf,
        +                reflGain, reflDelay, lateGain, lateDelay ) );
        +
        +
      • +
      +
    2. +
    3. Activate 3D audio for certain sounds:
      footstepsAudio.setPositional(true);
      +footstepsAudio.setReverbEnabled(true);
      +
      +
    4. +
    +

    -Activate the preset with setEnvironment(). E.g. in a dungeon environment: +

    A sound engineer can create a custom com.???jme3.???audio.Environment object and specify custom environment values such as density, diffusion, gain, decay, delay??? You can find many examples of custom audio environment presets here. +

    -
    audioRenderer.setEnvironment(new Environment(Environment.Dungeon));

    -A sound engineer can create a custom com.​jme3.​audio.Environment object and specify custom environment factors. You can find many examples of audio environment presets here. Activate your custom environment settings in the Environment constructor: +Advanced users find more info about OpenAL and its features here: .

    -
    audioRenderer.setEnvironment(
    -        new Environment( density, diffusion, gain, gainHf, decayTime, decayHf,
    -                reflGain, reflDelay, lateGain, lateDelay ) );

    -You can find more info about OpenAL and its advanced features here: . It depends on the hardware whether audio effects are supported (if not, you get the message OpenAL EFX not available! Audio effects won't work.) +

    It depends on the hardware whether audio effects are supported (if not, you get the message OpenAL EFX not available! Audio effects won't work.) +

    sound, @@ -245,5 +266,5 @@ You can find more info about OpenAL and its advanced features here: - +

    view online version

    \ No newline at end of file diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/camera.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/camera.html index 8d5c7ed67..3a5c04a2c 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/camera.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/camera.html @@ -20,7 +20,7 @@ The camera object is created with the following defaults:
  • Frustum Perspective:
      -
    • Frame of view angle of 45° along the Y axis
      +
    • Frame of view angle of 45?? along the Y axis
    • Aspect ratio of width divided by height
    • diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/capture_audio_video_to_a_file.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/capture_audio_video_to_a_file.html index 4f59994b5..b6c2cc71d 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/capture_audio_video_to_a_file.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/capture_audio_video_to_a_file.html @@ -59,7 +59,7 @@ That's all!

      This way of A/V recording is still in development. It works for all of jMonkeyEngine's test cases. If you experience any problems or -if something isn't clear, please . – bortreb +if something isn't clear, please . ??? bortreb

      diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html index dbba350ce..97af239ef 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/cinematics.html @@ -384,7 +384,7 @@ You can extend individual CinematicEvents. The . An AbstractCinematicEvent implements the CinematicEvent interface and provides duration, time, speed, etc… management. Look at the is to use this for a custom fadeIn/fadeOut effect in combination with a com.jme3.post.filters.FadeFilter. +You can also create new CinematicEvent by extending . An AbstractCinematicEvent implements the CinematicEvent interface and provides duration, time, speed, etc??? management. Look at the is to use this for a custom fadeIn/fadeOut effect in combination with a com.jme3.post.filters.FadeFilter.

      diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/collision_and_intersection.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/collision_and_intersection.html index 02790237b..e60ce64e5 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/collision_and_intersection.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/collision_and_intersection.html @@ -12,7 +12,7 @@ Non-physical collision detection is interesting because it uses less computing r

      -Example: One example for an optimization is a physical vehicle's wheels. You could make the wheels fully physical disks, and have jME calculate every tiny force – sounds very accurate? It's total overkill and too slow for a racing game. A more performant solution is to cast four invisible rays down from the vehicle and calculate the intersections with the floor. These non-physical wheels require (in the simplest case) only four calculations per tick to achieve an effect that players can hardly distinguish from the real thing. +Example: One example for an optimization is a physical vehicle's wheels. You could make the wheels fully physical disks, and have jME calculate every tiny force ??? sounds very accurate? It's total overkill and too slow for a racing game. A more performant solution is to cast four invisible rays down from the vehicle and calculate the intersections with the floor. These non-physical wheels require (in the simplest case) only four calculations per tick to achieve an effect that players can hardly distinguish from the real thing.

      @@ -93,7 +93,7 @@ The following code snippet can be triggered by listeners (e.g. after an input ac CollisionResults results = new CollisionResults(); a.collideWith(b, results); System.out.println("Number of Collisions between" + - a.getName()+ " and " + b.getName() ": " + results.size()); + a.getName()+ " and " + b.getName() + ": " + results.size()); // Use the results if (results.size() > 0) { // how to react when a collision was detected @@ -133,7 +133,7 @@ Knowing the distance of the collisions is useful for example when you intersect

      - +

      Bounding Volumes

      @@ -147,7 +147,7 @@ jME3 computes bounding volumes for all objects. These bounding volumes are later

      -All fast-paced action and shooter games use BoundingVolumes as an optimization. Wrap all complex models into simpler shapes – in the end, you get equally useful collision detection results, but faster. +All fast-paced action and shooter games use BoundingVolumes as an optimization. Wrap all complex models into simpler shapes ??? in the end, you get equally useful collision detection results, but faster.

      @@ -173,7 +173,7 @@ Supported types:

      - +

      Usage

      @@ -186,7 +186,7 @@ For example you can use Bounding Volumes on custom meshes, or complex non-physic mesh.updateBound();
      - +

      Mesh and Scene Graph Collision

      @@ -196,7 +196,7 @@ One of the supported Collidables are meshes and scene graph objects

      - +

      Intersection

      @@ -217,7 +217,7 @@ Rays are used to perform line-of-sight calculations. This means you can detect w

      -

      These simple but powerful ray-surface intersection tests are called Ray Casting. As opposed to the more advanced Ray Tracing technique, Ray Casting does not follow the ray's reflection after the first hit – the ray just goes straight on. +

      These simple but powerful ray-surface intersection tests are called Ray Casting. As opposed to the more advanced Ray Tracing technique, Ray Casting does not follow the ray's reflection after the first hit ??? the ray just goes straight on.

      @@ -237,5 +237,5 @@ TODO:
    - +

    view online version

    \ No newline at end of file diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html index 46daaaa65..ff182f85e 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/combo_moves.html @@ -36,9 +36,9 @@ Copy the two classes ComboMoveExecution.java and ComboMove.java into your applic
    • -
    • ← required
      +
    • ??? required
    • -
    • ← required
      +
    • ??? required
    @@ -117,7 +117,7 @@ Combo step is recorded if A and B are both released. press("A").notPress("B").timeElapsed(0.11f).done();Combo step is recorded a certain time after A and not B is entered.
    -etc, etc … +etc, etc ??? setPriority(0.5f);If there is an ambiguity, a high-priority combo will trigger instead of a low-priority combo. This prevents that a similar looking combo step "hijacks" another Combo. Use only once per ComboMove. diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_controls.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_controls.html index 506b8b794..f167fb221 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_controls.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/custom_controls.html @@ -3,11 +3,11 @@

    -A com.jme3.scene.control.Control is a customizable jME3 interface that allows you to cleanly steer the behaviour of game entities (Spatials), such as artificially intelligent behaviour in NPCs, traps, automatic alarms and doors, animals and pets, self-steering vehicles or platforms – anything that moves and interacts. Several instances of customs Controls together implement the behaviours of a type of Spatial. +A com.jme3.scene.control.Control is a customizable jME3 interface that allows you to cleanly steer the behaviour of game entities (Spatials), such as artificially intelligent behaviour in NPCs, traps, automatic alarms and doors, animals and pets, self-steering vehicles or platforms ??? anything that moves and interacts. Several instances of customs Controls together implement the behaviours of a type of Spatial.

    -To control global game behaviour see Application States – you often use AppStates and Control together. +To control global game behaviour see Application States ??? you often use AppStates and Control together.

    - +

    Example: Toggle Wireframe on the scene

    @@ -243,14 +262,14 @@ Then attach the scene processor to the getViewPort().addProcessor(new WireProcessor());
    - +

    See also

      -
    • Spatial – if you can't see certain spatials, you can modify the culling behaviour to identify problems (such as inside-out custom meshes)
      +
    • Spatial ??? if you can't see certain spatials, you can modify the culling behaviour to identify problems (such as inside-out custom meshes)
    - +

    view online version

    \ No newline at end of file diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html index 6c802666b..eaa86a300 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/effects_overview.html @@ -81,9 +81,9 @@ Use the SimpleWaterProcessor (SceneProcessor) for small, limited bodies of water See also the announcement with video.

      -
    • – SimpleWaterProcessor (SceneProcessor)
      +
    • ??? SimpleWaterProcessor (SceneProcessor)
    • -
    • – SimpleWaterProcessor (SceneProcessor)
      +
    • ??? SimpleWaterProcessor (SceneProcessor)
    @@ -91,9 +91,9 @@ See also the

      -
    • – WaterFilter
      +
    • ??? WaterFilter
    • -
    • – WaterFilter
      +
    • ??? WaterFilter
    @@ -112,7 +112,7 @@ See also the

      -
    • – DepthOfFieldFilter
      +
    • ??? DepthOfFieldFilter
    @@ -121,7 +121,7 @@ See also the – FogFilter +
  • ??? FogFilter
  • @@ -130,7 +130,7 @@ See also the – LightScatteringFilter +
  • ??? LightScatteringFilter
  • @@ -161,7 +161,7 @@ See also the -
  • More details: Bloom and Glow – BloomFilter
    +
  • More details: Bloom and Glow ??? BloomFilter
  • @@ -170,11 +170,11 @@ See also the – DirectionalLight, PointLight +
  • ??? DirectionalLight, PointLight
  • -
  • – DirectionalLight, PointLight
    +
  • ??? DirectionalLight, PointLight
  • -
  • – .j3o scene
    +
  • ??? .j3o scene
  • More details: Light and Shadow
  • @@ -190,13 +190,13 @@ See also the – BasicShadowRenderer (SceneProcessor) +
  • ??? BasicShadowRenderer (SceneProcessor)
  • -
  • – PssmShadowRenderer (SceneProcessor), also known as Parallel-Split Shadow Mapping (PSSM).
    +
  • ??? PssmShadowRenderer (SceneProcessor), also known as Parallel-Split Shadow Mapping (PSSM).
  • -
  • , – SSAOFilter, also known as Screen-Space Ambient Occlusion shadows (SSOA).
    +
  • , ??? SSAOFilter, also known as Screen-Space Ambient Occlusion shadows (SSOA).
  • -
  • – SSAOFilter, also known as Screen-Space Ambient Occlusion shadows (SSOA), plus transparancy
    +
  • ??? SSAOFilter, also known as Screen-Space Ambient Occlusion shadows (SSOA), plus transparancy
  • More details: Light and Shadow
  • @@ -218,9 +218,9 @@ See also the – CartoonEdgeFilter +
  • ??? CartoonEdgeFilter
  • -
  • – CartoonEdgeFilter
    +
  • ??? CartoonEdgeFilter
  • @@ -229,7 +229,7 @@ See also the Fade – FadeFilter +
  • Fade ??? FadeFilter
  • @@ -247,29 +247,29 @@ See also the

      -
    • LightBlow Shader – blend material texture maps
      +
    • LightBlow Shader ??? blend material texture maps
    • -
    • FakeParticleBlow Shader – jet, fire effect
      +
    • FakeParticleBlow Shader ??? jet, fire effect
    • -
    • ToonBlow Shader – Toon Shading, toon edges
      +
    • ToonBlow Shader ??? Toon Shading, toon edges
    • -
    • Dissolve Shader – Scifi teleportation/dissolve effect
      +
    • Dissolve Shader ??? Scifi teleportation/dissolve effect
    • -
    • MatCap Shader – Gold, metals, glass, toons…!
      +
    • MatCap Shader ??? Gold, metals, glass, toons???!
    • -
    • Glass Shader – Glass
      +
    • Glass Shader ??? Glass
    • -
    • Force Shield Shader – Scifi impact-on-force-field effect
      +
    • Force Shield Shader ??? Scifi impact-on-force-field effect
    • -
    • SimpleSprite Shader – Animated textures
      +
    • SimpleSprite Shader ??? Animated textures
    • -
    • SimpleSpriteParticle Shader – Sprite library
      +
    • SimpleSpriteParticle Shader ??? Sprite library
    • -
    • MovingTexture Shader – Animated cloud/mist texture
      +
    • MovingTexture Shader ??? Animated cloud/mist texture
    • -
    • SoftParticles Shader – Fire, clouds, smoke etc
      +
    • SoftParticles Shader ??? Fire, clouds, smoke etc
    • -
    • Displace Shader – Deformation effect: Ripple, wave, pulse, swell!
      +
    • Displace Shader ??? Deformation effect: Ripple, wave, pulse, swell!
    @@ -286,14 +286,14 @@ Thanks for your awesome contributions! Keep them coming!

    -Particle emitter effects are highly configurable and can have any texture. They can simulate smoke, dust, leaves, meteors, snowflakes, mosquitos, fire, explosions, clusters, embers, sparks… +Particle emitter effects are highly configurable and can have any texture. They can simulate smoke, dust, leaves, meteors, snowflakes, mosquitos, fire, explosions, clusters, embers, sparks???

      -
    • – debris, flame, flash, shockwave, smoke, sparks
      +
    • ??? debris, flame, flash, shockwave, smoke, sparks
    • -
    • – cluster of points
      +
    • ??? cluster of points
    • -
    • – dust, smoke
      +
    • ??? dust, smoke

    diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/endless_terraingrid.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/endless_terraingrid.html index 942beb561..60c93a6c7 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/endless_terraingrid.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/endless_terraingrid.html @@ -5,7 +5,7 @@

    TerrainGrid is an extension built on top of the TerraMonkey tools like TerrainQuad and HeightMap, that provides "infinite" Terrain paging routines.
    -Thanks to Gábor (@anthyon) and Brent (@sploreg) for this contribution! +Thanks to G??bor (@anthyon) and Brent (@sploreg) for this contribution!

    @@ -50,10 +50,10 @@ TerrainGrid is made up of the TerrainGrid class, and the HeightMapGrid and Terra


    -Multiple listeners can be added to the TerrainGrid, they will be called in the order of addition, so it’s possible to have multiple changes to the material before completing the load of the tile. +Multiple listeners can be added to the TerrainGrid, they will be called in the order of addition, so it???s possible to have multiple changes to the material before completing the load of the tile.
    -HeightMapGrid adds the possibility of loading terrain tiles on demand instead of having a simple height array. There’s no predefined way of how to store these tiles, it only takes care of loading one HeightMap object at given location at a time. +HeightMapGrid adds the possibility of loading terrain tiles on demand instead of having a simple height array. There???s no predefined way of how to store these tiles, it only takes care of loading one HeightMap object at given location at a time.

    @@ -63,7 +63,7 @@ HeightMapGrid adds the possibility of loading terrain tiles on demand instead of

    -After playing around with the terrain in jME3, soon comes the requirement of having larger explorable lands. Increasing the size of one TerrainQuad leads to more memory usage, while it will still be easy to reach the worlds boundaries. That’s why TerrainGrid was designed. It extends the TerraindQuad class and uses 4 HeightMaps (dark blue) as the four sub-quad. This means that a terrain of size 513 will use tiles of 257. Also an LRUCache is built into the terrain package, so surrounding tiles (green) can be pre-cached on a different thread, lowering the loading time. The quads are updated as the camera approaches the boundary of the light blue section. +After playing around with the terrain in jME3, soon comes the requirement of having larger explorable lands. Increasing the size of one TerrainQuad leads to more memory usage, while it will still be easy to reach the worlds boundaries. That???s why TerrainGrid was designed. It extends the TerraindQuad class and uses 4 HeightMaps (dark blue) as the four sub-quad. This means that a terrain of size 513 will use tiles of 257. Also an LRUCache is built into the terrain package, so surrounding tiles (green) can be pre-cached on a different thread, lowering the loading time. The quads are updated as the camera approaches the boundary of the light blue section.

    @@ -79,7 +79,7 @@ There exist also two basic HeightMapGrid implementations:
    • ImageBasedHeightMapGrid: uses a sequentially numbered, 16 bit grayscale heightmaps. The physical filename of these files can be generated through the Namer interface. When a tile cannot be found by the assetManager, an empty (all-zero) heightmap is created, and a warning is added to the log.
    • -
    • FractalHeightMapGrid: uses a noise library to create a landscape on the fly. The shape of the terrain can be controlled by the various parameters and postfilters of the fractals. With the help of this grid implementation there’s no limitation – above of floating point precision limits – how far the camera can get. The tiles generated this way can be cached to the filesystem, for later modification. The FractalHeightMapGrid will always load from cache if a tile exists there!
      +
    • FractalHeightMapGrid: uses a noise library to create a landscape on the fly. The shape of the terrain can be controlled by the various parameters and postfilters of the fractals. With the help of this grid implementation there???s no limitation ??? above of floating point precision limits ??? how far the camera can get. The tiles generated this way can be cached to the filesystem, for later modification. The FractalHeightMapGrid will always load from cache if a tile exists there!
    diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/headless_server.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/headless_server.html index fde98eac5..662bcc8cc 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/headless_server.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/headless_server.html @@ -18,16 +18,16 @@ It's very easy to change your current (client) game to function as a server

    -A headless server… +A headless server???

      -
    • does not display any output – no window opens, no audio plays, no graphics are rendered.
      +
    • does not display any output ??? no window opens, no audio plays, no graphics are rendered.
    • -
    • ignores all input – no input handling.
      +
    • ignores all input ??? no input handling.
    • -
    • keeps game state – you can attach to, transform, and save the rootNode, although the scene is not displayed.
      +
    • keeps game state ??? you can attach to, transform, and save the rootNode, although the scene is not displayed.
    • -
    • calls the simpleUpdate() loop – you can run tests and trigger events as usual.
      +
    • calls the simpleUpdate() loop ??? you can run tests and trigger events as usual.
    @@ -73,7 +73,7 @@ Okay, so you can now start your game in a headless 'server mode', wher

      -
    • Parse String[] args from the main-method to enable server mode on demand (e.g. start your server like java -jar mygame.jar –server.
      +
    • Parse String[] args from the main-method to enable server mode on demand (e.g. start your server like java -jar mygame.jar ???server.
    • Integrate SpiderMonkey, to provide game updates to the server over a network.
    • diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html index b89c25d1c..91a746d13 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hinges_and_joints.html @@ -97,7 +97,7 @@ For a rope bridge, each set of planks would be one dynamic node.

      -A PhysicsHingeJoint is an invisible connection between two nodes – here between the pendulum body and the hook. Why are hinges and joints represented by the same class? Hinges and joints have something in common: They constrain the mechanical degree of freedom (DOF) of another object. +A PhysicsHingeJoint is an invisible connection between two nodes ??? here between the pendulum body and the hook. Why are hinges and joints represented by the same class? Hinges and joints have something in common: They constrain the mechanical degree of freedom (DOF) of another object.

      @@ -135,7 +135,7 @@ You'll understand that, when creating any type of joint, it is important to

      -You create the HingeJoint after you have created the nodes that are to be chained together. In the code snippet you see that the HingeJoint constructor requires the two node objects. You also have to specify axes and pivots – they are the degrees of freedom that you just heard about. +You create the HingeJoint after you have created the nodes that are to be chained together. In the code snippet you see that the HingeJoint constructor requires the two node objects. You also have to specify axes and pivots ??? they are the degrees of freedom that you just heard about.

      private HingeJoint joint;
       ...
      @@ -160,15 +160,15 @@ The pivot point's position will be at (0,0,0) in the global 3D
       Specify the following parameters for each joint:
       

        -
      • PhysicsControl A and B – the two nodes that are to be joined
        +
      • PhysicsControl A and B ??? the two nodes that are to be joined
      • -
      • Vector3f pivot A and pivot B – coordinates of the attachment point relative to A and B
        +
      • Vector3f pivot A and pivot B ??? coordinates of the attachment point relative to A and B
        • The points typically lie on the surface of the PhysicsControl's Spatials, rarely in the middle.
      • -
      • Vector3f axisA and axisB – around which axes each node is allowed to spin.
        +
      • Vector3f axisA and axisB ??? around which axes each node is allowed to spin.
        • In our example, we constrain the pendulum to swing only along the Z axis.
        • diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hud.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hud.html index 6b1a30e09..66103b07b 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hud.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/hud.html @@ -15,13 +15,13 @@ A HUD (Head-Up Display) is part of a game's visual user interface. It' HUDs are used to supply players with essential information about the game state.

            -
          • Status: Score, minimap, points, stealth mode, …
            +
          • Status: Score, minimap, points, stealth mode, ???
          • -
          • Resources: Ammunition, lives/health, time, …
            +
          • Resources: Ammunition, lives/health, time, ???
          • -
          • Vehicle instruments: Cockpit, speedometer, …
            +
          • Vehicle instruments: Cockpit, speedometer, ???
          • -
          • Navigational aides: Crosshairs, mouse pointer or hand, …
            +
          • Navigational aides: Crosshairs, mouse pointer or hand, ???
          diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/input_handling.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/input_handling.html index 07ff5532a..6068ef1ce 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/input_handling.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/input_handling.html @@ -4,7 +4,7 @@

          -Users interact with your jME3 application with different input devices – the mouse, the keyboard, or a joystick. To respond to inputs we use the inputManager object in SimpleApplication. +Users interact with your jME3 application with different input devices ??? the mouse, the keyboard, or a joystick. To respond to inputs we use the inputManager object in SimpleApplication.

          @@ -81,13 +81,13 @@ Choose one or several key/mouse events for the interaction. We use KeyTrig Mouse wheel: Down MouseAxisTrigger(MouseInput.AXIS_WHEEL,true) - NumPad: 1, 2, 3, … KeyTrigger(KeyInput.KEY_NUMPAD1) … + NumPad: 1, 2, 3, ??? KeyTrigger(KeyInput.KEY_NUMPAD1) ??? - Keyboard: 1, 2 , 3, … KeyTrigger(KeyInput.KEY_1) … + Keyboard: 1, 2 , 3, ??? KeyTrigger(KeyInput.KEY_1) ??? - Keyboard: A, B, C, … KeyTrigger(KeyInput.KEY_A) … + Keyboard: A, B, C, ??? KeyTrigger(KeyInput.KEY_A) ??? Keyboard: Spacebar KeyTrigger(KeyInput.KEY_SPACE) @@ -97,7 +97,7 @@ Choose one or several key/mouse events for the interaction. We use KeyTrig KeyTrigger(KeyInput.KEY_LSHIFT) - Keyboard: F1, F2, … KeyTrigger(KeyInput.KEY_F1) … + Keyboard: F1, F2, ??? KeyTrigger(KeyInput.KEY_F1) ??? Keyboard: Return, Enter KeyTrigger(KeyInput.KEY_RETURN),
          diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html index 08411f4e0..54842c328 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/j3m_material_files.html @@ -61,7 +61,7 @@ How to this file is structured:

          -

          In the jMonkeyEngine SDK, use File→New File→Material→Empty Material File to create .j3m files. You can edit .j3m files directly in the SDK. On the other hand, they are plain text files, so you can also create them in any plain text editor. +

          In the jMonkeyEngine SDK, use File???New File???Material???Empty Material File to create .j3m files. You can edit .j3m files directly in the SDK. On the other hand, they are plain text files, so you can also create them in any plain text editor.

          @@ -72,7 +72,7 @@ How to this file is structured:

          -This is how you use the prepared .j3m Material on a Spatial. Since you have saved the .j3m file to your project's Assets directory, the .j3m path is relative to MyGame/src/assets/…. +This is how you use the prepared .j3m Material on a Spatial. Since you have saved the .j3m file to your project's Assets directory, the .j3m path is relative to MyGame/src/assets/???.

          myGeometry.setMaterial(assetManager.loadMaterial("Materials/SimpleBump.j3m"));
          @@ -278,7 +278,7 @@ The file assets/Models/Sign Post/Sign Post.j3m contains: }

      -The JPG files are in the same directory, assets/Models/Sign Post/…. +The JPG files are in the same directory, assets/Models/Sign Post/???.

    @@ -337,7 +337,7 @@ The file assets/Models/Tree/Leaves.j3m contains: }

    -The PNG file is in the same directory, assets/Models/Tree/… +The PNG file is in the same directory, assets/Models/Tree/???

    diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/jme3_shaders.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/jme3_shaders.html index c19133b17..7a7c980e7 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/jme3_shaders.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/jme3_shaders.html @@ -16,7 +16,7 @@

    Shaders are sets of instructions that are executed on the GPU. They are used to take advantage of hardware acceleration available on the GPU for rendering purposes.
    -This paper only covers Vertex and Fragment shaders because they are the only ones supported by JME3 for the moment. But be aware that there are some other types of shaders (geometry, tessellation,…).
    +This paper only covers Vertex and Fragment shaders because they are the only ones supported by JME3 for the moment. But be aware that there are some other types of shaders (geometry, tessellation,???).
    There are multiple frequently used languages that you may encounter to code shaders but as JME3 is based on OpenGL, shaders in JME use GLSL and any example in this paper will be written in GLSL.
    @@ -143,13 +143,13 @@ For example applying this shader to a sphere would render a solid blue sphere on

    -You probably heard that JME3 is “shader oriented”, but what does that mean?
    +You probably heard that JME3 is ???shader oriented???, but what does that mean?
    Usually to use shaders you must create what is called a program. This program specify the vertex shader and the fragment shader to use.
    JME3 encloses this in the material system. Every material in JME3 uses shaders.
    -For example let’s have a look at the SolidColor.j3md file :
    +For example let???s have a look at the SolidColor.j3md file :

    @@ -191,7 +191,7 @@ For more information on JME3 material system, i suggest you read this JME3 can expose pre-computed global uniforms to your shaders. You must specify the one that are required for your shader in the WorldParameters section of the material definition file (.j3md).
    -Note that in the shader the uniform names will be prefixed by a “g_”.
    +Note that in the shader the uniform names will be prefixed by a ???g_???.
    In the example above, WorldViewProjectionMatrix is declared as uniform mat4 g_WorldViewProjectionMatrix in the shader.
    @@ -225,7 +225,7 @@ JME3 uses some global uniforms for lighting :
  • use for PointLight : x,y,z contain the world position of the light, the w component contains 1/lightRadius
  • -
  • use for DirectionalLight : strangely enough it's used for the direction of the light…this might change though. The fourth component contains -1 and it's used in the lighting shader to know if it's a directionalLight or not.
    +
  • use for DirectionalLight : strangely enough it's used for the direction of the light???this might change though. The fourth component contains -1 and it's used in the lighting shader to know if it's a directionalLight or not.
  • @@ -250,7 +250,7 @@ Those are different attributes that are always passed to your shader.
    You can find a complete list of those attribute in the Type enum of the VertexBuffer .
    -Note that in the shader the attributes names will be prefixed by an “in”.
    +Note that in the shader the attributes names will be prefixed by an ???in???.

    @@ -396,7 +396,7 @@ A result preview can be seen here:

    -GLSL 1.0 to 1.2 comes with built in attributes and uniforms (ie, gl_Vertex, gl_ModelViewMatrix, etc…).
    +GLSL 1.0 to 1.2 comes with built in attributes and uniforms (ie, gl_Vertex, gl_ModelViewMatrix, etc???).
    Those attributes are deprecated since GLSL 1.3 (opengl 3), hence JME3 global uniforms and attributes. Here is a list of deprecated attributes and their equivalent in JME3

    diff --git a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/light_and_shadow.html b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/light_and_shadow.html index 6de569383..f9898f915 100644 --- a/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/light_and_shadow.html +++ b/sdk/jme3-core/javahelp/com/jme3/gde/core/docs/jme3/advanced/light_and_shadow.html @@ -38,7 +38,7 @@ You can add several types of light sources to a scene using rootNode.addLi

    -The available light sources in com.​jme3.​light are: +The available light sources in com.???jme3.???light are: