HPC Magazine avril 2013 - L'Atelier CUDA - Listing 5.

Traversée optimisée de l’arborescence.


__device__ void traverseIterative( 
  CollisionList& list,
  BVH&           bvh, 
  AABB&          queryAABB, 
  int            queryObjectIdx, 
  NodePtr        queryLeaf)
{
  // ...

  // On ignore le chevauchement en fonction de la position 
  // du reste de l’arborescence.

  if (bvh.getRightmostLeafInLeftSubtree(node) <= queryLeaf)
    overlapL = false;

  if (bvh.getRightmostLeafInRightSubtree(node) <= queryLeaf)
    overlapR = false;
    //...
}