Deprecated: Function set_magic_quotes_runtime() is deprecated in /storage/content/76/1004576/ on line 33 Deprecated: Function split() is deprecated in /storage/content/76/1004576/ on line 95 Deprecated: Function split() is deprecated in /storage/content/76/1004576/ on line 743 docs:05docs [DokuWiki]

JPatch 0.5 (development branch) documentation

WARNING: Some severe bugs have been found in JPatch 0.5.1 - Don't overwrite existing models with this version of JPatch (see the bug-list below). Keep in mind that these are development versions and have not been excessively tested. Save often and to different files!

This documentation covers only new or modified features in the current development branch. For an overview please see also the JPatch 0.4 documentation, availabe here.

The current version is JPatch 0.5.1

Last update: Oct 14, 2005


  • The animator module is not functional at the moment.
  • The magnet tool is temporarily disabled.
  • When using OpenGL, the size of a rotoscope image is limited to OpenGL’s maximum texture size (2048 x 2048 pixel on my machine).

New features

OpenGL support

JPatch can now take advantage of hardware accelerated 3D rendering. All you need is a 3D graphics card with OpenGL drivers (availabe for most graphics-cards). JPatch currently uses version 1.1.1 of the JOGL Java bindings for OpenGL. JOGL has two components: A java component (included with JPatch) and a native library (e.g. a dll file on Windows). The native libraries for Windows and Linux are included and can be installed from JPatch. Native libraries for Mac-OS-X and Solaris can be downloaded from the JOGL site and must be installed manually.

Installing the native libraries

If running on Windows or Linux (x86 only), the required JOGL libraries can be installed from JPatch. Choose OptionsInstall native JOGL libraries from the main menu. You’ll be asked for a location to install the library (which must be in Java’s library path). To install into one of the default locations you may need administrator or root privileges. Alteratively you can install the libraries into a different location, specified with the -Djava.library.path=<path> commandline option (you’ll have to add this option everytime you start JPatch in this case).

Testing OpenGL support

Open the Realtime renderer settings dialog by choosing OptionsRealtime renderer settings… from the main menu. In the Renderer combobox select OpenGL. Restart JPatch. If JPatch can’t start OpenGL you’ll get a warning, else it should print “JOGL OpenGL renderer” in each viewport.


Depending on the quality of your OpenGL drivers your system may become instable - JPatch may quit unexpectedly, in some cases the entirey system may crash! Most low-end graphics-cards are targeted for games and offer only poor OpenGL support.


Performance should typically be 5-10 times better than JPatch’s software renderer if hardware acceleration is available. Don’t use OpenGL if your graphics card doesn’t support it - as JPatch’s software renderer is highly optimized for rendering JPatch models it is likely to outperform any software-only OpenGL renderers.

Enhanced realtime rendering

In addition to providing hardware accelerated OpenGL rendering, JPatch’s reltime renderer has got some other enhancements:

  • Transparent surfaces now show specular highlights.
  • There’s a new fog effect for the wireframe rendering. It can be enabled/disabled in the Realtime renderer settings (choose OptionsRealtime renderer settings… from the main menu).


  • Selections can be re-ordered (using drag & drop in the selections tree) or sorted (using the Sort Selections button below the tree when the Selections treenode is selected).
  • Automatically created selections are now prefixed with an asterisk (*). All these selections can be deleted in a single step using the Delete * Selections button below the tree when the Selections treenode is selected.
  • When selecting a part of the model that is already saved as selection, the saved selection in the tree becomes highlighted.
  • Selections now also contain bones.
  • Selections can now associate a weight value with each selected object. You can create a linear falloff in the weights by using the add weights to selection button in the mesh toolbar. Scale-, move- and rotate-tools will take the weight into account.
  • The pivot handle can’t be moved from the default tool any longer. If you’d like to move the pivot, switch to the rotate tool, move it and switch back to the default tool.

Add/remove curve stubs tool

You can now add or remove curve stubs to the selected curves using the add/remove curve stubs tool from the popup menu. Add stubs will add curve segments to all not closed, selected curves. Remove stubs will remove the stubs again.

Bone editor

You can now add bones by using the add bones button in the mesh toolbar. It works very much like the add controlpoints tool. Click and drag to add a bone, use the right mousebutton to attach a child-bone to its parent-bone (or vice versa). Note that the default tool can also be used to modify bones.

Expressions (Morphs)

Morphs now adapt correctly to subsequent changes (scales, rotations, etc.) to the model (or parts of the model).

No "add multiple points" button

The add multiple points button has been removed. The new behavior for add points, add bones and changing the view is as follows: The tool is active until you press the right mousebutton (or after a timeout of 5 seconds). When the tool becomes inactive, JPatch switches back to the default tool. I’ll make that 5 seconds timer configurable in future releases.

A new lathe editor

Written by Tee. You can find it in the mesh toolbar below the lathe button.

Move/Zoom/Rotate with middle mousebutton has changed

In addition to the Rotate-/Move-/Zoom-view buttons in the main toolbar you can also zoom using the mousewheel and move by dragging with the middle mousebutton pressed. The view can be rotated by holding down CTRL when pressing the middle mousebutton.

Known bugs (version 0.5.1)

  • Snap to grid and x/y/z-lock constrains are not functional
  • A bug in "extrude" can leave the model in an inconsistent state
  • There’s a bug in “add five-point patch”
  • There’s a bug in the “check model” routine
  • Automirror has some severe bugs in this release
  • Saving a model can fail (in this case JPatch will throw an exception and exit) - this will result in a corrupted (empty) model file - DON'T OVERWRITE EXISTING MODELS WITH THIS VERSION OF JPATCH!!!
  • Delete curve segment can leave the model in an inconsistent state
  • After welding, selecting the previously welded point will select the wrong (welded) point. Attempting to move this point will fail, using undo will throw an exception.
  • Does not work with Java versions 1.4.x. This is a bug and will be fixed asap. As a workaround, please use Java 5.0, available fromSun Microsystems.
  • Bones in selections will not be saved to or loaded from files
  • The bone tree in the tree-view is not updated correctly
  • Sometimes there are artifacts visible (especially when using the OpenGL renderer). They usually disappear when the screen gets updated.
  • Some operations (e.g. deleting large amounts of controlpoints) have poor performance compared to older versions of JPatch.
  docs/05docs.txt · Last modified: 2005/11/22 10:45