• Member Since 11th Jan, 2018
  • offline last seen 7 hours ago

Andrew-R


Human. Still human. ["with sentences [...] reads like they were written by a drunk, stoned, and autistic disorganized schizophrenic", as one said]

More Blog Posts177

Feb
22nd
2020

Various voxel-related links · 2:17pm Feb 22nd, 2020

So, I was following this trail about VOXELS today, and I guess I better to put some links in my own blogpost, instead of making very crowded forum post.
Out-of-Core Construction of Sparse Voxel Octrees

Abstract

Voxel-based rendering has recently received significant attention due to its potential in the context of efficiently rendering massively large and highly detailed scenes. Unfortunately, few or no scenes are available in the form of sparse voxel octrees. In this paper, we present an out-of-core algorithm for constructing a sparse voxel octree from a triangle mesh. Our algorithm allows the input triangle mesh, the output sparse voxel octree, and, most importantly, the intermediate high-resolution 3D voxel grid, to be larger than available memory. We demonstrate that our out-of-core algorithm can construct sparse voxel octrees from triangle meshes using only a fraction of the memory required by an in-core algorithm in roughly the same time, and that our out-of-core algorithm can also handle extremely large triangle meshes.

Kubex

This is Kubex, a free and open source voxel graphics engine by Ivelate.
Fully written in Java, using pure OpenGL. Not all voxel games need to be retro

- not updated in last four years, still something ...

Volumes of fun

PolyVox is the core technology which lies behind our games. It is a fast, lightweight C++ library for the storage and processing of volumetric (voxel-based) environments.

- see also thread on Ogre forums.

Edit:

Developer Spacerat also posted some voxel fun (even with openCL usage!)

Edit 2:
Reddit thread about voxels, for beginners

In a voxel representation however, instead of defining the surface directly, you define a value (like 0 for air and 1 for solid or a density between zero and 1) for each point in space (each voxel), no matter if they end up being part of the final surface or not. But because what you draw on the screen using a GPU still has to be a mesh or wireframe model like in the traditional way above, you need an algorithm that can construct a surface from this volumetric data. This algorithm is called a mesher, one common example is marching cubes. It draws a surface around parts if your voxel data (for example around all voxels containing the value 1, or all voxels with a a density greater than 0.5). Crucially, this mesher can make the surface look really rounded out, or might be simple and just construct a cube for every solid voxel, like in Minecraft. So the voxel representation is basically an underlying representation, from which you can generate a mesh that you can display in the traditional way. The advantage is, that for modifying the shape you don't have to change coordinates of any points and do fancy math, you can just change the value of the voxels you want to delete (change 1 to 0) or add (change 0 to 1), then run the mesher again and the mesh will be changed to exclude/include the modified voxels.

Report Andrew-R · 90 views · #voxels
Comments ( 0 )
Login or register to comment