Hair intersection : approaches ? back
Board:
Home
Board index
Raytracing
General Development
(L) [2014/02/11] [tby spectral] [Hair intersection : approaches ?] Wayback!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 [SMILEY ;-)]
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
(L) [2014/02/12] [tby papaboo] [Hair intersection : approaches ?] Wayback!There's the stochastic transparency approach to transparency.
[LINK http://www.nvidia.com/object/nvidia_research_pub_016.html]
But if you're targeting real-time rendering I don't know if you want a random element in your renderer which could potentially produce artefacts in certain scenarios.
(L) [2014/02/12] [tby spectral] [Hair intersection : approaches ?] Wayback!Thanks, but I don't care about shading... just intersections for now [SMILEY ;-)]
(L) [2014/02/13] [tby Chris Morris] [Hair intersection : approaches ?] Wayback!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.
(L) [2014/02/13] [tby Dade] [Hair intersection : approaches ?] Wayback!Having another ray/primitive intersection, aside from ray/triangle, is particularly GPU-unfriendly. In LuxRender, we use a simple open standard file format to fast export/import ([LINK 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:
[IMG #1 furball.jpg]
Indeed, the drawback is the memory required to store the large amount of triangles (and this is GPU unfriendly too).
[IMG #1]:Not scraped:
/web/20161005115421im_/http://ompf2.com/download/file.php?id=146&sid=4f5b7e997de2c0d65434576e87e6d4f2
(L) [2014/02/13] [tby spectral] [Hair intersection : approaches ?] Wayback!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 [SMILEY ;-)]
BTW: Sure, the real challenge is to implement it efficiently on the GPU !!
(L) [2014/02/13] [tby lion] [Hair intersection : approaches ?] Wayback!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.
(L) [2014/02/13] [tby spectral] [Hair intersection : approaches ?] Wayback!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 [SMILEY ;-)]
(Even for ribbons, faced planes, smooth cylinders etc...)
Thanks
(L) [2014/02/13] [tby lion] [Hair intersection : approaches ?] Wayback!If with quadratics:
[LINK http://www.bmsc.washington.edu/people/merritt/graphics/quadrics.html]
[LINK https://www.cs.uaf.edu/2010/spring/cs481/section/0/lecture/02_04_quadric.html]
[LINK http://web4.cs.ucl.ac.uk/staff/t.weyrich/projects/quadrics/pbg06.pdf]
(L) [2014/02/13] [tby spectral] [Hair intersection : approaches ?] Wayback!Thanks...
Also, looking for the following paper : "Real-Time Hair Modeling and Rendering using Ray Tracing on GPU: Introducing "Continual Cylinders" to represent hair"
If someone has a copy, he is welcome [SMILEY ;-)]
Thanks
back