Animating displacement maps


#1

I watched Blizzard, Making of Reaper of Souls. They did a technique like, animating displacement map for more facial expression
http://www.youtube.com/watch?v=f7zY6MVyAFo

It starts from 20:40.

How it is done? Is it hard?


#2

Hello,

I’ve never done it before and I’m not sure what software you’re comfortable with using, but over on PolyCount, one of the user wrote an interesting way of creating wrinkle maps using 3ds Max’s Composite texture node: http://www.polycount.com/forum/showthread.php?t=68446

Hopefully this will give you somewhere to start,
-Harry


#3

There’s many ways to do that.

I’ve found an easy way of just using multiply or ±Average nodes to blend between different maps. As your rig goes into a pose, just have one map blend between each pose.

The only involved part is having an artist go through each of the poses and making a displacement map for each.

You can see this guys is doing the same thing here:

http://vimeo.com/27669723


#4

Hello, I worked on that system. TimCallaway is correct, however in the Blizzard Cinematics pipeline custom renderman shaders are used instead of maya hypershade nodes.

The animators were given controls over a series of individual wrinkle attributes on the face rig controls. These were not tied directly into the blendshapes, they were separate, because they wanted extra control to turn them on and off independently of the blendshapes.

These attributes drove a layered shader in maya that turned normal maps on and off to give animators a realtime preview of the wrinkles (this only really worked in viewport 2.0 if I recall). These maps were only for animator preview, and did not travel down the pipeline. The modeling team did a nice job of making sure there were always low res normal maps for every high res displacement map, with good naming conventions so our rigging scripts could find them.

In addition to driving the normal maps, the animated attributes also drove a bunch of custom float attributes on the mesh that were cached out along with deformation. These attributes DID travel down the pipeline, and eventually automagically hooked up with shader attributes thanks to the wizardry of the backend programmers.

For many years animators and modelers would do animated displacement, but they would do it “blind”. That is, no realtime preview, and they had to render to see the result. Because of shader workflow this also was done last in the pipeline, and usually only one or two shots could get the treatment. This was an iterative improvement on that workflow, mainly for speed. But if you just need to get something working I recommend you do the blind approach first, then worry about seeing it in realtime after you get that working.


#5

So in short, animators were given separated parts of the body so they could only animate? All the crazy and complex stuff was done by programmers and TD’s stuff? This is crazy, i thought, one person can do this stuff. So aspiring animator like me, i can only wait to get hands of controls and play with them. I am not sure if my brain have capacity to create something like that:D


#6

Think of it like a building. The problem is you don’t want to get rained on. The solution is you need a roof. You can build a small hut by yourself, or you can hire ten thousand people to build a skyscraper.

Obviously the skyscraper is better. Large studios are building skyscrapers. They look really impressive, and all the building magazines write articles on them, and the front page of BldgSociety.com is full of images of them. It’s very intimidating. You could never build one of those.

But remember the original problem. Just because you can’t build a skyscraper does that mean your head should get wet? No, build something smaller! The only reason it takes so many people at a large studio is because that studio needs solutions that will serve a hundred artists. If a hundred artists spend 30 minutes a day waiting for something, and a programmer can cut that down to 5 minutes, that’s 2500 minutes a day. It’s literally worth that programmer’s entire yearly salary. But would you pay someone $80k to save you 25 minutes? Of course not. In your position that makes no sense.

So just experiment. Do what works for you in the moment, and meets 80% of your goal, and move on. In a way you’re free.


#7

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.