Modeling tools

Ideas, enhancements, feature requests and development related discussion.

Modeling tools

Postby sascha » Fri Jul 25, 2008 12:19 pm

Modeling with polygons, you'll have much more options compared to the patch modeler. To not have an explosion of tools, I try to incorporate as much functionality into a single tool as possible - while keeping them as intuitive as possible. It's kind of a tightrope walk, so I'd appreciate your opinions. Here are some examples of how tools work now and/or what I plan to add.

The default tool
This tool can be used to
  • select vertices, edges or faces, either by
    • dragging a rectangle or lasso around them
    • clicking on each one while holding down the shift key
  • moving a single vertex, edge or face simply by clicking on it and dragging it
  • moving any number of selected verices, edges or faces, by clicking on the previously selected geometry and dragging
  • When the polygon-cage display is turned off but the wireframe on the limit-surface is turned on, you can directly manipulate vertices on the limit surface. Just click on the vertex and drag the limit surface directly, JPatch will automatically adjust the position of the control-vertex to fit the limit surface position.
There's also a switch that toggles unconstrained mode vs. surface-normal mode - in the latter vertices can be moved along their surface normal only. This tool also works on any subdivision level.
So far the tool works fine and behaves quite intuitive. What I'd like to add is a "weld" option. If you move a boundary edge over another boundary edge, the two edges would be welded. This would also work for any number of connected boundary edges. This way there's no need for a special weld tool, you can simply use the default tool - just drag one edge over another and they'll be welded.
The extrude tool
Very similar to the default tool. The select modes are identical, but when dragging, instead of dragging the selected vertices, an extrude operation is performed and you'll drag the newly extruded vertices instead. It also shares the "constraint to surface-normal" mode of the default tool. You can choose whether newly crated faces should be connected and (if they're not) I plan to add another constraint option to keep the new vertices on the face (I think this is called "insert faces" in some tools). Extrude of course only works on the level-0 mesh.
Again, this tools works well and also is intuitive. What I'd like to add is the "weld" option too. It would work exactly as in the default tool. Since you don't drag the original vertices, but extruded copies of them, this would effectively be what other packages call a "bridge" tool: Select one egde, drag it (creating a new, extruded face) and connect it with andother edge by moving it over it.

This way, we've got the following functionality in just two tools:
Select and modify selection, move vertices freely, move vertices along surface-normal, directly manipulate limit-surface, move vertices on any subdiv level, extrude freely, extrude along surface-normal, insert faces, weld edges, bridge.
I don't think that this goes at the expense of user-friendlyness. To the contrary: You don't have to switch between bezillions of tools.

So, there would be the following tools:
Geomtry tools
  • Default tool (select and move freely/along normal)
  • Translate tool (translate freely or constrained to local x/y/z)
  • Scale tool
  • Rotate tool
  • Corner tool (manipulate corner sharpness of vertices)
  • Crease tool (add creases and manipulate their sharpness)
Topology tools
  • Extrude tool
  • Lathe tool
  • Delete tool (delete selected faces - it's not a tool, the operation is simply bound to the delete and backspace key, and perhaps a popup menu item)
  • Add Edge tool
The "Add Edge tool" is another tool where I'd like to put more functionality into. Right now you can add "stray" edges (edges that don't belong to faces yet). These can later be used with the lathe or the extrude tool to form surfaces. I'd like to use the tool to split faces too. By adding a new edge between two vertices and/or two edges that belong to the same face, you'd split that face anlong the new edge (effectively deleting it and replacing it by two new faces).

I think these set of tools should be quite powerful, but eventually there will be more tools:
*Special select tools (e.g. select an edge loop)
*Insert new edge into selected loops
*Refine mesh
*Mirror and Symmetry modes

So, what do you think?
Site Admin
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Modeling tools

Postby rjh » Fri Jul 25, 2008 4:44 pm

Hey Sascha,

Wow ... and Wow. All sounds really good. I like that you are trying to reduce the # of tools without sacrificing functionality. Only real way to give you my best opinion is to give it a test run myself. Is there anything you would feel comfortable posting for us to run through its paces ?

So the modeling sounds close to a 1.0 release ... how close are the animation tools to a 1.0 release ?

You have me excited again ... and it sounds like you are on the "home stretch" . Any help finding bugs and or alternate approaches is what I am here for.

Posts: 179
Joined: Thu Dec 30, 2004 10:33 pm

Re: Modeling tools

Postby sascha » Fri Jul 25, 2008 5:03 pm

There are some important parts missing, but all in all the modeler is almost ready. The most important are:

* Adding/Removing from the selection with SHIFT down is not implemented.
* Undo/Redo needs to be fully implemented by all tools
* Because I've changed the way tools work (now in world space instead of local space) I need to adapt the older tools (rotate, scale, translate)
* New tools use an "overlay" drawing mode - I need to adapt the old tools in that respect too.
* These weld and bridge operations are not yet implemented
* There's no snap-to-grid yet.

And finally, I have to make sure that everything works well together with the scene-graph and morphs and poses.
Oh, and before I forget, saving and loading models isn't supported yet either.
So it will be some time before the modeler is fully functional, but I will upload a "demo" as soon as I can. The list of things that are supported is longer than the above list after all :-) And, with things starting to work again, its also much more fun coding - I hate coding in the dark with no noteworthy milestones getting done.
Site Admin
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Modeling tools

Postby sascha » Fri Jul 25, 2008 8:58 pm

Extrude can now extrude from both, faces and edges. Extruding faces is called box-modeling and is very powerful - you can model quite complex shapes in no time. Extruding edges is just like extrude worked in the patch-modeler. It's all incorporated into a single tool, you can either select faces or edges to extrude by simply clicking on them and dragging. I think this combines the best of both worlds, and it's really funny to play with it - I think you'll like it.
Site Admin
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Modeling tools

Postby dcuny » Fri Jul 25, 2008 10:41 pm

It sounds pretty exciting!

Not having to toggle from one tool to the next sounds great. I'm looking forward to playing with it. :)
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Return to Development

Who is online

Users browsing this forum: No registered users and 1 guest