Live data from Hacker News

Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

douira.dev

11–20 of 23 posts

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#11

Binary Space partitioning ( https://en.wikipedia.org/wiki/Binary_space_partitioning ) is an elegant algorithm that solves this issue. This has fallen out of popularity due to the invention of the depth buffer and the power of modern GPUs, but it was used in DOOM and Quake. This technique, due to the unique limitation of the children's drag-and-drop coding platform, Scratch, has made it proliferate in the 3D community…

BSP was not used in Doom and Quake for rendering translucency.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#12

Binary Space partitioning ( https://en.wikipedia.org/wiki/Binary_space_partitioning ) is an elegant algorithm that solves this issue. This has fallen out of popularity due to the invention of the depth buffer and the power of modern GPUs, but it was used in DOOM and Quake. This technique, due to the unique limitation of the children's drag-and-drop coding platform, Scratch, has made it proliferate in the 3D community…

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.

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.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#14
post #9

Only slightly related, but since Minecraft seems to have a lot of community graphics programming associated with it I thought I'd ask here... Does anyone know how those Minecraft realistic rendering mods work? I'm guessing today there's a lot of RTX, but e.g. in 2018 there was still fairly impressive global illumination in SEUS Renewed. Minecraft is the definition of a world with dynamic geometry, and I'm not aware o…

A lot of non raytracing GI solutions uses voxel grids on top of the world geometry, SVOGI is one of the fancy ones used in cry engine games. I imagine since minecraft essentially gives a voxel grid to you for "free" most of minecraft GI solutions also uses a similar technique.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#15

I had a blog post on something similar (but less sophisticated) https://jacobdoescode.com/2025/05/18/precomputing-transparen...

This is… essentially a BSP tree traversal without splitting polys that straddle a partition plane, right?

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#16
post #11

Binary Space partitioning ( https://en.wikipedia.org/wiki/Binary_space_partitioning ) is an elegant algorithm that solves this issue. This has fallen out of popularity due to the invention of the depth buffer and the power of modern GPUs, but it was used in DOOM and Quake. This technique, due to the unique limitation of the children's drag-and-drop coding platform, Scratch, has made it proliferate in the 3D community…

BSP was not used in Doom and Quake for rendering translucency.

Okay. BSP trees were the basis of the Doom WAD format and were used for visible surface determination and depth sorting, though. Seems relevant.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#17

Earlier quoted context omitted.

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.

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.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#18

Binary Space partitioning ( https://en.wikipedia.org/wiki/Binary_space_partitioning ) is an elegant algorithm that solves this issue. This has fallen out of popularity due to the invention of the depth buffer and the power of modern GPUs, but it was used in DOOM and Quake. This technique, due to the unique limitation of the children's drag-and-drop coding platform, Scratch, has made it proliferate in the 3D community…

A prettier demo: https://turbowarp.org/984959784/fullscreen?stuck&hqpen&fps=6...

Man Dust in 1.6! At first instantly familiar but then things didn't make sense and I realise I was in an alien land.

Re: Geometric Algorithms for Translucency Sorting in Minecraft [pdf]

#20

Binary Space partitioning ( https://en.wikipedia.org/wiki/Binary_space_partitioning ) is an elegant algorithm that solves this issue. This has fallen out of popularity due to the invention of the depth buffer and the power of modern GPUs, but it was used in DOOM and Quake. This technique, due to the unique limitation of the children's drag-and-drop coding platform, Scratch, has made it proliferate in the 3D community…

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.
Post reply on HN