An open API service indexing awesome lists of open source software.

https://github.com/mierune/dda-voxelize-rs

3D mesh voxelization in Rust with the DDA algorithm
https://github.com/mierune/dda-voxelize-rs

3d graphics rust voxel voxelization voxelizer

Last synced: 3 months ago
JSON representation

3D mesh voxelization in Rust with the DDA algorithm

Awesome Lists containing this project

README

          

# dda-voxelize

[![test](https://github.com/MIERUNE/dda-voxelize-rs/actions/workflows/test.yml/badge.svg)](https://github.com/MIERUNE/dda-voxelize-rs/actions/workflows/test.yml)
[![Crates.io Version](https://img.shields.io/crates/v/dda-voxelize)](https://crates.io/crates/dda-voxelize)

Work in progress.

A 3D mesh voxelizer implemented in Rust using the DDA (Digital Differential Analyzer) algorithm. The DDA method is simple and very fast when only the surfaces (not volumes) of 3D objects need to be voxelized.

![1716994116122](docs/demo.png)

## DDA Algorithm Overview

See also: [Digital differential analyzer - Wikipedia](https://en.wikipedia.org/wiki/Digital_differential_analyzer_(graphics_algorithm))

The DDA algorithm is a fast line drawing method commonly used in computer graphics. It incrementally steps along the major axis of the line (X or Y), while computing the corresponding value on the minor axis at each step. This allows lines to be drawn efficiently by only visiting the pixels/voxels that the line actually intersects.

For 3D voxelization, the DDA algorithm can be extended to incrementally step along the dominant axis (X, Y, or Z), while tracking the intersection points on the other two axes. This enables rapid traversal of the voxel grid to tag all voxels overlapping with the geometry.

## Example

Run the example: `cargo run --package dda-voxelize --example voxelize`