Announcement

Collapse
No announcement yet.

Better hair/fur shading and rendering

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

  • Better hair/fur shading and rendering

    Hey,

    I'm moving to V-Ray from Renderman, and I love it. The only thing I miss is rendermans amazing fur/hair rendering.

    Something renderman-esc features I would love are:

    - Deep/Detail shadow maps: Shadow maps that support transparency/motion-blur. They work fantastically for hair (picks up all the sub-pixel details), and because they also store color info, you can do fake translucency/scattering in the hair.

    - Render hair as ribbons: Im not sure if V-Ray does this, but they look like tubes to me. In renderman I generally used riCurves, which are flat ribbons, and then use a shader to bend the normals to give it a "cylinder" look.

    - Support for maya fur or shave/haircut.

    - A proper hair shader: As above, one that renders ribbons as "tubes". The Marschner shader is amazing, but quite complex. It was used on tangled to great effect, there are some papers they wrote about how to make it more "artist friendly".

    http://graphics.ucsd.edu/~iman/pdf/[Sadeghi%20et%20al%202010]%20An%20Artist%20Friendly%20Hair%20Shading%20Syste m.pdf

    http://graphics.ucsd.edu/~iman/pdf/[Sadeghi%20and%20Tamstorf%202010]%20Efficient%20Implementation%20of%20the%20Dual%20 Scattering%20Model%20in%20RenderMan.pdf

    Basic options I would love are:
    - Anisotropic specular
    - Random variation in hair color
    - Tip/base color
    - Hair scatter/translucency
    - Overall hair color
    - Occlusion caching (King kong used to store a single frame in a brick map, and ratatouille used a method of interpolating between 4 tifs along the hair).

    And finally, maybe the option to use a fast rasterizer renderer for just the hair. I wouldn't want to calculate complex GI for hair/fur, ive always found it way to slow.

    Just a few thoughts

    Nick Deboar

  • #2
    Originally posted by ndeboar View Post
    - Deep/Detail shadow maps: Shadow maps that support transparency/motion-blur. They work fantastically for hair (picks up all the sub-pixel details), and because they also store color info, you can do fake translucency/scattering in the hair.
    Deep shadow maps are patented by Pixar. We can, however, do regular shadow maps with stochastic filtering.

    - Render hair as ribbons: Im not sure if V-Ray does this, but they look like tubes to me. In renderman I generally used riCurves, which are flat ribbons, and then use a shader to bend the normals to give it a "cylinder" look.
    They are ribbons, and the normals are bent at shader time (f.e. VRayFur allows you to change the way the normal is calculated). Obviously the cheat works well

    - Support for maya fur or shave/haircut.
    There is a Shave&Haircut plugin for V-Ray for Maya - check out the Joe Alter site.

    - A proper hair shader: As above, one that renders ribbons as "tubes". The Marschner shader is amazing, but quite complex. It was used on tangled to great effect, there are some papers they wrote about how to make it more "artist friendly".
    The ribbons thing is already done as I said. A more developed shader is something that we are working on. (As a side note, I do not think much of the hair in Tangled; this is just a personal opinion, I'm not saying we can do better ).

    And finally, maybe the option to use a fast rasterizer renderer for just the hair. I wouldn't want to calculate complex GI for hair/fur, ive always found it way to slow.
    We are committed to keeping V-Ray as a pure raytracer (if you wanted scanline rendering, there are more than enough options out there). There are some optimizations regarding hair rendering in recent builds that make it somewhat faster.

    Thanks for the feedback!

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

    Comment


    • #3
      Cheers Vlado,

      Yeah, the normals totally fooled me, good work.

      I agree with all your points. The only thing i'ld mention is that Deep Shadows are also in 3Delight and Mental Ray has Detailed shadow maps, which i'm pretty sure are they same thing, so they are not exclusive to pixar.

      Cheers,

      Nick Deboar

      Comment


      • #4
        I did not say they are exclusive to Pixar, just that they are patented. I believe mental ray has its own shadow maps that are not strictly deep shadows (well, at least in 3ds Max), although they offer similar functionality. No idea about 3delight.

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

        Comment


        • #5
          What I see as the biggest problem with Vray and hair/fur is rendering transparency. Is there a way to speed that up in the future? You always want tip transparency but that just devastates the render times in Vray.

          Comment


          • #6
            Yes, there is place for improvements in this regard...

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

            Comment


            • #7
              Ok, well any shadow map format that supports anti-aliaising/transparency/color i think would be much more efficient than ray-tracing area lights through hair.

              Comment


              • #8
                Originally posted by Metzger View Post
                What I see as the biggest problem with Vray and hair/fur is rendering transparency. Is there a way to speed that up in the future? You always want tip transparency but that just devastates the render times in Vray.
                Here is how Joe Alter increased Shave and Haircut's speed on that matter :
                Originally posted by Joe Alter
                Our hairs have transparency in the tips to aid with antialiasing.
                Vray's ray casts are really slow with transparency, so for illumination calculation we now treat the hairs as fully opaque - much faster.
                Ray casting on transparency is slow, we now turn it off for all illumination bounces.
                Is this also what's done in VRayFur ?

                Cheers.

                Comment


                • #9
                  VRayFur is by default not transparent towards the tips. You can increase the "Taper" parameter of the fur to get the same effect as transparency mapping without the time hit for transparency.

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

                  Comment


                  • #10
                    Originally posted by vlado View Post
                    VRayFur is by default not transparent towards the tips.
                    Yes, that's why we always use a reversed VRayFurSampler connected to Opacity, to get transparent tips.

                    Originally posted by vlado View Post
                    You can increase the "Taper" parameter of the fur to get the same effect as transparency mapping without the time hit for transparency.
                    The "Taper" is used to get thin tips, which is really different from the soft fluffy effect we get with transparent tips.
                    That's why even when transparency is 8 times longer to render than Taper, we still use transparency, because it's the only way to get the pictures we need.

                    Thanks.

                    Comment


                    • #11
                      In that case you can always use the V-Ray material override attributes to specify a non-transparent material for GI (and maybe shadows).

                      If the thickness of a fur strand is less than one pixel, then transparency gives you exactly the same effect as tapering, as the only visible result of the strand getting thinner is the reduced contribution to the pixel value (which is exactly what happens if you use transparency as well).

                      Best regards,
                      Vlado
                      Last edited by vlado; 04-04-2011, 09:37 AM.
                      I only act like I know everything, Rogers.

                      Comment


                      • #12
                        Originally posted by vlado View Post
                        In that case you can always use the V-Ray material override attributes to specify a non-transparent material for GI (and maybe shadows).
                        Oooopppss, we didn't think about that, sorry (still learning here, we come from another renderer....).
                        Thanks !

                        Originally posted by vlado View Post
                        If the thickness of a fur strand is less than one pixel, then transparency gives you exactly the same effect as tapering, as the only visible result of the strand getting thinner is the reduced contribution to the pixel value (which is exactly what happens if you use transparency as well).
                        Yes.
                        But we often need to render thick stuff (the tip is almost as large as the root), so the thickness is several pixels.

                        Thanks for the material override trick !

                        Comment


                        • #13
                          How do I add that material override? I cannot seem to apply my own shader to shave hair in vray. Override geo shader is turned off and I have applied a vray shader to the display geo and shave node with no success I do in MR or 3Delight. I am also interested in speeding up fur rendering in vray

                          Comment


                          • #14
                            Originally posted by Resin View Post
                            How do I add that material override ?
                            The material override trick that Vlado told us is for VRayFur.
                            Shave already applies a non-transparent material for GI (it's done automatically by Shave's shader)

                            Comment


                            • #15
                              Ahhh!! and its still that slow crap... What else can be done to help speed up the rendering of shave fur? I can get very nice results but the render time is out of control! I know tip trans speeds up (alot) but we need it on to create soft looking fur. Any thoughts? I am playing with the image sampler at the moment to work out what renders best and quickest.

                              Comment

                              Working...
                              X