Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 10 Jan 2012
Offline Last Active Oct 12 2012 12:11 AM

Topics I've Started

3D modeling and animation tool

03 February 2012 - 04:34 AM

A couple months ago I began programming a 3d modeling and animation tool in Java with jogl as the api for rastering. The reason I am posting about it is I would like to make it better. I have a lot of ideas on how to improve it, but I would like some critique and suggestions. One design choice I made some would disagree with. I allow only the formation of quads as faces, triangles and n-gons cannot be created. The scene can be viewed either in perspective or orthographically. Use of textures on the model in the scene can be toggled. Geometry can be viewed as wireframe, flat or smooth. There are currently 6 different modes available in the software.

Object Mode:
  • Allows for creation of primitive objects (plane, circle, box, cylinder, sphere)
  • It will support importing/exporting models (.x, .3ds, .obj)
Edit Mode: Currently all objects other than the selected one are not visible in edit mode. The transformation of the mesh is not applied, the vertices are rastered with their raw position data.
  • Extrusion of vertices, edges and faces.
  • Edge loop creation and selection
  • Translation, rotation, and scaling (can be constrained to an axis)
  • Multiple faces can be filled at the same time. For example if you had cylinder with a section taken out of it, selecting the loops and pressing 'f' would automatically fill in the gap. (it does not always work the way you envision it because of arbitrary potential configurations of faces)
Texture Mode: The screen splits into a 3d view and a texturing panel. The uv coordinates of selected geometry appear in this panel. When an image is loaded, it is applied to any currently selected faces.
  • Supports unwrapping from perspective and an individual face basis. By individual face basis, I mean it uses the face normal to orient and fill the maximum space possible on the texture. There are many ways of unwrapping models, but I am not familiar with the algorithms.
  • I am planning to be able to paint directly onto the model once it has been unwrapped. There will still be access to 2d texturing tools in the software. You will also be able to use images to projection paint onto the model.
Bone Mode: Bones can be viewed as octahedrons or sticks. Only one bone hierarchy is permitted per object.
  • Allows for creation of bones by extruding once a skeleton is added.
  • There are caps at the end of each bone. Moving the caps will change the head position of the selected bone and the tail positions of all the children.
  • Grabbing the body of bone and moving will affect the offset of the bone, populating down to the children.
Weight Paint:
  • After selecting a bone you can click and drag over the mesh coloring it proportionally to the influence on each vertex. Green means there is zero influence and red means full influence.
  • Bones can be posed by rotating to examine the effect of the current weighting on the rig.
Animate Mode: Poses made in weight paint mode persist in animate mode and vice versa. The screen splits into a 3d view and an animation panel resembling a table. The animation panel contains data about the current animation. The first column contains the names of each bone in the selected object's skeleton. The first row displays frame numbers. Keyframes show up as dots in the corresponding frame column.
  • The dots can be moved into a different column to change the frame in which those bone poses should reside. They may also be deleted.
  • I need to write code for IK constraints.
  • This mode is most recently under construction.

Any feedback about potential changes or additions to the project would be helpful. I am not very familiar with the leading technologies, mostly due to their cost. This will be a continuously improved software as new ideas are fed into it. Ideally I want to be able to evolve this project into a fine grained graphical level creation tool for making my games. It spurred from tediously hard coding constraints and properties of physical elements in a game (ragdolls). I want to be able to generate all that data graphically and export it as one file to save time and headaches.