[Contact] [Contributions] [Downloads] [FAQ] [Forum] [Links] [Main] [News] [Project Page] [Status] [Website] [Wiki]

[Action] [Asteroids] [Audio] [Colorizer] [GUI] [Hierarchy] [Input] [Math] [Media] [Physics] [Plugin] [Timer] [Video/Modeler]

Vertex Modeler

Java-based programmatic model generator

License: LGPL (license.txt)
API Docs: Can be found here
Changelog: Can be found here
Screenshots: Can be found here

Short Description:
    Vertex Modeler is a 3D modeler designed for use by programmers, as well as a simple scene graph API that is easy to use.

Long Description:
    I really needed some manner of building 3D models for The Deimos Project, but all the modelers I've looked at have a counter-intuitive user interface that was probably designed for an artist's point of view.  I needed something built from a more logical stand-point, something that appeals to a programmer instead.  Vertex Modeler is the solution to this problem.
    Vertex Modeler allows a programmer to construct a model from java source code.  To accomplish this, it takes a source file and compiles it using an embedded java compiler called Janino (http://janino.net or http://janino.codehaus.org).  This source file is assumed to have a class in it called "VisibleFactoryImpl", which is an implementation of the interface VisibleFactory.  The class is also assumed to have a no-argument constructor.
    An instance of VisibleFactoryImpl is created and then it's newVisible() method is called.  This produces an object that implements Visible, an interface that describes methods required to build any OpenGL object in a manner that it can be used with this program.
    If you're going to be doing 3D modeling, you'll be interested in the Model class.  You should also review the VertexUtil class, as it is very useful for constructing the vertex arrays used for building Model objects.
    I've typed up some notes on model design that you can find here.

Features:
    Object Oriented approach to OpenGL without preventing access to low-level APIs.  In other words, this augments your OpenGL work, instead of replacing it.
    Build models without a crappy 3D GUI getting in the way.
    Build models using a program instead of just data.  Suddenly, your trigonometry and geometry classes aren't so useless...
    Texture and paint your models, too.
    Multiple colorations (the paint) can be stored in a single model and switched as needed.
    Height-mapped terrain or spheres built from images.
    Handy OpenGL helper classes.
    Automatic normal calculation, or you can supply your own normals.
    Use triangles, triangle strips, triangle fans, quads, quad strips, lines, line strips, and line loops to build your models.
    XML files for model import/export.
    Exports to Wavefront .obj format or to a POV-Ray Mesh2 structure.
    Automatically uses OpenGL display lists to accelerate rendering your models.
    Simple generation of auras for models.
    Simple generation of line-based versions of any model.
    Easy to use split screen rendering system.

Usage:
    Just type the following in a console window:
"java -jar vmodeler.jar file.java"
    file.java refers to the model source file you wish to view.  There are several example models in the models directory.  These model sources are also governed by the LGPL license, except ColorCube.java, TestBed.java and VariableSceneGraph, which I have decided are public domain.  That way, you can build models (or your own test programs) from an example without having to worry about the license.
    You might want to try the "-help" switch sometime, too; it will show you all the options and a little information about them.
    Also, while the Modeler is running, you can press the S key to take a screen shot.  You'll have to configure the "directory" property in the "capture" node of the configuration file if you want it to save files somewhere other than the current directory.

Configuration:
    Many options that affect rendering and the window can be found in the file vmodeler-config.xml.  This default configuration file must be in the same directory as the main jar file.  All of the currently used options are defined to have a value in this file, most often with an explanatory comment.  Alternate configuration files can be specified at runtime using the -config switch.  Cameras and lights are specified via this file.
    I strongly suggest that you read all the comments and experiment with all the options in the "origin" node of the configuration file.  This is one of the more counterintuitive sections of the file, but it's important, because the grid origin type is about the only thing you can use to get a solid reference on the comparative size of your models.
    Take heed of the fact that the axis lines for either origin display method are red, green, and blue.  The red line is displayed along the X axis, the green line is the Y axis and the blue line is the Z axis.  For "origin" type, each line points from the origin in the positive direction.  For "grid" type, the darkened half of each line points in the negative direction.

Special Note About Source Code and Required Libraries
    The source to this library/application is available in The Deimos Project's main distribution archive.  If you downloaded just the modeler, you only received binaries, API docs, some other miscellaneous files required to run and documnetation to explain how things work.  You'll also need to obtain copies of JOGL and Janino.  Please read this for more information.

Packaged Model Format:
    Regular Jar file
        Manifest.xml
            Holds data on the models and textures
        Models/ModelA.xml
        Models/ModelB.xml
        Textures/Tex1.png
        Textures/Tex2.png

Hosting for this project generously provided by:
SourceForge.net Logo