This mentions that in a BVH, even if you do a front-to-back order you cannot stop after the first hit. Why can you do that?
jfondrie
Because BVH splits by primitives and not space, you can have primitives that overlap other boxes.
For example, on slide 16, imagine you're looking at a ray going vertically from bottom to top, underneath the intersection of B and C. You see it intersects A, so you check both children. If you check B first, you'll reach an intersection, the large blue triangle. However, the closest triangle is in the other partition, which still hasn't been checked.
At least, that's how I understood it.
tracychen
So methods that won't cause overlay on partitioning can be terminated after first hit has been found?
motoole2
@tracychen Yes. If there is non-overlapping partitions in space and we perform a front-to-back traversal of these partitions, then any ray-primitive intersection within one partition is guaranteed to be closer than any other ray-primitive intersection that may occur in another partition.
This mentions that in a BVH, even if you do a front-to-back order you cannot stop after the first hit. Why can you do that?
Because BVH splits by primitives and not space, you can have primitives that overlap other boxes. For example, on slide 16, imagine you're looking at a ray going vertically from bottom to top, underneath the intersection of B and C. You see it intersects A, so you check both children. If you check B first, you'll reach an intersection, the large blue triangle. However, the closest triangle is in the other partition, which still hasn't been checked. At least, that's how I understood it.
So methods that won't cause overlay on partitioning can be terminated after first hit has been found?
@tracychen Yes. If there is non-overlapping partitions in space and we perform a front-to-back traversal of these partitions, then any ray-primitive intersection within one partition is guaranteed to be closer than any other ray-primitive intersection that may occur in another partition.