Voxel module for Godot Engine
Go to file
2019-04-24 02:07:06 +01:00
dmc Use Godot Map, std::map doesnt appear to have any advantage 2019-04-23 23:38:15 +01:00
screenshots
transvoxel Rename VoxelMesherSmooth => VoxelMesherTransvoxel 2019-04-21 14:47:50 +01:00
.gitignore
config.py
cube_tables.cpp
cube_tables.h
LICENSE.md
README.md
rect3i.h Fixed compilation 2019-04-24 02:07:06 +01:00
register_types.cpp Added VoxelIsoSurfaceTool 2019-04-22 20:15:46 +01:00
register_types.h
SCsub
utility.h Added VoxelIsoSurfaceTool 2019-04-22 20:15:46 +01:00
vector3i.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_block.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_block.h
voxel_box_mover.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_box_mover.h
voxel_buffer.cpp Drop gradient channels, fix misconception about what gradient is 2019-04-22 21:17:19 +01:00
voxel_buffer.h Drop gradient channels, fix misconception about what gradient is 2019-04-22 21:17:19 +01:00
voxel_isosurface_tool.cpp Make OP_ADD the default in VoxelIsoSurfaceTool 2019-04-23 01:28:51 +01:00
voxel_isosurface_tool.h Added VoxelIsoSurfaceTool 2019-04-22 20:15:46 +01:00
voxel_library.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_library.h
voxel_map.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_map.h Rename VoxelMesherSmooth => VoxelMesherTransvoxel 2019-04-21 14:47:50 +01:00
voxel_mesh_updater.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_mesh_updater.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_mesher.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_mesher.h
voxel_provider_image.cpp
voxel_provider_image.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_provider_test.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_provider_test.h
voxel_provider_thread.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_provider_thread.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_provider.cpp
voxel_provider.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_raycast.cpp
voxel_raycast.h
voxel_terrain.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel_terrain.h Clang-format did things 2019-04-24 01:31:42 +01:00
voxel.cpp Clang-format did things 2019-04-24 01:31:42 +01:00
voxel.h Clang-format did things 2019-04-24 01:31:42 +01:00
zprofiling.cpp
zprofiling.h

Voxel Tools for Godot

C++ module for creating volumetric worlds in Godot Engine.

Example screenshot

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