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. https://scratch.mit.edu/projects/1203675921 is an example of such a project.
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.
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 of any decent realtime GI algorithms for 3d. The lighting in base Minecraft is a super basic and ugly hack. I've seen Unity's dynamic GI features and those are nowhere near as good either.
I don't know much about lighting, but looking at the source code of the shaders might give a clue. https://modrinth.com/discover/shaders has a lot of shaders that change the lighting. In other parts of the rendering pipeline, there are some very impressive mods utilizing GPU magic. One of them is Voxy (https://modrinth.com/mod/voxy), one that massively increases render distance with mesh shaders and level-of-detail based rendering.
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. https://scratch.mit.edu/projects/1203675921 is an example of such a project.
A prettier demo: https://turbowarp.org/984959784/fullscreen?stuck&hqpen&fps=6...
BSP was not used in Doom and Quake for rendering translucency.
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.
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 of any decent realtime GI algorithms for 3d. The lighting in base Minecraft is a super basic and ugly hack. I've seen Unity's dynamic GI features and those are nowhere near as good either.
I don't know much about lighting, but looking at the source code of the shaders might give a clue. https://modrinth.com/discover/shaders has a lot of shaders that change the lighting. In other parts of the rendering pipeline, there are some very impressive mods utilizing GPU magic. One of them is Voxy (https://modrinth.com/mod/voxy), one that massively increases render distance with mesh shaders and level-of-detail based rendering.
I had a blog post on something similar (but less sophisticated)
https://jacobdoescode.com/2025/05/18/precomputing-transparen...
This looks interesting! Thanks for sharing it, wonder if anyone else has related content.
- Stencil Routed A-buffer [1]
- Multi-Fragment Effects on the GPU using the k-Buffer [2]
- Production Volume Rendering [3]
- Translucent Shadow Maps [4]
[1] https://developer.download.nvidia.com/presentations/2007/sig...
[2] https://www.sci.utah.edu/~stevec/papers/kbuffer.pdf
[3] https://graphics.pixar.com/library/ProductionVolumeRendering...
[4] https://www.scribd.com/document/657069029/Translucent-Shadow...
There was an old AMD/Ati demo where they did per-pixel sorting, basicaly a per pixel linked list of fragments.
In general: https://en.wikipedia.org/wiki/Order-independent_transparency