Character Animation.

Hello…

We’re doing a TV commercial with animated characters… And of course, we want to use Vray for render… using global Illumination…

We’ve done that for architectural visualization without any problems precalculatin every 10-15 frames an incremental irradiance map in a single machine and then sending to the network the whole animation reading the precalc GI..

I’ve read in this forum too, that if you need to animate something, you have to go frame by frame calculating the GI… My question is… Should I have to pre-calculate the whole GI (with the animated characters) in a single machine to avoide flickering (every single frame)?? an then send the animation with this precalc GI?? or is a valid option to send the whole process to some renderfarms??

Are there some tips to speed up the process?? Maybe separating the character from the scene in different renders?? but in this case… you don’t have the scene contribution to the lightning of the character…

Thanks in advanced, any tips and suggestions will be highly appreciated…

Jose Luis.

Hi Jose.

I’ve done numerous spots with characters and Vray:

http://www.richardrosenman.com/marinela.htm

http://www.richardrosenman.com/whitehall.htm

You’ll find some useful info in each of these pages, but also here are some more tips.

If your scene has a camera move, exclude the characters and render with a presaved irradiance map.

Render the characters on a layer of their own, with single frame irradiance map computation.

Because the characters are rendered on a seperate layer without the environment, a nice trick is to use the rendered environment as a lightmap - this ensures the environment color is used on the characters.

Reflections, highlights, shadows are always rendered on seperate layers for maximum compositing control.

For lighting the characters, I usually use a traditional lighting rig, with single frame global illumination (irr map) and image based lighting.

Hope this helps.
If you have any other questions, just ask.

-Richard

Hi richard…

How d u render the environment to be used as a light map? sorry if this is a newbie questio but i just wanted to know if there are any special steps to take in order to achieve this…also when u mean use it as a lightmap d u mean like using it as if it were an HDRI?

Nil :roll:

Richard,

the success of your work flow is apparent in your end results. I greatly admire the look you’ve able to achieve in the commercials you’ve worked on.

Could you expand upon the character lighting a bit. I lost you when you mentioned you were using a singe frame irr map with image based lighting in addition to your traditional light set up. Are you saying that you are adding a few key lights to the fill generated by the gi image.

thanks

V miller

Thanks for your answer Richard…

I agree that your work is really great… Exactly what we’re looking for… But also I agree with the questions that have been posted… Could you please explain a little deeper???

Two more things… When you render the characters with a single frame Irradiance map… should you render it in a single machine??? or you can have network rendering without flickering with more computers???

The second question a little bit of topic… How did you did the water material in the marinela clip?? it’s really great…

Thanks again,
Jose Luis.

For several shots involving camera moves, pre-calculated global illumination irradiance maps provided flicker-free animation sequences. As usual, shots were split up into various layers to expediate rendering, including background pass, foreground pass, character pass, shadow pass, highlight pass, reflection pass, volumetric pass, and sometimes even a GI pass for realistic contact points of the character’s feet on surface planes. The final lighting was a combination of image-based lighting, global illumination lighting, and traditional lighting techniques.

Richard, could you expand on this? I am not sure how you pull this off.

Hey guys.

I will do an in-depth, detailed write-up regarding this either tonight or tomorrow night and I’ll post the link as soon as it’s ready.

-Richard

That would be most appreciated, thank you!

I’ll look forward to that!

V miller

Hi guys,

Well, I didn’t really get a chance to do a proper write-up (which I still intend to do) but in the meantime, the following should explain some of your questions.

Basically, I had to do a great deal of testing with Vray for character work as we have recently finished a 6 minute fully computer generated short film featuring a character and an indoor environment. To do a full GI render in one layer, the rendertimes exceeded 2 hours/frame. Even with Photon mapping I wasn’t able to get things to speed up AND retain a good image quality. It was this that led me to figure out a faster method of rendering such projects.

The bottom line is that characters must be rendered using a single frame GI calculation. This is because characters move and every frame of the GI lighting is different and therefore has to be re-calculated. This is different from a camera move fly-by in which the background does not move and one can therefore pre-render the irradiance map at every n’th frame and then render the sequence over a network.

Now because characters must be rendered with single frame GI, the fastest method for doing this is to exclude all other geometry from the scene and render ONLY the character. This is nowhere near as accurate as if you rendered the character with the room “Not visible to camera” for instance, where the character would therefore interact with the environment lighting. However, this is also an extremely fast render. The problem is, if you render the character by itself, on it’s own layer, how do you make it interact with the environment lighting?

One solution which I find works well, but is not necessarily accurate is to use the rendered enviroment as a lightmap. Some of you have asked what this means. Lets take a scene example in which you have a character in a blue room with red cast lights. First, hide the character from the room and render the room as a layer of it’s own. For this, you would render it with all the bells and whistles (GI, Photon mapping, whatever). If there is a camera move, you can prerender the irrandiance map every nth frame and then render the entire sequence over a network.
You now have your background layer done.

Now you want to render your character. First get rid of all the room geometry in the scene (hide it like you did with the character) and unhide your character. Note, that you will keep exactly the same lighting set-up you used for your background (ie. the red lights) as you obviously want the character to be lit from the same direction, intensity, color, etc that the room was lit with.

Next, because the room is hidden, the room environment lighting will not be cast onto the character. You can fix this by using the rendered image(s) of the room layer and dropping it into the “Environment” slot (for GI) in the Vray render menu as you would with an HDRI. As with any environment map, make sure it is set to ‘enviroment’, not ‘texture’. Now turn on GI and do a render.

You notice that the character is now lit with the background colors, as well as the scene lights. The first problem that often arises from this is that the combination of the scene lights with the background map GI is too strong and your character gets blown out. This will require minor light tweaking such as lowering the intensity of the main lights, as well as the GI Map.

The second problem you will notice is that the character is lit with the background map as if the map was ‘projected’ directly on top of the character. This means that if you had a red square in the map, the red square would be projected onto the character and this is clearly visible, especially when the character moves throughout the environment. There is a fix to this.

Blur the crap out of the background. The reason is because you are not interested in the background details - you only want the background colors to be used for your character. NOTE: Turning up the blur in the material DOES NOT blur the environment map even though it shows it blurred in the material editor! The right way to do this is to bring the map into Photoshop and put a Gaussian blur of 70+.

There is no specific way to do all this. It changes depending on the scene. For example, if you have a camera move that moves from one end of a room which is blue to the other end of the room which is red, you would use the rendered sequence of the background as a light map because it is important to reflect the change in the background on your character.

By doing it this way, you can have blazing fast GI renders of your characters since there is hardly any other geometry in the scene complicating the GI solution. To give you an example, I usually use a GI min/max resolution of -2, 0 for final production renders with an aliasing of 0,2. With these high settings, the GI map calculation often takes no more than 5-10 minutes. I usually allow myself a maxium of 30mins to 1 hour for final frames with full GI, reflections and motion blur.

There are a whole bunch of other things you must keep in mind when rendering over a network such as rendering your irrandiance map on one computer only and then making it accessible by all render nodes.

Other things which help integrate your character into the enviroment is to use your pre-rendered enviroment map as a reflection map as well. Once again, remember to turn it to ‘environment’ not ‘texture’ and make sure it is on ‘spherical’.

There are also occasional exceptions to the above case. For instace in Robaxacet:

http://www.richardrosenman.com/whitehall.htm

There is a scene in which the characters come running out of the house. The inside of the house is lit with warm yellow lights and the outside is lit with cool blue lights. It would have been impossible to create a convincing effect of the change of light using the pre-rendered background map as a lightmap because basically it would light the characters on the top of the screen warm and those on the bottom of the screen cool. In addition, the fact that warm light floods the cool lights when the door is opened only complicates the scene. In this instance, it was necessary to build the front of the house with dividing walls so that the interior which was lit with warm Vray lights would contain the light and separate it from the exterior cool Vray lights UNTIL the door was opened. Naturally, having included geometry in the scene that is not visible to the camera but still contributes to the GI solution slows down rendering quite a bit.

Ok, I think this post is long enough. Hopefully I’ve clarified a few things for you guys.

To sum it up, the above method is not necessarily physically accurate but it looks good and it renders damn fast. And in the end, that’s all that matters. :slight_smile:

I still intend to do a proper write-up regarding this which I should have ready within a week or two. I’ll post it as soon as it’s ready.

-Richard

Proper write-up? What you descirbed is already fantastic! That is great technical information and well-written. It must have taken you a long time to write. I just had a couple questions.

-I gather that you have to add an image for every other slot in the environment map when a scene is doing a fly-through. Is there a way to render out a low-res .avi, run it through after effects with a blur, then put the .avi in the environment as a substitute. Or is that just knocking up the render times again? I’m just wondering if that would work as well.

-This may be a newbie question. I’m also assuming that you can take your images and blur the whole directory in photoshop with a macro. Should save on time right?

-jujubee

Hey Juju.

Yes, if you want to save time, you can render a low res version of your background, blur it and use that for your lightmap. However, since you will be rendering the background in good sooner or later anyways, you might as well use the better one.

As for blurring the entire directory of textures, I suppose you could do that but you can usually use one lightmap to light various elements ie. characters, props, etc.

-Richard

You can also put a camera approximately where your character is, render a spherical view of your scene, save it as a .hdr file and then use that .hdr file to light your character.

Best regards,
Vlado

How would you go about doing the shadow of the character on the floor?

For ex. I want to produce a moving vehicle on a street. the only thing that has significant movement is the vehicle, but it does not substantially affect the lighting of the scene except for the indirect illuminated shadow on the floor. If i prerender the scene and the street, how can I tell the pre rendered street to get darker under the vehicle?

Hope the question is not too stupid.

Thank you for sharing your insights Richard..

I have a few questions about how you are splitting the scene out into layers.. I’ve begun to do this on a few jobs here for ease sake of editing and re-rendering. Are you doing these in another renderer and using elements? The only way I can think of to do this easily in vray is to save out to a RLA/RPF and to disect it in post into its various layers.. Second, any tips on keeping track of all of this throughout the various inevitable revisions on a given job?

Zf: You want to have a ground plane under your scene that is a matte object, set to accept direct light shadows.. nd set to affect alpha I believe.. (Options found in the Render dialog under Settings → Object Settings..)

Thank you Richard for the explanation of how you go about mixing character animation in with gi. I was amazed that you were able to set aside so much time for rendering (up to an hour a frame). On most of the jobs I work on that kind of time is never available. I’m alway trying to get render times down below 5 minutes a frame. And most of the time by the time I get involved with a project the deadline and budget have already been established so there is no going back and saying “hey guys we really need a week to render this thing the right way”!

Zerofractal,

with regards to integrating the character with the background, this is where rendering with a matte ground plane that has shadows turned on that effect alpha and compositing comes into play.

when you comp your character over your background, the black from the character rendering that has alpha information for the shadow will cause the darkening of your background layer.

V miller

Hey Vlad, that’s a pretty interesting concept - it hadn’t occured to me. I’ll give it a try next time.

zerofractal:

I used to do a lot of my rendering many, MANY years ago with Mental Ray with Soft 3.x and back then, you had to produce a shadow the hard way - through difference passes. I guess I haven’t wanted to change because I still use this method and it always produces the best shadow for me.

For those of you who don’t know about deriving shadows through difference passes, this is how it works.

Render you scene with all white materials, and the object (character) casting the shadow, as a ‘not visible to camera’ object so it will still cast the shadow but not be rendered.

Then hide the character and render the same scene. This time the scene will be rendered without any shadows.

Then you bring the two layers into Photoshop or After Effects or any compositing software and you difference one from the other. Since everything is the same in both renders EXCEPT the shadow, the shadow will be the only thing remaining.

I find this system will give you a shadow in almost any lighting situation and you can even use it to derive GI shadow! It’s a bit of a pain because it means rendering multiple passess, but well worth the result.

-Richard

Hey Dave.

Well, as I think you are quite farmiliar with production work, you know you can certainly build up a large number of layers for a given scene. As a result, file organization is imperative - as a matter of fact it is almost a full time job for our sys-admin.

Basically, when we produce a job, we have a working directory with the name of the client. Within this directory, we usually split it up into Max Files, Reference, Textures, Comps, etc. On another drive, we have the same client name under a “Renders” folder. Here we have every scene numbered out ie. SC10, SC20, SC30, etc. Within each of these scenes we have folders with dates on thim. ie. Jan 4, Jan 5, etc. This is where we put test renders from every night. (We always send out test renders every evening.)

Finally, within these scene folders (SC10, SC20) there will be one folder called final. In this folder there will be a number of directories labeled "Character pass, Shadow Pass, Highlight Pass, GI Pass, Volumtric Pass, and whatever else will be needed. This is very convenient for our compositor because he knows exactly where to find anything and everything.

Our max work files for every scene start off being sc10_01.max and usually end up at somewhere around 100 by the end of the job. YOU MUST NEVER DELETE ANY WORK FILES. This is the most important rule of production. You have absolutely no idea when a client may decide that he liked the test you did last week better than the last one you showed him!

Vince:

The rendering time issue varies greatly from studio to studio. I think I once heard PIXAR attributes a maximum of 1 hour of rendering time per frame. However, bear in mind they are using state of the art render machines and this could only be a rumour.

We have a 20 machine renderfarm and on top of that another 10 workstations on which the artists work on. That gives us a total of roughly 30 rendering computers a night. If we allow 1 hour per computer per frame, this means they can spit out 30 frames an hour which means on a night (from 6pm to 10am) they can spit out roughly 480 frames in that 16 hour period. That equates to 16 seconds of footage per evening. Since most commercials run about 15 seconds or 30 seconds, we can pretty much get the job rendered in a day or two. And like I said before, 1 hour is usually the maximum, it is more often than not only around 30 mins/frame. Had we not a renderfarm, I couldn’t afford more than 10 mins/frame.

On our short film we did encounter a sequence with glossy relfections, GI and motion blur which brought the computers down to halt averaging 6 hours/frame! We had no choice but to let it run it’s course and so we did.

Because a commercial job will have a schedule of about 1-2 months production time, I allow for 1 week of lighting and 1 week of rendering. This is more often than not a good amount of time.

Man, I really should properly write this down on my site for you guys…

-Richard

you should put a Q&A section at the bottom when you do, and include all the questions and answers posted so far, so that others can glean some knowledge from that as well. :smile:

Thank you for the write-up as it stands right now, gave me a real incentive to sit down and try it out. :wink:

Wow!

Richard Rosenman - you rock!

Thanks for all that info :slight_smile: Your work is fantastic, btw!