C C++ Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example Default to both options Dec 10, 2016
images Hi Feb 19, 2016
.gitignore Hi Feb 19, 2016
README.md Hi Feb 19, 2016
voxelizer.h Fix: allocation of meshes Jul 11, 2017

README.md

Mesh voxelizer

Header only mesh voxelizer in ANSI C

About

Converts meshes and performs triangle-cube intersection to output a voxelized mesh.

How to use

Include the header only file as following once:

#define VOXELIZER_IMPLEMENTATION
#include "voxelizer.h"

To generate a voxelized mesh, create an instance of vx_mesh_t and initialize its vertices and indices like this:

vx_mesh_t* mesh;
vx_mesh_t* result;

mesh = vx_mesh_alloc(nvertices, nindices);

// Add vertices and indices from the original mesh you want to voxelize
// [...]

// Precision factor to reduce "holes" artifact
float precision = 0.01;

// Run voxelization
result = vx_voxelize(mesh, 0.025, 0.025, 0.025, precision);

vx_mesh_free(result);
vx_mesh_free(mesh);

TODO

  • Colorized output mesh (from input mesh)
  • Hidden voxel removal
  • Triangle face merging
  • Option for input triangle ordering (right now only supports GL_TRIANGLES indexed triangles)
  • Option for output format