Skip to content
Voxel module for Godot Engine
C++ Other
  1. C++ 99.5%
  2. Other 0.5%
Branch: master
Clone or download
Zylann Merge pull request #85 from tinmanjuggernaut/fix_macro_errors
Fix build errors due to Godot macro change
Latest commit cfe6eb3 Nov 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Update docs Oct 5, 2019
math Fixed and tweaked a bunch of things, first working editing with LOD Sep 6, 2019
meshers Take voxel color into account in blocky mesher Sep 11, 2019
streams Fix build errors due to Godot macro change Nov 13, 2019
terrain Fix mono build warnings Oct 3, 2019
thirdparty/lz4 Moved lz4 to a thirdparty folder Aug 24, 2019
util First WIP at paging LOD Aug 29, 2019
.gitignore Added stats to VoxelStream, tweak file handles and batch counts Aug 16, 2019
CODE_GUIDELINES.md Added code guidelines for sake of expliciteness Aug 31, 2019
LICENSE.md Added license Jul 27, 2016
README.md Update docs Oct 5, 2019
SCsub Moved lz4 to a thirdparty folder Aug 24, 2019
config.py Setup doc classes for doctool and generated XML files, need descripti… Aug 26, 2019
cube_tables.cpp Fix UVs, change tables to use OpenGL convention... Oct 5, 2018
cube_tables.h Reorganize all files and rename a few things Apr 28, 2019
octree_tables.h Moved ObjectPool to util/ and moved OctreeTables to root Apr 29, 2019
register_types.cpp Register missing class to fix C# binding Sep 24, 2019
register_types.h Added project: first working prototype, but lots of TODOs May 1, 2016
voxel.cpp Fix voxel_name set/get bug Jun 14, 2019
voxel.h Take voxel color into account in blocky mesher Sep 11, 2019
voxel_buffer.cpp Fixed and tweaked a bunch of things, first working editing with LOD Sep 6, 2019
voxel_buffer.h Fixed and tweaked a bunch of things, first working editing with LOD Sep 6, 2019
voxel_isosurface_tool.cpp Fix gcc uninitialized variable redo Jun 25, 2019
voxel_isosurface_tool.h Barebones edition, untested WIP Sep 5, 2019
voxel_library.cpp Fix gcc sign comparison warnings Jun 18, 2019
voxel_library.h Fix gcc sign comparison warnings Jun 18, 2019
voxel_tool.cpp Don't use individual set_voxel edits in do_sphere Sep 11, 2019
voxel_tool.h Rename VoxelTool.MODE_ERASE => MODE_REMOVE Sep 8, 2019
voxel_tool_buffer.cpp Cleanup includes Sep 5, 2019
voxel_tool_buffer.h Cleanup includes Sep 5, 2019
voxel_tool_lod_terrain.cpp Fixed and tweaked a bunch of things, first working editing with LOD Sep 6, 2019
voxel_tool_lod_terrain.h Cleanup includes Sep 5, 2019
voxel_tool_terrain.cpp Implement voxel tool for classic terrain Sep 8, 2019
voxel_tool_terrain.h Implement voxel tool for classic terrain Sep 8, 2019

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)
You can’t perform that action at this time.