Announcement

Collapse
No announcement yet.

Help - Rendering an animation with a static camera.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Help - Rendering an animation with a static camera.

    Greetings everyone,

    I am working on my animation reel but have some rather complex scenes and setups. The images are taking around 8 hours to render using deex' High (75) setting on Irradiance map + Light Cache interiors. If I drop to medium or low quality the rock has noise, the character is noise free, though.

    As a student, it's almost impossible for me to have 8 hour renders per image since every short animation is around 360 frames long. As such, I was wondering if there is a way to render the background once and then render the animated characters alone in front and later on, composite them together. My main concern are the shadows, though. I assume you would need to render the background object to calculate them.

    The characters would be using a FastSSS material with Maya hair using the new VRayHair Material in 2.2 (great job on that shader, by the way).

    This is an example of the shot. The camera and lights need some tweaking and I haven't added the animated characters to the scene, just a test character to calculate the render times:




    I would appreciate any help on this matter as I have little experience compositing.

    Best regards,

    Eduardo

    Edit: This is using a quad core i7 920 @ 2.67Ghz and 24GB of DDR3 memory.
    Last edited by Emcs07; 01-03-2012, 06:22 PM.

  • #2
    You can look at this tutorial; it's for 3ds Max, but the workflow in Maya is pretty much the same: http://www.spot3d.com/vray/help/200R...rials_anim.htm

    It explans how to split the render in two - the background and the moving characters. The VRaySphereFade tool is also available in Maya.

    If you have any questions, please let me know.

    Best regards,
    Vlado
    I only act like I know everything, Rogers.

    Comment


    • #3
      Originally posted by vlado View Post
      You can look at this tutorial; it's for 3ds Max, but the workflow in Maya is pretty much the same: http://www.spot3d.com/vray/help/200R...rials_anim.htm

      It explans how to split the render in two - the background and the moving characters. The VRaySphereFade tool is also available in Maya.

      If you have any questions, please let me know.

      Best regards,
      Vlado
      Hello Vlado,

      Thank you so much for your response. I've read through that tutorial but I am still somewhat concerned the render times will still be pretty high since the spheres would have to be big enough to encompass the shadow on the right side (I assume).

      I'll try it and see how it goes.

      Thank you for your patience,

      Eduardo

      Comment


      • #4
        Originally posted by Emcs07 View Post
        still be pretty high since the spheres would have to be big enough to encompass the shadow on the right side (I assume).
        It might be possible to do the shadows separately using the various render elements. Just a shadow pass would be a lot faster than doing the full render.

        Best regards,
        Vlado
        I only act like I know everything, Rogers.

        Comment


        • #5
          Originally posted by vlado View Post
          It might be possible to do the shadows separately using the various render elements. Just a shadow pass would be a lot faster than doing the full render.

          Best regards,
          Vlado
          How can I ask VRay to render only a shadow pass using render elements?

          I can think of a few ways, correct me if I'm wrong:

          -> Disable primary visibility on all my objects (characters/hair) except the shadow receivers (the wall). > Apply a VRayMtl Wrapper to the wall with alpha contribution of -1 and enable shadows/affect alpha.

          or

          -> Apply a VRayMtl Wrapper to the wall with alpha contribution of -1 and shadows/affect alpha enabled then render the characters as normal.


          If there is another way, please let me know!

          Kind regards,

          Eduardo

          Comment


          • #6
            if you dont mind the gi being static on the rear wall ( but want direct shadows there) you could try a method i use regularly in max. . (id be interested to know if this works in maya actually!) hide the character, generate a static imap and lightcache for the environment geometry. set the imap and lightcache to "from file"

            now unhide character and untick "use irradiance map" in all the materials on the character.

            now when you render, the bg will use the static imap, and the character will use brute force gi*, based on the lightcache you precalculated. depending on scene complexity this can be quite fast, but it can also be quite slow..it is however totally flicker free. youll have to test if its practical in your situation.

            if there was a way to do this trick, but still use the irradiance map in per-frame mode for the character, it would be even more flexible.. but for now, BF is the only choice for this workflow.

            * strangely, -in max at least- you control the BF subdivs using the imap hsph. subdivs setting. it has no effect on the imap now, as youre using a precalcuated map.
            Last edited by super gnu; 02-03-2012, 02:37 PM.

            Comment


            • #7
              just realised, looking at your test renders, you -need- the background to have animated GI, as the lighting changes drastically (unless those are 2 seperate shots)

              in this case, youre stuck with big rendertimes. compositing the character seperately will offer little speed benefit either.

              Although 8 hrs a frame is quite excessive, animated gi on complex geometry like that is unlikely to ever be "1 computer" fast.

              Comment


              • #8
                Originally posted by super gnu View Post
                if you dont mind the gi being static on the rear wall ( but want direct shadows there) you could try a method i use regularly in max. . (id be interested to know if this works in maya actually!) hide the character, generate a static imap and lightcache for the environment geometry. set the imap and lightcache to "from file"

                now unhide character and untick "use irradiance map" in all the materials on the character.

                now when you render, the bg will use the static imap, and the character will use brute force gi*, based on the lightcache you precalculated. depending on scene complexity this can be quite fast, but it can also be quite slow..it is however totally flicker free. youll have to test if its practical in your situation.

                if there was a way to do this trick, but still use the irradiance map in per-frame mode for the character, it would be even more flexible.. but for now, BF is the only choice for this workflow.

                * strangely, -in max at least- you control the BF subdivs using the imap hsph. subdivs setting. it has no effect on the imap now, as youre using a precalcuated map.
                Hey, sorry for the confusion! The GI is static, lights don't change. Those two are just different light setups I've played around with.

                Your method sounds great actually. I do have a FastSSS2 material in the scene which doesn't have the checkbox for "Use Irradiance Map," will this affect the method in any way?

                I'll definitely give it a shot, this might be the answer I was looking for. =)

                Thank you so much,

                Eduardo

                Comment


                • #9
                  ah. crap. no.. the fastsss2 shader doesnt work with this method. you need the checkbox.

                  Comment


                  • #10
                    to be honest, since that rear wall looks to have some heavy displacement on it, and the lights dont move, you probably are best going the compositing route. youll only need to render the bg once in that case.

                    Comment


                    • #11
                      Originally posted by super gnu View Post
                      to be honest, since that rear wall looks to have some heavy displacement on it, and the lights dont move, you probably are best going the compositing route. youll only need to render the bg once in that case.
                      Man your method sounded great, if it were not for the FastSSS. However, using your method, wouldn't the SSS use the stored imap in such a case? Would this cause problems due to the animated SSS object?


                      Well, going back to the compositing route, how would I go about it?

                      If I understand correctly:

                      >Render the background once

                      >Render the animated characters in front of the background, with the background using the base mesh (without displacement) with a vray wrapper on it with shadows enabled and alpha contribution of -1?

                      It doesn't sound like I would be doing it right, any help would be appreciated.

                      Thank you for your patience,

                      Eduardo

                      Comment


                      • #12
                        assuming your undisplaced surface is similar enough to the displaced one, that should be fine.

                        id store the lightcache generated when you render your bg plate, and load it again, for your fg character render.. if i understand the system correctly, (please vlado let me know if im wrong) the primary bounces for your fg character will use the precalculated lightcache samples on the bg geometry to calculate their values.

                        id also make sure you have the bg geometry set to be a matte.

                        you can also do this sorta thing with shadow render elements in max, dunno about maya., but im not particularly expert in this area..

                        Comment


                        • #13
                          Originally posted by super gnu View Post
                          assuming your undisplaced surface is similar enough to the displaced one, that should be fine.

                          id store the lightcache generated when you render your bg plate, and load it again, for your fg character render.. if i understand the system correctly, (please vlado let me know if im wrong) the primary bounces for your fg character will use the precalculated lightcache samples on the bg geometry to calculate their values.

                          id also make sure you have the bg geometry set to be a matte.

                          you can also do this sorta thing with shadow render elements in max, dunno about maya., but im not particularly expert in this area..
                          That sounds like it could work. I am just a bit confused on the details. I would render the BG with Light Cache for both the primary and secondary bounces and store those? Then reuse the Light Cache from the primary bounces of the BG to render the character's primary bounces and set the secondary bounces to a fresh Light Cache?

                          I think we're getting close to a solution here, thanks again for your time!

                          Eduardo

                          Comment


                          • #14
                            its not that complicated.. just render your bg with imap (primary)and lightcache (secondary). save the lightcache

                            then render your character with lightcache loaded in secondary slot, and imap using whatever settings are flicker free for the character in primary slot.

                            the lightcache provides a static, low detail light solution of the whole scene(minus character as it was hidden when the lc was calced) , and when the imap shoots rays out from the surface of the character, to measure the light coming to a point from all directions, it takes its individual measurements from the precalculated lightcache covering the scene.

                            if you dont use the precalculated lightcache, youll be doing it every frame again, and are more likely to get flickers.

                            somebody pipe up if this sounds wrong..

                            Comment


                            • #15
                              Originally posted by super gnu View Post
                              its not that complicated.. just render your bg with imap (primary)and lightcache (secondary). save the lightcache

                              then render your character with lightcache loaded in secondary slot, and imap using whatever settings are flicker free for the character in primary slot.

                              the lightcache provides a static, low detail light solution of the whole scene(minus character as it was hidden when the lc was calced) , and when the imap shoots rays out from the surface of the character, to measure the light coming to a point from all directions, it takes its individual measurements from the precalculated lightcache covering the scene.

                              if you dont use the precalculated lightcache, youll be doing it every frame again, and are more likely to get flickers.

                              somebody pipe up if this sounds wrong..
                              Ok I just tested this with a simple scene with a SSS sphere, a VRayMtl cube and a VRayMtlPlane. The plane would be my BG so I rendered it individually using imap primary / light cache secondary and stored the light cache with the sphere and cube hidden. Then I enabled the cube and sphere with the stored LCache in the secondary bounces slot and rerendered. This is the process I followed:


                              Plane for LCache extraction:

                              Click image for larger version

Name:	pjiC1.jpg
Views:	1
Size:	181.0 KB
ID:	845072

                              All objects visible with light cache stored method:

                              Click image for larger version

Name:	Bagys.jpg
Views:	1
Size:	157.1 KB
ID:	845073

                              And a full render with everything being calculated:

                              Click image for larger version

Name:	J8XKO.jpg
Views:	1
Size:	170.2 KB
ID:	845074

                              Did I do this correctly? The only thing missing is having the floor plane as a matte material, I think.

                              Best regards,

                              Eduardo

                              Comment

                              Working...
                              X