Jump to content
  • Advertisement
Sign in to follow this  
LargeJ

How to ray-trace individual hair strands

This topic is 2185 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello all,

I want to implement a ray tracer that models hair fibers as described by Marschner et al: "Light scattering from Human Hair Fibers (2003)". From reading several other papers I noticed that hair can be rendered explicitly and implicitly. Explicit rendering requires every hair strand to be rendered separately, but because hair fibers are very thin compared to the size of a pixel, there will likely be aliasing problems. I read a lot about using volume densities instead, but I do not entirely understand this idea.

I was wondering what techniques are generally used to ray-trace a hair fiber? My idea is that hair segments (curves) can be projected on the image plane. This way, you exactly know which pixels are affected and then apply pixel blending to render the fibers that affect the pixel. However, I have not been able to find a (scientific) paper explaining the best way to render individual hair strands using ray tracing. It looks like many people choose to treat the curves as thin cylinders and use oversampling to accomodate for the aliasing problems.

So, does anyone know how a single hair fiber is ray traced nowadays? The rendering should be physically accurate, so speed is not an issue at this point.

Share this post


Link to post
Share on other sites
Advertisement
(This is my understanding)

Volume density approach means that you're not necessarigly looking for intersections with rays against individual hair strands, but against an adaptive iso-surface, you terminate when the distance from the ray point to the hair is within a given tolerance, and that tolerance can be adapted based on distance from the camera so that aliasing, and need for super-sampling is decreased. (Aka as distance increases from camera, you can increase the tolerance so that the distance from ray to the hair strand remains roughly constant in screen space) Edited by luca-deltodesco

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!