https://github.com/karimnaaji/voxelizer
Header only mesh voxelizer in c99
https://github.com/karimnaaji/voxelizer
c99 computer-graphics geometry-processing voxelizer
Last synced: 8 months ago
JSON representation
Header only mesh voxelizer in c99
- Host: GitHub
- URL: https://github.com/karimnaaji/voxelizer
- Owner: karimnaaji
- Created: 2016-01-05T16:18:22.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-01-03T20:52:52.000Z (almost 4 years ago)
- Last Synced: 2025-03-29T02:07:37.435Z (8 months ago)
- Topics: c99, computer-graphics, geometry-processing, voxelizer
- Language: C
- Homepage: http://karim.naaji.fr/voxelizer.html
- Size: 2.27 MB
- Stars: 636
- Watchers: 31
- Forks: 64
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hpp - voxelizer
- awesome-voxel - Voxelizer
README
# 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:
```c
#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:
```c
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);
```