GSOC 2013 Sketch Mesh Editing - Video, Test and Downloads


(apinzonf) #1

Gsoc 2013 Sketch Mesh

Description

The Sketch Mesh tool allows you to posing a mesh while maintain the surface details.
This is a test version has some bugs and console displays debug messages.
The user interface is not finished.

Download

How it works?

The tool works in edit mode. (W key Specials -Laplacian Deform)You must perform these steps

  • You must first select some vertices to mark them as Static with the J key. These vertices will remain invariant during the process and are required.
  • After some vertices must mark as Handlers with the H key, these vertices must be different from the static. The vertices handlers are the ones you can transform.
  • Now you can move the vertices handlers, and observed that unlabeled vertices change according to the transformation of the vertices handlers.

http://wiki.blender.org/uploads/thumb/c/c9/Apinzonf_Wmenu.png/369px-Apinzonf_Wmenu.pnghttp://wiki.blender.org/skins/common/images/magnify-clip.png
Edit Mode W key Specials Menu -> Laplacian Deform

http://wiki.blender.org/uploads/thumb/1/18/Apinzonf_Mark_Static.png/369px-Apinzonf_Mark_Static.pnghttp://wiki.blender.org/skins/common/images/magnify-clip.png
Mark Static vertices with J key

http://wiki.blender.org/uploads/thumb/b/b4/Apinzonf_Move_Handlers.png/369px-Apinzonf_Move_Handlers.pnghttp://wiki.blender.org/skins/common/images/magnify-clip.png
Mark Handlers vertices with H key

http://wiki.blender.org/uploads/thumb/b/b4/Apinzonf_Move_Handlers.png/369px-Apinzonf_Move_Handlers.pnghttp://wiki.blender.org/skins/common/images/magnify-clip.png
Move the vertices handlers in free form

http://wiki.blender.org/uploads/thumb/7/70/Apinzonf_Compute_Solution.png/369px-Apinzonf_Compute_Solution.pnghttp://wiki.blender.org/skins/common/images/magnify-clip.png
When done to transform the vertices handlers, the system will compute the solution

Considering the thread some opinions on the site user Blenderartist as Indy_logic and David Jeske(davestf), i implement the deformed Laplacian as a modifier.

In the Laplacian Deform modifier, used two vertices vertexGroups one for static and one for vertices handlers.
By implementing the tool as Modifier allowed the use of other modifiers as Hook, so that the vertices handlers can be controlled by various Hook objects.

This is a test version has some bugs and console displays debug messages.
This is a work in progress and the next version will use the grease pencil.

In the next video you will see how to use the Laplacian Deform modifier.


(m9105826) #2

Very cool stuff! Two things:

Any chance we’ll see this function alongside the Grease Pencil as it did in the original demo video?

It would be nice to be able to have some kind of ‘Revert to Original Shape’ option.


(const) #3

This will bring sculptors tears of joy. :smiley:


(davesf) #4

simply. awesome.

i think blender could use some standard UI to take the “mystery hotkeys” out of processes like this, but that seems tangential to the tool.


(Indy_logic) #5

this looks totally different from what I was expecting. I thought this had something to do with sculpting and drawing or something. I have to admit that I wasn’t very interested before but now, my mind is going with ideas about it.

The first thing is, can this work in real time? If so, could it be a modifier instead of an operator? The reason being that this looks more like it could be used as a sort of quick character animation tool or like a super hook. In fact, that’s exactly how I would see using it: add some bones to your mesh, bind them with Laplacian deform modifier, and then you can specific in the bone properties which bones are static (pinned by the way) and which ones are handles (unpinned). The weight maps associated with each bone act as the point groups that you would normally select in the tool currently.

EDIT: Now that think about it, with bones, there would be no need to pin or unpin them. when they are left alone, they are static and when you are moving them, they are handles.

In the example of the horse, you would basically just replace the selections you made with bones. So, one for the head, and one for each foot. You could then simply animate the bones and rely on the system that’s already in place.

This is all predicated on weather or not it can run in real time or not though.

I don’t know, what do you guys think?


(michalis) #6

Very very interesting!!
We’re out of shortcuts… Though we first enter Laplacian deform mode, J in edit mode? H in edit mode? Very hot keys, they are.


(ng-material) #7

i tried it,looks good,only seems to work well on very low res mesh,tried it on higher res dyntopo mesh,it goes crazy.

it lacks the control that an artist would need though,seems great for getting the general gesture for quick sketches.


(michalis) #8

ng, I was afraid of this.
edit mode can’t support heavy meshes.
Still using it (proportional/connected) sometimes.
However, I wonder, what gonna happen under multires mode? Can you check it? Normally, it will work. (normally lol)
In the demo movie, I noticed triangulated meshes. Why so?


(ng-material) #9

It works with multires.no sculpt mode though.

its not much different from cursor pivot/proportional edit.rememebr there are other gsoc projects which could help us with speed/performance

it doesn’t feel artist friendly at the moment though. select mesh,w menu,deselect,then select again,hit hotkey,deselect,select again,hit hotkey,then grab.

its interesting feature,but workflow is not ideal.we’ll see how it develops.


(zeauro) #10

It does not seem to be very predictable when scaling a selection of handlers. Handlers are smoothed, too.
So, at the end, selection’s area can be a lot smaller than what was displayed before validation.
I thought Bsurfaces add-on was able to snap existing vertices to grease pencil. But in fact, only vertices created by the add-on can be snapped to grease pencil stroke.

So, if handlers could be snapped to grease pencil, it could work as in the paper’s video.
I agree with ng-material, current workflow is not very friendly.
I did not figure out how to use a third handler.
As is, it is like a laplacian proportionnal edit tool.
But it would be more interesting as a modifier. It could be used for modeling and animating.
I don’t know if it is requiring too much work to make it evaluating mesh frame by frame.

In Blender, Vertices selection = Vertex Groups.
So, it is logical to imagine a modifier using vertex groups to attach them to a target.
It seems that it would be a new tool between armature, hook, lattice and mesh deform modifier.
Hook is relative to only one target. Lattice and Mesh Deform are relative to several targets but linked in a cage.
So, with this feature animatable, we could imagine a new modifier with a deformation related to several targets without cage restriction.
Actually, bones are used with an armature modifier. It implies a lot restriction between deform bones of a complex armatures.
I think that it could be a new kind of laplacian lattice or mesh laplacian deform modifier.

Anyways, as is, it can be used to create animatable shapekeys.


(ng-material) #11

I think I got ahead of myself actually,this is in-progress.

If he had no intention of doing the grease pencil thing,I don’t think it would be called “sketch editing” I think he is just testing functionality at this point.


(Ace Dragon) #12

I just watched the video.

This is honestly more impressive than what the initial images from the proposal showed, it’s like s supercharged Proportional Edit tool that tries to keep proportions and volume by propagating the results across the entire mesh.

I agree with Indy Logic that this type of thing working with the animation system would only mean it being of benefit to all users (even those that pose characters just for still images).


(Sanctuary) #13

The video is rather impressive, good luck in completing this gsoc project.


(karlis.stigis) #14

I definitely can see uses for this.


(apinzonf) #15

This is a work in progress and the final version will use the grease pencil.


(apinzonf) #16

This system does not work in real time.
The video performance is good because the number of vertices is small.
Make it a modifier or an operator will depend on how the system evolves, and possible uses that are.
The system is fairly predictable but has its own behavior, so users must use it to know that things can be done and what not.


(apinzonf) #17

I have had many problems with the size of the edges and floating point, I’m still researching how to improve it.


(apinzonf) #18

No multiresolution mode had raised in the proposal, but will be discussed if we can make any changes to make it compatible.
This system works with meshes composed of triangles or quads.


(davesf) #19

What about exposing it as a modifier which is conceptually more like cage-deform and/or the hook-modifier? …

… create a “Laplacian Deform” modifier, with hook-objects for statics and handles
… the hook-objects could be just empty.sphere (point-influecne spheres)
… some kind of “bind” button could bind a-hook object to it’s verticies
… movement hook-objects would cause the laplacian modifier to deform the final mesh
… during display (instead of render) it might be possible to show progressive-interactive-approximations, and eventually reach the final solution over time, more like progressive cycles rendering

I think this would be more natural than the vertex marking for several reasons:

  1. the handles are visible, movable objects
  2. it’s easier to mark/use multiple handles
  3. the handles are tangible, so it’s easy to switch/select/move them, rather than dealing with “a bunch of arbitrary vertices”
  4. the Laplacian Deform could be used on a pre-subdivided mesh, allowing it to be much faster, while placing a subdivision surface modifier after it.

The above technique could also work for vertex-groups instead of cage-objects, though it would lose several of the benefits.


(Vilem Duha) #20

just watched your progress video. Great stuff, congrats! This tool would save me so much time allready now :wink: