Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stoyannk/voxels
Voxels Library - C++ library for voxel manipulation and polygonization
https://github.com/stoyannk/voxels
Last synced: about 2 months ago
JSON representation
Voxels Library - C++ library for voxel manipulation and polygonization
- Host: GitHub
- URL: https://github.com/stoyannk/voxels
- Owner: stoyannk
- License: other
- Created: 2014-02-10T19:42:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-07-09T13:26:45.000Z (almost 8 years ago)
- Last Synced: 2024-02-01T02:08:10.595Z (5 months ago)
- Language: C++
- Homepage: http://stoyannk.wordpress.com/voxels-library/
- Size: 1000 KB
- Stars: 282
- Watchers: 14
- Forks: 33
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- AwesomeCppGameDev - voxels - C++ library for voxel manipulation and polygonization (Maths)
- awesome-stars - voxels - C++ library for voxel manipulation and polygonization | stoyannk | 261 | (C++)
- awesome-android-cpp - stoyannk/voxels - Voxels Library - C++ library for voxel manipulation and polygonization (TODO scan for Android support in followings)
README
**Voxels** Library - Library for Voxel manipulation and polygonization
Official *Voxels* website: http://stoyannk.wordpress.com/voxels-library/
## General Notes
**Voxels** is a library for manipulating voxel grids and triangulating them to
triangle soups. The library supports grid compression and fast polygonization
using the TransVoxel algorithm.**Voxels** is in *alpha*. Unfortunately I don't have enough time to dedicate it and at this point there are no plans to update the library. No significant changes were applied to the library since the first public release in 2014.
The library depends on my dx11-framework for some utilities - nothing that can't be easily ported. When building make sure you have also downloaded the dx11-framework files.
The gist of the library is the "TransVoxelImpl.cpp" file that implements the Transvoxel algorithm along with the LOD levels and the vertex transitions. The Grids can be sompressed and saved/loaded to disk - take a look at the "VoxelGrid.cpp" file.## Major features
- Polygonization based on the TransVoxel algorithm
- Level of detail
- Dynamic Material support
- Dynamic manipulation
- Voxel grid compression
- Scalable implementation
- Pluggable grid generation
## Voxels advantages
Voxel-based surfaces allow for more freedom than usual polygon-based ones. The major advantages of such a representation
can be summarized as follows:- **Freedom of form** - You can create virtually any surface configuration. Gives much more possibilities than heightmaps for terrains
for instance. With usual heightmaps you can't have caves or overhangs as part of the terrain mesh.
- **Destructibility/constructibility** - The voxel surface can be trivially modified in real-time allowing easy sculpting. Allow users
to create their worlds or destroy them.
- **Procedural generation** - Procedural surfaces can easily be created, which diminishes greatly the content creation effort and possibly
the memory footprint of the whole application
## Requirements
- Windows 32-bit or 64-bit
- SSE2-enabled processor
- **Voxels** scales very well across processor cores; the more available on the machine - the faster the polygonization process will be.The library is not strictly cross platform at the moment. I haven't tried it on other targets, but there shouldn't be hurdles porting it.
## DocumentationDetailed documentation is available in the doc_source folder.
## SamplesA sample application that uses **Voxels** is available on http://github.com/stoyannk/volumerendering. A pre-built version of the sample with
editing functionality is available in the Download section.
## Acknowledgements**Voxels** uses the TransVoxel algorithm as described in:
Lengyel, Eric. “Voxel-Based Terrain for Real-Time Virtual Simulations”. PhD diss., University of California at Davis, 2010.
For more information please refer to http://www.terathon.com/voxels/.
**Voxels** uses the GLM maths library http://glm.g-truc.net/0.9.7/index.html
## LicenseThe library is licensed under the permissive 3-clause BSD license.
Please refer to the LICENSE file for all the details.