voxelizer.c
v1.2022.2
Published
Header only mesh voxelizer in c99; Karim Naaji (2016).
Maintainers
Readme
Mesh voxelizer
Header only mesh voxelizer in ANSI C

About
Converts meshes and performs triangle-cube intersection to output a voxelized mesh. By Karim Naaji.
Installation
Run:
$ npm i voxelizer.cAnd then include voxelizer.h as follows:
// main.c
#define VOXELIZER_IMPLEMENTATION
#include "node_modules/voxelizer.c/voxelizer.h"
int main() { /* ... */ }And then compile with clang or gcc as usual.
$ clang main.c # or, use gcc
$ gcc main.cYou may also use a simpler approach:
// main.c
#define VOXELIZER_IMPLEMENTATION
#include <voxelizer.h>
int main() { /* ... */ }If you add the path node_modules/voxelizer.c to your compiler's include paths.
$ clang -I./node_modules/voxelizer.c main.c # or, use gcc
$ gcc -I./node_modules/voxelizer.c main.cUsage
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);