|
[binvox] 3D mesh voxelizer |
![]() |
binvox thinvox viewvox
Introduction
binvox is a straight-forward program that reads a 3D model file, rasterizes it into a binary 3D voxel grid, and writes the resulting voxel file.
Features
- input formats:
- nearly 100% VRML 2.0 support
- will parse Unigrafix UG, VTK, Wavefront OBJ, Geomview OFF, AutoCad DXF, XGL, PovRay POV, BREP, PLY, and JOT files if they contain polygons only
- output formats:
- runs fast if you have a current graphics card
- rasterizes to a cube grid of up to 1024x1024x1024 (if you have enough memory...)
Download
version 0.36, added 22 Jan 2008The source code of binvox and thinvox is available for download: binvox-0.36.tar.gz. The source compiles under Linux, Mac OS X, and Windows. Let me know if you run into compilation problems. The source code is released under the GNU General Public License. Note that the open source version of binvox only reads the OBJ and PLY 3D file formats (more formats to follow). As of version 0.35 the PLY reading code from the PLY tools was modified slightly to be able to handle Unix/Windows differences.
The executables are still at version 0.33, and support all formats listed above (in the 'Features' section):
- Linux static executable (~ 1.2M)
should run under most Linuxes, let me know if it doesn't - Windows executable
compiled under Windows 2000, using the MinGW compiler system. You also need to have GLUT installed (or at least have glut32.dll somewhere in your PATH). This executable also runs under Linux using Wine.
(the binaries have been compressed using the UPX executable compressor)(they are self-decompressing)
Usage
Run binvox without parameters for a usage summary.
Credit
If you use binvox for your (published) work, please add a reference to me, to this site (as a link, you could use http://www.google.com/search?q=binvox), and to the paper by F. Nooruddin and G. Turk (see next paragraph). Unfortunately I've already seen one recent scientific paper using my software without proper credit.
References
binvox uses the parity count method and (a slight variation of) the ray stabbing method described by Fakir Nooruddin and Greg Turk in Simplification and Repair of Polygonal Models Using Volumetric Techniques, GVU technical report 99-37 (later published in IEEE Trans. on Visualization and Computer Graphics, vol. 9, nr. 2, April 2003, pages 191-205). To speed up the parity counting, a hardware z-buffer "slicing" method is used, based on an idea originally by Emil Praun.
Other references:
- Volumetric Model Repair for Virtual Reality Applications, by Andreas Kolb and Lars John, Eurographics 2001. They describe an implementation of Nooruddin and Turk's method, and convert the resulting voxel models back to 3D meshes.
- A Fast Depth-Buffer-Based Voxelization Algorithm, by Evaggelia-Aggeliki Karabassi, Georgios Papaioannou and Theoharis Theoharis, Journal of Graphics Tools, vol. 4, nr. 4, 1999. Simple z-buffer based carving (as also supported in binvox), and a surface voxelization method.
- Hardware Accelerated Voxelization, by Shiaofen Fang and Hongsheng Chen, Computers and Graphics, vol. 24, nr. 3, pages 433-442, June 2000.
- Complete Polygonal Scene Voxelization, by D. Haumont and N. Warzèe, Journal of Graphics Tools, vol. 7, nr. 3, pages 27-41, 2002.
- vxt, by Milos Sramek, is a tool for anti-aliased voxelization. The page also has links to his publications on the subject.
Feedback
Please send me e-mail (to patrick.n.min at gmail dot com) with your questions/comments/suggestions/bug reports...Note that because of differences in hardware and software (drivers, the OpenGL implementation on your OS, etc.) the resulting voxel model will probably differ slightly from one setup to another.
