mirror of
https://github.com/Relintai/godot_voxel.git
synced 2024-11-19 02:47:18 +01:00
Voxel module for Godot Engine
screenshots | ||
transvoxel | ||
.gitignore | ||
config.py | ||
cube_tables.cpp | ||
cube_tables.h | ||
LICENSE.md | ||
README.md | ||
rect3i.h | ||
register_types.cpp | ||
register_types.h | ||
SCsub | ||
utility.h | ||
vector3i.h | ||
voxel_block.cpp | ||
voxel_block.h | ||
voxel_box_mover.cpp | ||
voxel_box_mover.h | ||
voxel_buffer.cpp | ||
voxel_buffer.h | ||
voxel_library.cpp | ||
voxel_library.h | ||
voxel_map.cpp | ||
voxel_map.h | ||
voxel_mesh_updater.cpp | ||
voxel_mesh_updater.h | ||
voxel_mesher.cpp | ||
voxel_mesher.h | ||
voxel_provider_image.cpp | ||
voxel_provider_image.h | ||
voxel_provider_test.cpp | ||
voxel_provider_test.h | ||
voxel_provider_thread.cpp | ||
voxel_provider_thread.h | ||
voxel_provider.cpp | ||
voxel_provider.h | ||
voxel_raycast.cpp | ||
voxel_raycast.h | ||
voxel_terrain.cpp | ||
voxel_terrain.h | ||
voxel.cpp | ||
voxel.h | ||
zprofiling.cpp | ||
zprofiling.h |
Voxel Tools for Godot
C++ module for creating volumetric worlds in Godot Engine.
Setup
Install the contents of the repo in a folder under "modules/", named "voxel".
IMPORTANT: if you clone the repo, Git will create the folder as the repo name, "godot_voxel". But because Godot SCons scripts consider the folder name as the module's name, it will generate wrong function calls, so you must rename the folder "voxel".
What this module provides
- Fully editable terrain as long as you call the right functions (see demo: https://github.com/Zylann/voxelgame)
- Voxel storage using 8-bit channels like images for any general purpose
- Data segmentation using blocks of 16x16x16 voxels (so the world can be theoretically infinite)
- Main development oriented for minecraft-style terrain by using voxels as types
- Experimental support for smooth terrain using Transvoxel http://transvoxel.org/, by using voxels as isolevels
- Vertex-based ambient occlusion on voxel edges
- Simple interface for deferred terrain generators (block by block using threads)
- Uses threads to stream terrain as the camera moves
- Optional performance statistics
What this module doesn't provides
- Level of detail (not a priority for my project)
- Game specific features such as cave generation or procedural trees (though it might include tools to help doing them)
- Editor tools (only a few things are exposed)
- Import and export of voxel formats
- For reasons why I don't work on X or Y, see https://github.com/Zylann/godot_voxel/issues/17