I've seen mention of tiled raytracing, but haven't been able to find much on google about it.
Can anyone explain what it is and how it works?
Computer Graphics Stack Exchange is a question and answer site for computer graphics researchers and programmers. It only takes a minute to sign up.Sign up to join this community
Tiled raytracing is a way of speeding up rendering. Instead of rendering pixels on a row-by-row basis down the entire image, you render them in 2D groups (say, 32x32 tiles). Since adjacent rays tend to intersect the same objects, this improves the cache hit rate at the CPU level.
At a smaller scale, tiling at the 2x2 level lets you use SSE/AVX/etc to compute four rays with a single CPU instruction, further speeding things up.
I believe it's where you batch it and do a block of pixels at once, or a "tile".
This means calculating the final color for multiple pixels at a time. Imagine breaking up your window of pixels into squares containing the pixels, usually around 2x2 pixels per square. Then simply work through them.
This causes speed boosts for lots of different reasons, depending on your implementation and hardware. If you can, check out Ingo Wald's PhD thesis about real time raytracing, he makes a lot of references to batching to get speed using things like AVX (advanced vectoring extensions) in the processor. These provide speed boosts when you calculate the color for a certain amount of similar pixels. It's all cool and definitely worth looking into, and you can read more here: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
Basically you represent similar data for similar pixels using a vector of floats and do the same calculations to all at once, saving cycles. Picture Bart Simpson writing out the same words on the chalkboard all at once instead of line-by-line in the Simpsons opening :)
Also when doing real time raytracing, you may be using the graphics card and sending all the data over the bus is a large bottleneck. You don't want to send all the data over to the card to calculate the value of only one pixel because of the bus overhead - so you want to send a reasonable amount of data to chew on while you work on getting the next chunk ready.
So, to me at least, "tiled" raytracing is just "batched" raytracing.
I hope this helps.