summaryrefslogtreecommitdiff
path: root/chroma/gpu/bvh.py
AgeCommit message (Collapse)Author
2021-05-09Force merging of BVH nodes to always reduce the number of parent nodes in ↵Stan Seibert
order to ensure the process terminates.
2021-05-09BVH optimization to sort child nodes by area. Only has a small effect.Stan Seibert
2021-05-09Collapse chains of BVH nodes with single children.Stan Seibert
2021-05-09New BVH algorithm: Recursive GridStan Seibert
This is an adaptation of the original Chroma BVH construction algorithm. The generation stage is very slow, but can be fixed.
2021-05-09Implementation of "node splitting" which places children into separateStan Seibert
parent nodes if combining them would result in a parent node that is excessively large compared to the surface area of the children. This doesn't help as much as you might imagine.
2021-05-09Redo node format to include number of children, rather than just leaf bit.Stan Seibert
2021-05-09Increase look ahead in node_swap BVH optimization to improve surface area ↵Stan Seibert
minimization
2021-05-09Add more BVH manipulation commands:Stan Seibert
* chroma-bvh create [name] [degree] - Creates a new BVH with the specified branching degree. * chroma-bvh node_swap [name] [layer] - Optimizes a BVH layer with a "greedy, short-sighted" algorithm that swaps around nodes to minimize the surface area of the immediate parent layer. Rebuilds the tree above the modified layer when finished. Also modified the chroma-bvh stat command to print the sum of the logarithms of the areas of each layer. It seems to be a rough predictor of the simulation speed of the BVH.
2021-05-09Simple BVH generator using new infrastructureStan Seibert