We just compute surface areas based on actual area, and not considering things like the area of their projection onto the view plane, right? For example, if we have a very large triangle viewed edge-on and almost perpendicular to the view plane might create fewer ray-triangle intersections versus a smaller triangle viewed parallel to the view plane. This is just a case where the approximation doesn't do so well, and we wouldn't account for this (particularly in the BVH task of HW 3), right?
To summarize/check my understanding, are the following true?
C = total cost
C_trav = cost of traversing an interior node (e.g. load data, bbox check)
C_isect = cost of computing any ray-primitive intersection (where we assume for simplicity that the cost is the same for all primitives)
S_N = total surface area of all primitives in both child A and B
S_A = total surface area of primitives in child node A
S_B = total surface area of primitives in child node B
N_A = number of primitives in child node A
N_B = number of primitives in child node B
Yes, because the BVH needs to be view-independent. I.e., rays could come in from any direction, not just the direction of the camera (consider light bouncing off the wall and then hitting an object).
Yes. The surface area could be approximated a number of ways; a simple way would be that SN is the surface area of the current (interior) node's bounding box, and SA,SB are the bounding box areas of the two children. But you are of course free (and encouraged) to try different things and see what works best.