[HN Gopher] Geometric Algorithms for Translucency Sorting in Min...
___________________________________________________________________
Geometric Algorithms for Translucency Sorting in Minecraft [pdf]
Author : HeliumHydride
Score : 63 points
Date : 2025-12-26 09:43 UTC (13 hours ago)
(HTM) web link (douira.dev)
(TXT) w3m dump (douira.dev)
| jacobp100 wrote:
| I had a blog post on something similar (but less sophisticated)
|
| https://jacobdoescode.com/2025/05/18/precomputing-transparen...
| Sharlin wrote:
| This is... essentially a BSP tree traversal without splitting
| polys that straddle a partition plane, right?
| gatane wrote:
| This looks interesting! Thanks for sharing it, wonder if anyone
| else has related content.
| zoenolan wrote:
| - 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...
| user____name wrote:
| Emil Persson's GPU BSP traversal demo (2017)
| https://www.humus.name/index.php?page=3D&ID=92
| ANighRaisin wrote:
| 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.
| ANighRaisin wrote:
| A prettier demo:
| https://turbowarp.org/984959784/fullscreen?stuck&hqpen&fps=6...
| SiempreViernes wrote:
| 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.
| seg_lol wrote:
| Within 2 seconds I knew exactly where this was and I
| haven't played in 20 years. Dust is forever.
| CamperBob2 wrote:
| 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.
| user____name wrote:
| 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.
| taneq wrote:
| For rendering voxel data like in a minecraft world I'd
| think an octree would be the go-to data structure.
| douira wrote:
| 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.
| djmips wrote:
| BSP was not used in Doom and Quake for rendering translucency.
| taneq wrote:
| Okay. BSP trees were the basis of the Doom WAD format and
| were used for visible surface determination and depth
| sorting, though. Seems relevant.
| NotGMan wrote:
| 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
| rendaw wrote:
| 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.
| HeliumHydride wrote:
| 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.
| amlib wrote:
| 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.
| jjoe wrote:
| Three-pass method analysis of the paper:
| https://papersplain.com/sample/19d93721d4de21982ca5d81ec6396...
| Lucasoato wrote:
| If you're marveled by these articles, I suggest you to read this
| blog: https://0fps.net/
|
| It inspired me so much back when I was graduating in mathematics,
| the author is a genius.
___________________________________________________________________
(page generated 2025-12-26 23:01 UTC)