I've been doing some research into changing the split heuristic I use for a work project comprised of a BVH binary tree.

The heuristic I currently use is centroid median as described here, but I seek to use the surface area heuristic (SAH) now. Several papers denote the cost function for determining the split as:

$$c(A, B) = t_{trav} + p_{A}\sum_{i=1}^{N_{A}}t_{isect}(a_{i}) + p_{B}\sum_{i=1}^{N_{B}}t_{isect}(b_{i})$$

Notionally it is described in detail here, but to summarize, it is the cost of a ray intersect of primitives at this split.

However, I've seen an optimization technique, described as "binning", where $K$ pre-determined bins are computed and therefore the cost function for determining the split is:

$$c(A, B) = A_{a}N_{a} + A_{b}N_{b}$$

This is outlined here in Section 3.1, as well is several other documents (1, 2, 3).

What's the rational/reasoning behind these two different cost models?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.