Hair intersection : approaches ?
Hair intersection : approaches ?
Hi,
I'm currently looking for all the different approaches of "hair intersection".
So, if you have papers, documentation, reference or anything else... please drop me a line
Any council, comment, feedback is also welcomed....
BTW: I have to implement it on the GPU (I'm just afraid of analytic code ... that can be slow !!!)
Thx
I'm currently looking for all the different approaches of "hair intersection".
So, if you have papers, documentation, reference or anything else... please drop me a line
Any council, comment, feedback is also welcomed....
BTW: I have to implement it on the GPU (I'm just afraid of analytic code ... that can be slow !!!)
Thx
Spectral
OMPF 2 global moderator
OMPF 2 global moderator
Re: Hair intersection : approaches ?
There's the stochastic transparency approach to transparency.
http://www.nvidia.com/object/nvidia_res ... b_016.html
But if you're targeting realtime rendering I don't know if you want a random element in your renderer which could potentially produce artefacts in certain scenarios.
http://www.nvidia.com/object/nvidia_res ... b_016.html
But if you're targeting realtime rendering I don't know if you want a random element in your renderer which could potentially produce artefacts in certain scenarios.
Re: Hair intersection : approaches ?
Thanks, but I don't care about shading... just intersections for now
Spectral
OMPF 2 global moderator
OMPF 2 global moderator

 Posts: 6
 Joined: Sun Mar 18, 2012 5:25 am
Re: Hair intersection : approaches ?
Very hard thing to do without cheating (biased tricks). I'd think you would have to evaluate the hairs at the node procedurally from a set of constraints and control points, rather than intersecting some kind of primitive soup. When your ray hits a constraint node, find the nearest set of control points that represent that chunk of hair and test against the set of splines created from the local control points and a procedural offset that define each individual hair.
Re: Hair intersection : approaches ?
Having another ray/primitive intersection, aside from ray/triangle, is particularly GPUunfriendly. In LuxRender, we use a simple open standard file format to fast export/import (http://www.cemyuksel.com/research/hairmodels/) hair/strand information. It is also quite efficient in term of disk space. We than tessellate the hairs in triangles with few options available for the users (solid or ribbons, adaptive tessellation, resolution, etc.). It works quite well:
Indeed, the drawback is the memory required to store the large amount of triangles (and this is GPU unfriendly too).
Indeed, the drawback is the memory required to store the large amount of triangles (and this is GPU unfriendly too).
Re: Hair intersection : approaches ?
Thanks Dade,
Yes I have see how you do in LuxRender, but it is not really of high quality if you zoom on the hairs... except if you tessalate a lot !
So, I'm looking at different approaches but also looking to directly compute the "curved mesh" ray intersection... by example, there is one paper "Ray tracing for curves primitives", but even this approach is not perfect !
But anyway all the approaches are interesting and it depends of the scene
BTW: Sure, the real challenge is to implement it efficiently on the GPU !!
Yes I have see how you do in LuxRender, but it is not really of high quality if you zoom on the hairs... except if you tessalate a lot !
So, I'm looking at different approaches but also looking to directly compute the "curved mesh" ray intersection... by example, there is one paper "Ray tracing for curves primitives", but even this approach is not perfect !
But anyway all the approaches are interesting and it depends of the scene
BTW: Sure, the real challenge is to implement it efficiently on the GPU !!
Spectral
OMPF 2 global moderator
OMPF 2 global moderator
Re: Hair intersection : approaches ?
What if combine both approaches?
 Build BVH of tessalated hair.
 Use triangles at big distance.
 At small distance compute "curved mesh" ray intersection only if ray hits BVH leaf.
 Possibly split "curved mesh" to smaller and simpler curves for each BVH leaf\group of leafs.
Re: Hair intersection : approaches ?
Sure,
It is a way to setup the scene... even automatically. But, I'm not playing with LOD, simplification, etc... for now !
Just looking for some "ray  curve" intersection method
(Even for ribbons, faced planes, smooth cylinders etc...)
Thanks
It is a way to setup the scene... even automatically. But, I'm not playing with LOD, simplification, etc... for now !
Just looking for some "ray  curve" intersection method
(Even for ribbons, faced planes, smooth cylinders etc...)
Thanks
Spectral
OMPF 2 global moderator
OMPF 2 global moderator
Re: Hair intersection : approaches ?
Thanks...
Also, looking for the following paper : "RealTime Hair Modeling and Rendering using Ray Tracing on GPU: Introducing "Continual Cylinders" to represent hair"
If someone has a copy, he is welcome
Thanks
Also, looking for the following paper : "RealTime Hair Modeling and Rendering using Ray Tracing on GPU: Introducing "Continual Cylinders" to represent hair"
If someone has a copy, he is welcome
Thanks
Spectral
OMPF 2 global moderator
OMPF 2 global moderator