[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)