My Intuition as to why this doesn't work for concave polygons goes something like this: Imagine a really long 'U' shaped polygon, and inset inside it another 'U' with half the thickness. The SAH predicts a 50% chance of hitting the second 'U' given the first hits, but we can readily see that an only negligible amount of the rays will miss the inner 'U' as the length increases. Maybe there's an issue in there with 'double hitting' the inner surface as well.

ngod

Do the constants here not matter? If we have some suitable way to terminate (like if current primitive count is less than a set maximum count for a leaf), then we only really care about SAH of one partition relative to another, right?

How is this different for non-convex polygons?

My Intuition as to why this doesn't work for concave polygons goes something like this: Imagine a really long 'U' shaped polygon, and inset inside it another 'U' with half the thickness. The SAH predicts a 50% chance of hitting the second 'U' given the first hits, but we can readily see that an only negligible amount of the rays will miss the inner 'U' as the length increases. Maybe there's an issue in there with 'double hitting' the inner surface as well.

Do the constants here not matter? If we have some suitable way to terminate (like if current primitive count is less than a set maximum count for a leaf), then we only really care about SAH of one partition relative to another, right?