Why video games are made of triangles.. smaller and smaller triangles


It seems voxels would come in vogue when hardware advanced faster than the resolution people expected to play at. In the mid-1990s, for example, you could get away with dumping players to 320x240 for a spectacular run at Comanche. The voxels and pixels were roughly equivalent in rendered size. But by the turn of the century everyone wanted to run at 768 lines or whatever, where voxels would be slow and have this unpleasantly pointillistic look, like a cloud of little floating dots or blobs.

A lot of modern “voxel” games use voxels to represent data but is rendered conventionally. Such as Minecraft. And often I see a ‘true’ voxel game, they’re going for a nostalgic revival of the glitchy impressionistic look from the 90s.


Yeah, I suppose that’s it - voxels worked well for low-resolution, but didn’t scale up until we got to modern graphics. The combination of having lots of memory and also storage-intensive high-poly models and high-resolution texture and displacement maps, etc., voxels start to be efficient and feasible again, to the point where high-end game engines voxelize environment data for certain display functions.

The irony is that the modern games I see with the voxel aesthetic, besides Minecraft and its imitators, have nothing to do with voxels at all - there are tons of games that carefully create a sort of “3D pixel art” aesthetic purely with chunky polygons (that isn’t even a recreation of what '90s voxel games looked like). Sometimes they describe themselves as “low-poly,” but they’re actually significantly increasing the poly count to create the look. Whereas most of the games that are actually using voxels are doing so invisibly at this point.


A video showing half of a zebra fused into–and jutting out from–solid rock is NOT LIKELY to make me trust “Voxels”


I don’t think voxels can be considered as an alternative to polygons. They represent higher levels of data (e.g. terrain, objects, whatever) that still have to be expressed as polygons at some point to be rendered. I think It’s like saying “why not height maps instead of a mesh?”.

But yeah, adding voxel data to a game provides all sorts of cool possibilities that can’t be accomplished just with meshes.


That was only true on older, fixed-pipeline GPUs. On modern GPU you can render voxel data directly, for example by writing a ray tracing pixel shader.


Except that, because it’s voxels, even when the programmer is limited in the models available to show off the technology, the zebra remains a distinct, complete entity, even when embedded in solid rock. So if you carve the rock away, there will be a zebra there, and if you selectively remove the zebra, there will be a zebra-shaped hole in the rock. (Though the second, much, much later video does do a much better job of showing off the power of voxel data in completely destructible environments.)

They can, though! The early voxel games I mentioned were rendering environments with voxels, not polygons. (Novalogic’s “Voxel Space” engine, used for the Comanche flight/combat sims, didn’t even have support for polygons until the 2.0 version of the engine, three games into the series.) And although most modern games using voxels are either just using them for environmental data (e.g. Minecraft) or as an intermediary, hidden stage for calculating illumination and occlusion (e.g. Witcher 3), there’s an increasingly popular move towards directly rendering with voxels again (e.g. Atomontage).


But these voxel engines still have to feed the GPU with polygon data because that’s all GPUs currently know how to deal with (although 74hc595’s post suggests that’s changing). A voxel engine is really just another layer of abstraction that essentially automates mesh generation in very useful and interesting ways.


With my sense of rhythm?


I’m not sure that’s true. GPUs were optimized for rendering polygons. As I mentioned above, even Nvidia researchers are writing papers about efficient voxel rendering, so presumably even that’s not so true anymore. Plus, consider that GPUs have been used for a while now for mining bitcoins and running neural networks, which have nothing to do with polygons. It seems like modern GPUs are perfectly happy to do voxel raycasting. (And from some of what I’ve read, happier to do raycasting with voxels than polygons.)

The modern engines that voxelize polygons meshes aren’t automating mesh generation - the opposite. They’re starting off with meshes and using the GPU to turn them into voxels in real-time for increased rendering efficiency. (They’re starting off with polygon meshes not because the GPU needs them, but for other reasons - e.g. because the game development pipeline does, because polygons are more efficient for some things, etc.)


This topic was automatically closed after 5 days. New replies are no longer allowed.