I'm not a professional graphics programmer, but I dabble in it occasionally and hang out in GP communities. It's fascinating to see the wealth of voxel engines being written. Minecraft really had a massive cultural impact on the tech scene. Or maybe it's just that voxels are a particularly good target for various optimization techniques. Interesting either way!<p>For the author: Any particular reason you don't seem to be using DSA in your OpenGL code? ie glNamedBufferData() and friends. I found it the single thing that transforms OpenGL into something very user-friendly.
A showcase of the techniques explained in the article:<p><a href="https://www.youtube.com/watch?v=IFUj53VwYvU" rel="nofollow">https://www.youtube.com/watch?v=IFUj53VwYvU</a><p><a href="https://douglasdwyer.github.io/octo-release/" rel="nofollow">https://douglasdwyer.github.io/octo-release/</a> (online demo)<p>Lately I've been addicted to watching (micro) voxel engine videos on youtube. I need to resist my urge to write one (not that I think I would do a particularly good job). I've also found the voxel engine by John Lin to be particularly impressive.
Thank you, OP and everyone else who's commented. This is super helpful to see. It's great to learn about Nick's work specifically and as an introduction to the those working in this field - and to see the other helpful links everyone has posted.<p>I wrote a library to implement (most of) the Space Groups in the visual programming environment Grasshopper, which is inside 3d modeling software Rhino3d. This was to get architects working with 3d symmetries, not just 2d; and to get architecture students learning the spatial symmetries in more rigorous and complete ways. The scope and aim are completely different than these engines. But I'm hoping to rewrite it into a standalone program soon, so it's very helpful and timely to get this influx of information I hadn't sought out before!
This brought back memories of Atomontage, a voxel engine which seemed to be way ahead of its time 10 years ago, but was never released, and became some kind of cloud platform.<p><a href="https://www.youtube.com/watch?v=J62z_7JaYMw" rel="nofollow">https://www.youtube.com/watch?v=J62z_7JaYMw</a><p><a href="https://client.atomontage.app/view?m=5C1RGKu4vT67qEBLO4gqh" rel="nofollow">https://client.atomontage.app/view?m=5C1RGKu4vT67qEBLO4gqh</a>
I'd rather just directly raycast against a nicely compressed hierarchical representation than create horrendous amounts of triangle geometry and rasterise that. The code would be absolutely tiny, and not mostly a bunch of calls into someone else's code.<p>But, you know, gotta do the OpenGL / DirectX / whatever vanilla API thing... that's what graphics programming is, isn't it...