3D Manipulation Widgets

General discussion about JPatch

3D Manipulation Widgets

Postby dcuny » Mon Feb 25, 2008 8:15 pm

I ran across a video on YouTube showing off the 3D controller widgets used in ShapeShop:
manipulator.png
manipulator.png (62.92 KiB) Viewed 6965 times

It's an "all in one" sort of manipulator. The box in the center is for scaling, the arrow for translating, the circle for rotating, and the circle at the end of the arrow for selecting a different axis of rotation. You can change the mode via gestures, which (unfortunately) only really makes sense if you've got a pen tablet. :?

Still, there's some nice stuff to see here. One cool feature is that it's smart about knowing where the various axis are, so when you change the direction of the widget, it'll automatically snap to the local or global axis:
axis.png
axis.png (77.95 KiB) Viewed 6964 times

Another neat feature is that you can apply modifiers to the manipulator, such as constraining the rotation to the current axis. You can then "pin" the manipulator into place, so it remains on the screen. You can have multiple "pinned" manipulators:
pinned.png
pinned.png (106.29 KiB) Viewed 6965 times

I'm not sure it's better than what's in JPatch, but it's nice to see a different approach than what everyone else is doing.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: 3D Manipulation Widgets

Postby sascha » Mon Feb 25, 2008 9:13 pm

Neat :-)

I like this mouse gesture thing, I can imagine that, once you're used to it, it's pretty fast (if you have a tablet).
I do have an old Wacom tablet, some day I'll have to check whether it works well with Java and JPatch.

I've also looked at the demo reel from the homepage - it's certainly impressive, but I wonder if it's actually that usable. It reminds me of Teddy (heh, full circle, wasn't it you who asked about implementing some of Teddy's features into JPatch 0.1 ;-))
The results look very cartoon-like - it's a matter of taste, but I prefer more - hmmm - traditional models.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: 3D Manipulation Widgets

Postby dcuny » Mon Feb 25, 2008 11:38 pm

sascha wrote:The results look very cartoon-like - it's a matter of taste, but I prefer more - hmmm - traditional models.

Most of the models are like that. I don't know if it's a limitation of the modeling program or the person who's actually doing the modeling. Most of the program's focus seems to be on manipulation rather than modeling.

I've got a tablet, but it only really works under Windows. I spent a couple of days struggling with it in Linux, and I finally gave up. I could move the pointer, but couldn't select anything.

The gestures seem intuitive, but not especially fast. I think using hotkeys would probably be a better way to speed the workflow. There are a few hotkeys I remember from Blender, such a grab and rotate that work really well.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: 3D Manipulation Widgets

Postby sascha » Tue Feb 26, 2008 9:11 am

Speaking of hotkeys, most 3D programs don't use the initials of tool names as hotkeys - you'd need different hotkeys in each language, but the real drawback is that they're scattered across the keyboard. I like the approach of using QWERT to select tools and e.g. ASDF to select the modeling mode (vertex, edge, face, object), and 12345 and ZXCV for something else. It nicely groups similar functions to nearby keys, and seems to be standard in most modeling applications now (e.g. Maya and Silo). All these keys are easily accessible with the left hand, so you can keep the left hand on the keyboard and the right hand on the mouse (of course this should be configurable, so that e.g. left handed people could adapt the keyboard shortcuts to their needs).
So I'd put often needed functions on the left side of the keyboard (so everything can be reached quickly when your left hand is in the "default" writing position with the index finger on F), and put seldom used functions on the right side or the numpad.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: 3D Manipulation Widgets

Postby John VanSickle » Wed Feb 27, 2008 10:42 pm

I thought of a really odd widget idea lately. Others have probably thought of it, so I'm not going to claim to be an innovator here. The idea is relatively half-baked at the moment, so bear with me.

The idea is based on a 3d analogue of a rectangular spline patch. Imagine a 3d array of control points, which are used to deform a given object in the same way that, for instance, a Bezier bicubic patch deforms the space (0,0) through (1,1).

In this way an object, which would have to be tesselated, could be bent into just about any shape that the control points could manage.

Pixar does something more complicated with this, by using a control cage that has any topology, but I was thinking of a simpler form using just a rectangular cage.

The plus is that in addition to the known linear transforms (scale, rotate, translate, and shear), just about any non-linear transform (twisting, bending, non-linear stretching) is just as easily implemented.

The drawback is that for a large cage, a large number of control points are necessary, and manipulating the internal control points may not be practical. The other issue is that finding a coherent system by which some cages could be mounted on others may be a tricky problem.

I should probably develop a system for this and cough up some visuals to go with it...
John VanSickle
 
Posts: 189
Joined: Sat Feb 16, 2008 2:17 am

Re: 3D Manipulation Widgets

Postby sascha » Wed Feb 27, 2008 11:16 pm

I think what you describe is called "free form deformation". There's been an article on Gamasutra about that topic.
They use cubic Bézier volumes, but you could easily extend that to higher orders.

I thought about adding such a "cage" to the animator (so it could be used in an animation) - I could imagine that one could create some pretty weird squash-n-stretch effects with such a tool.

Blender seems to have such a tool too, allowing not just a cage but arbitrary topologies. In some sense you could also use hierarchical modeling to do it. If you have just a very coarse, low poly mesh at level 0, and all the fine details modeled at level 1, 2, or 3, you could use the level-0 "cage" to do that kind of deformation.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: 3D Manipulation Widgets

Postby John VanSickle » Wed Feb 27, 2008 11:21 pm

sascha wrote:They use cubic Bézier volumes, but you could easily extend that to higher orders.

I actually intended to use a piecewise cubic spline for the control points along dimensions with more than two of them; it's based on the limit curve for subdivision, and has C^0, C^1, and C^2 continuity.

Blender seems to have such a tool too, allowing not just a cage but arbitrary topologies. In some sense you could also use hierarchical modeling to do it. If you have just a very coarse, low poly mesh at level 0, and all the fine details modeled at level 1, 2, or 3, you could use the level-0 "cage" to do that kind of deformation.

I was first going to implement a rectangular structure, because when I try new features I go for the low-hanging fruit.
John VanSickle
 
Posts: 189
Joined: Sat Feb 16, 2008 2:17 am

Re: 3D Manipulation Widgets

Postby dcuny » Fri Feb 29, 2008 8:28 pm

You might also look at MovingSketch, a sort of 2D version of this idea.
Image
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am


Return to General discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron