Page 1 of 1

Ray Sorting

Posted: Thu Feb 05, 2015 11:08 am
by fluid
Hi guys,
Anybody has some experience with ray sorting on CPU based path tracers?
I'm working on a CPU-only path tracer/bidirectional path tracer based on Embree. I was thinking about implementing ray reordering and packet tracing for incoherent rays to increase performance (since Embree supports packet tracing).
I was wondering what kind of performance improvement is to be expected (if any). Would you suggest any papers on the subject?
Thanks,

Nicola

Re: Ray Sorting

Posted: Sat Feb 07, 2015 8:37 pm
by raider
For out of core scenes performance improvement can be quite significant. Have a look here https://disney-animation.s3.amazonaws.c ... racing.pdf

Re: Ray Sorting

Posted: Mon Feb 09, 2015 4:45 pm
by fluid
It seems to make sense for out of core rendering, it's not clear if, for cases where everything fits in memory, increased cache coherence would still increase performance in a sensible way.

Re: Ray Sorting

Posted: Tue Feb 10, 2015 8:25 am
by koiava
fluid
Shading part is very important because every shading event may be linked to some textures(diffuse, specular, normal, displace) and in productions renderers this number and size of textures may be very large. So processing shading events in coherently useful way really important.
Your question is more about ray traversal optimizations. There is some techniques which groups incoherent rays in coherent ray groups using hash function.
In general this techniques is more important in Out of Core renderers.

Re: Ray Sorting

Posted: Tue Feb 10, 2015 12:10 pm
by fluid
Hi Koiava,
Thanks for the link. I was trying to figure out if re-writing code using ray sorting is worth the effort in the case of everything fitting in main memory.
For out of core rendering, it seems to be the case.