Easy Retro 3D Look With Voxel Displacement Renderer

Voxels are effectively like 3D pixels, and they form an integral part of what is commonly referred to as a ‘retro 3D’ look, with pixelated edges sharp enough to cut your retinas on. The problems with modeling a scene using voxels come in the form of creating the geometry and somehow making a physics engine work with voxels rather than conventional triangular (or quad) meshes.

The same scene in Blender (above) and in the voxel-based renderer (below). (Credit: Daniel Schroeder)
The same scene in Blender (above) and in the voxel-based renderer (below). (Credit: Daniel Schroeder)

The approach demonstrated by [Daniel Schroeder] comes in the form of a Voxel Displacement Renderer implemented in C++ and using the Vulkan API. Best part of it? It only requires standard meshes along with albedo and displacement maps.

These inputs are processed by the C++-based tools, which generate the voxels that should be rendered and their properties, while the GLSL-based shader handles the GPU-based rendering step. The pre-processing steps required make it a good idea to bake these resources rather than try to process it in real-time. With that done, [Daniel]’s demo was able to sustain a solid 100+ FPS on a Radeon RX 5700 XT GPU at 1440p, and 60+ FPS on a Steam Deck OLED.

In a second blog post [Daniel] goes through his motivations for this project, with it originally having been intended as a showpiece for his resume, but he can imagine it being integrated into a game engine.

There are still questions to be resolved, such as how to integrate this technique for in-scene characters and other dynamic elements (i.e. non-static scenery), but in terms of easing voxel-based rendering by supporting a standard mesh-based workflow it’s an intriguing demonstration.

9 thoughts on “Easy Retro 3D Look With Voxel Displacement Renderer

  1. If I had another lifetime at my disposal, I would love to go balls deep into game dev
    Its an art form of the modern times, no doubt about it. You need programmers, writers, graphic artists, musicians, music and art directors to make a videogame.

  2. AFAIK there is nothing inherent in Voxel rendering that necessarily results in “pixelated edges sharp enough to cut your retinas on.” Certainly old-skool voxel engines could produce such results, but that’s true for all 3D engines of the time. The benefit of voxel rendering in the old days was being able to have much further lines of sight without invoking fog or other tricks to limit render view depth.

    The big limitation these days is graphics cards that are optimized for polygon rendering, leaving voxel-based engines dependent only upon CPU for computation.

    1. The article is referring to the voxel style as being sharply defined cubes, not voxel rendering.

      Think Minecraft, which was for most of it’s life based almost entirely on cubes.

      When everything is presented as 1m cubes, it becomes that specific style.

      There are other games, that I cannot think of the name of, that go further.
      Object placement is done on a 1m cubic matrix, but the objects can be deformed in a 5cm cubic matrix leading to a “crunchy” look.

      The project being highlighted here is about the rendering technique, not the visual style. I’m not sure why they mentioned the style other than it sharing the word “voxel” since Minecraft and other similar games don’t use voxel rendering.

    1. maybe, but I feel that it eventually would have ended up the same way with rasterization and eventually ray tracing, making the underlying principal rather moot.
      Yes we still favor polygons for various reasons but what you have been seeing on screen for a couple decades now is more akin to hitting “render” on an old cad program … just in real time. That’s why programs / scenes / games whatever can have a fairly low polygon count and still look absolutely amazing after all the effects from various techniques layered on top are sent to your screen as a final rendering

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.