2fe83ce154 | ||
---|---|---|
doc | ||
math | ||
meshers | ||
streams | ||
terrain | ||
thirdparty/lz4 | ||
util | ||
.gitignore | ||
CODE_GUIDELINES.md | ||
LICENSE.md | ||
README.md | ||
SCsub | ||
config.py | ||
cube_tables.cpp | ||
cube_tables.h | ||
octree_tables.h | ||
register_types.cpp | ||
register_types.h | ||
voxel.cpp | ||
voxel.h | ||
voxel_buffer.cpp | ||
voxel_buffer.h | ||
voxel_constants.h | ||
voxel_library.cpp | ||
voxel_library.h | ||
voxel_memory_pool.cpp | ||
voxel_memory_pool.h | ||
voxel_string_names.cpp | ||
voxel_string_names.h | ||
voxel_tool.cpp | ||
voxel_tool.h | ||
voxel_tool_buffer.cpp | ||
voxel_tool_buffer.h | ||
voxel_tool_lod_terrain.cpp | ||
voxel_tool_lod_terrain.h | ||
voxel_tool_terrain.cpp | ||
voxel_tool_terrain.h |
README.md
Voxel Tools for Godot
A C++ module for creating volumetric worlds in Godot Engine.
Features
- Realtime editable, 3D based terrain (Unlike a heightmap based terrain, this allows for overhangs, tunnels, and user creation/destruction)
- Full collision support
- Infinite terrains made by paging sections in and out
- Voxel data is streamed from a variety of sources, which includes the ability to write your own
- Minecraft-style blocky voxel terrain, with multiple materials and baked ambient occlusion
- Smooth terrain using Dual Marching Cubes
- Levels of detail for smooth terrain
- Voxel storage using 8-bit channels for any general purpose
What This Module Doesn't Provide
- Levels of detail for blocky terrain
- 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
How To Install And Use
Voxel Tools is a custom C++ module for Godot 3.1+. It must be compiled into the engine to work.
Please see the Getting Started Guide for instructions, or Zylann's demos and TinmanJuggernaut's demo for working examples.
Roadmap
These are some ideas that may or may not be implemented in the future:
- LOD (in development)
- Support general voxel use (not just terrains)
- Transvoxel and other meshing algorithms
- GPU Offloading (Maybe when Godot 4+ supports compute shaders)