Ray Sorting

Practical and theoretical implementation discussion.
Post Reply
fluid
Posts: 3
Joined: Mon May 27, 2013 10:10 am

Ray Sorting

Post by fluid » Thu Feb 05, 2015 11:08 am

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

raider
Posts: 42
Joined: Fri Aug 03, 2012 10:36 pm
Location: Moscow, Russia.

Re: Ray Sorting

Post by raider » Sat Feb 07, 2015 8:37 pm

For out of core scenes performance improvement can be quite significant. Have a look here https://disney-animation.s3.amazonaws.c ... racing.pdf

fluid
Posts: 3
Joined: Mon May 27, 2013 10:10 am

Re: Ray Sorting

Post by fluid » Mon Feb 09, 2015 4:45 pm

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.

koiava
Posts: 47
Joined: Thu Apr 24, 2014 8:18 am
Location: Tbilisi, Georgia
Contact:

Re: Ray Sorting

Post by koiava » Tue Feb 10, 2015 8:25 am

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.
Colibri Renderer

fluid
Posts: 3
Joined: Mon May 27, 2013 10:10 am

Re: Ray Sorting

Post by fluid » Tue Feb 10, 2015 12:10 pm

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.

Post Reply