Voxel Quest is the developer blog of an isometric voxel game engine project, with updates, videos and version histories.
HN commenters recall the project as one that petered out, and point to its developer logs as a good overview of building such an engine.
Hg (http://mercury.sexy/hg_sdf/) is a great resource. I'm not a fan of the non-commercial license. The intro on the top of the site has a lot of great links to resources outside of iq, including the pouet.net thread on Raymarching, John Hart's original sphere tracing paper, and enhanced sphere tracing, as well as the author's original talk from NVScene 2015 (https://www.youtube.com/watch?v=s8nFqwOho-s). Definitely check out all of these resources.
If you're more interested in signed distance fields outside of the shadertoy\demo scene use cases there are a lot of interesting resources out there written by people using them in more complex contexts.
Alex Evans (Media Molecule) Dreams talk is awesome. You can see the talk here (https://www.youtube.com/watch?v=u9KNtnCZDMI) and read the slides here (http://advances.realtimerendering.com/s2015/AlexEvans_SIGGRAPH-2015-sml.pdf).
https://www.gdcvault.com/play/1015455/Advanced-Procedural-Rendering-with-DirectX covers how to generate meshes. With modern hardware with ballot\shuffle there are probably more efficient ways to do this in a compute shader now, but the talk is still good.
Epic games siggraph presentation (http://advances.realtimerendering.com/s2015/DynamicOcclusionWithSignedDistanceFields.pdf) is a good explanation of how UE4 uses signed distance fields for ambient occlusion and shadows.
Q-Games presentation (http://fumufumu.q-games.com/archives/TheTechnologyOfTomorrowsChildrenFinal.pdf) on how the now defunct Game…
Please read my most recent two blog entries on http://www.voxelquest.com where I talk about the current state of things. :)
I have pinged my network, and am very grateful for all the job offers that have come of it. However, at least half those offers have come with technical interviews that basically ignore my work experience, or in one case the recruiter could not even determine why my experience was relevant (even though it was). Some offers involved getting paid to continue working on Voxel Quest. However, one such offer was in a remote country where the US dollar is much stronger, and I could not have operated under the salary they were offering (at least, not without moving to their country, which is very far away).
At this point I am trying to figure out the "best" path, and that involves many factors, one of which is trying to ease up on the stress I have put my family through. By insistence I have put up Patreon although I am not yet touching the money until I know what my future job is and what that means for VQ (and as mentioned I'm also refunding all the money put into VQ).
So, instead of dealing with flat triangles with get rasterized to picture elements (pixels), a voxel engine deals with volume elements (voxels).
The crudest form of this would be something like Minecraft, where the world is literally made out of cubes. More advanced work would be something like what Ken Silverman did back during the Build engine days, a modern example of which can be seen here: http://advsys.net/ken/voxlap/pnd3d.htm .
The current state of the art appears to be something like voxel quest ( http://www.voxelquest.com/ ) or Atomontage Engine ( http://www.atomontage.com/ ).
~
If you want to learn a bit about voxel engines, Flipcode had a decent series on landscape engines: http://www.flipcode.com/archives/Realtime_Voxel_Landscape_Engines-Part_1_Introduction.shtml .
Basically, the main problem is raycasting into a scene. To learn more about that, I'd look into octrees as a start ( https://en.wikipedia.org/wiki/Octree ).
> I ended up creating my own framework that was much easier to understand and manage, but is obviously not generic enough to publish.
You lost me there.
Cute for a solo/learning project, but when other people are touching the project or you're trying to build a business, you have to answer for why your project was so special that it needed its own ad hoc framework. As opposed to, say, a framework with real documentation. Or one with an ecosystem so you can escape this culture of NIH.
When I hear someone building their own JS framework, I see someone who wanted to procrastinate the hard part (building a business, shipping a product, appealing to users). Like when game developers decide to build an engine and never make the game, aka the hard part (https://www.voxelquest.com/).
Looks like they just formed a real company https://www.atomontage.com/blog/2018/4/5/atomontage-inc-launches-to-bring-unprecedented-voxel-technology-to-market-announces-initial-founding-team-and-advisors.
One of their investors is an MD specializing in imaging. https://www.atomontage.com/#team-section That'll be their bread and butter.
I always wondering if the community picked up VoxelQuest https://www.voxelquest.com/ and ran with it, but last I looked that wasn't the case.
I'm too old to do serious graphics programming, but might be interested in a voxel engine written in C# with a good community.
In addition to @Sir_Cmpwn's answer, the developer logs from Voxel Quest (@gavanwoolery on HN) and Seed of Andromeda are both excellent starting points for getting a general overview of what's involved in this sort of undertaking. Both of those games ended up releasing their full source code by the way, so you're also free to pick through every last detail if the logs aren't enough.
Links:
https://www.voxelquest.com/news/every-version-of-voxel-quest-ever
https://www.seedofandromeda.com/blogs