Character Animation...Blendshape, Lattice SOP speed??!!

   6394   5   1
User Avatar
Member
249 posts
Joined:
Offline
So over the years i have played around and tested Houdini's rigging capabilities and sops that work with them.

And one thing that i constantly find is the speed of these sops really dissuade me for using it in character animation. You can optimize you scene as much as possible but there comes a point where you need a certain level of detail to work with.

For example Blendshapes can become incredibly slow, and forget about any automation, even for straight forward networks the speed of evaluation can become very painful. And in animation, for whatever features you build into a rig it is almost irrelevant if it doesnt update at a decent framerate.

Ie

I create a bunch of blendshapes for a character and to save on memory, they are only on a model of just the head. Then i use a lattice sop to attach the head to the body at (displayed rendertime) so the head can be animated a fast as possible.

I dont expect the lattice to work super fast in the viewport keeping everything together but it is incredibly slow, but even the simple poses on the head become very slow to work with.

Is this an area that others are looking to see improvements? Character animation in general sometimes feels a little neglected from update to update. Im always waiting for some new UI possibilities or new handles because I can really see Houdini give Maya/XSI a run for their money.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
7722 posts
Joined: July 2005
Online
The speed can vary depending on your setup. The way I usually do it is to have the blend shape right before the deform. Make you have assume only coordinate input changes on both enabled when animating. You should also use the “morph setup” in the blend shape for performance. I don't think you would need the lattice if you use this setup.
User Avatar
Member
249 posts
Joined:
Offline
I need the lattice because the body and head is one mesh. My blendshapes aren't done in Houdini, i do them in Zbrush (fast/accurate). I was planning on doing about 80 or so base shapes on the face and to have the body in the same file is just silly and will take up unnecessary disk space.

So cut the head off the body, sculpt, and then use the lattice to re-attach after the blendshapes.

I use the “sopcreateedit” function to turn the external fileSops into edits that just store the deltas so i can use the “Assume Morph Network Setup” and “Assume Only Coordinate Changes In Input” but these changes have marginal speed improvements.Not to mention i will need to have corrective shapes and have this all driven in the viewport by control objects.

Do you not have speed problems with this setup or is it just me?
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
7722 posts
Joined: July 2005
Online
The lattice is going to be slow. I don't understand how you're using the lattice to reattach the head. If it's in a separate object, then you can just keep it separated but captured weighted the same way. Otherwise, you should just transfer the sculpted blendshapes back into the original full (head+body) geo and create edit sops for them.

The whole point of the morph set up is that only the points that are different are applied so that the body points should never be touched.
User Avatar
Member
249 posts
Joined:
Offline
edward
The lattice is going to be slow. I don't understand how you're using the lattice to reattach the head.


I'm sure you know of this method, although saying that i haven't seen it being mentioned on forums.

So for models that are mid to high resolution i want to break up the task as much a possible. Especially when it comes to the head (usually you will find the face has more geometry than the rest of the body). So minimizing the amount of points being evaluated is desirable.

Here is a screenshot of the process.



Full Rez Pic [lh6.googleusercontent.com] - Note the lattice settings


The full model on the left, the head with the blendshape split off from the body in the center and with the lattice, the shape aplied to original model via the lattice.

When displayed in the viewport, i only have the base head model and the various shapes passing through with the blendshapes. Then when all is done, a lattice will wrap those to the original model. It is quite a non-linear way to work because the original model is not altered. I will make a video if my explanation is a little too muddy.

Even when you convert all the shapes into edit nodes, the amount of points parsed is still very inefficient.

Ie The full base hitchcock model has around 43k points. The head alone has at least 20k points. (This is not crazy amount of geometry to work with, especially for a digital-double type of asset. I have a project on the shelf that im dreading bring into Houdini with double the detail. )


To have 40k points going through a blendshape node for something as small a change as an eye lid dart, or left lip lift is silly, especially if most of the blendshapes are going to be localized to the head. Regardless of converting the external files into edit sops, it is still 40k points being pushed into a blendshape when 50% isn't needed.

So picture a base head (split from the original) and all the morphs are sculpted and applied to that model. It evaluates much faster, and much smaller on disk. Then a lattice will apply the output of the blendshape to the original full body model.

Here is a the performance monitor of the process.




Full Rez Pic [lh6.googleusercontent.com]

Now imagine 80+ shapes for the face not to mention correctives.


Sadly this is far from what i wanted to talk about. The blendshape sop, is still very slow, 20k points should have such a noticeable effect on speed. Remember this video https://vimeo.com/28025808. [vimeo.com] The number made my mouth water and they were talking about geoemtry with a million points, removing groups, adding points etc. There has been a real difference from H11 to H12.5 but with the new geometry library this really needs to be looked at because I feel character animation is a lost opportunity when it comes to Houdini.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Staff
5160 posts
Joined: July 2005
Offline
One thing that would help your update speeds is to turn off Polygon Convexing in the Geometry tab of the viewport display options. It's not cheap, but for well-behaved models, you can disable it.
  • Quick Links