They seem to point out some examples in section 4 that can't be handled with space partioning. I'll confess I don't follow the reasoning. Figure 4.2 is the go-to example of a sorting problem that is handled with BSP trees.
They seem to point out some examples in section 4 that can't be handled with space partioning. I'll confess I don't follow the reasoning. Figure 4.2 is the go-to example of a sorting problem that is handled with BSP trees.
Hi, it’s me, the author. In this thesis the focus was on techniques that don’t involve splitting the geometry into pieces, and the objects in Figure 4.2 can’t be partitioned without splitting. In later iterations of the implementation I have added splitting and I’ve detailed this in a talk I gave at Blanketcon 2025 (https://douira.dev/assets/document/presentation-blanketcon25...), but the algorithm still attempts to avoid it as much as possible since it can explode the amount of quads in the worst case.
It works, it may just degenerate into a worst case scenario, and this particular scenario is pretty common in minecraft.
I think this is particular to auto-partitioning BSPs where the splitting planes are aligned with scene geometry.
For rendering voxel data like in a minecraft world I’d think an octree would be the go-to data structure.