Voxel module for Godot Engine
Go to file
2018-09-28 14:07:01 +01:00
screenshots Added screenshot and feature list 2016-05-04 14:52:41 +02:00
.gitignore Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
config.py Compilation fixes 2018-09-02 18:48:08 +01:00
cube_tables.cpp Use named constant 2018-09-25 00:53:12 +01:00
cube_tables.h Use named constant 2018-09-25 00:53:12 +01:00
LICENSE.md Added license 2016-07-28 00:21:21 +02:00
README.md Update features description 2018-09-28 14:07:01 +01:00
rect3i.h Fixed view distance + dynamic load/unload around viewer 2017-08-28 01:48:36 +02:00
register_types.cpp Added an image-based terrain generator for testing (ported from the GDScript demo) 2018-09-28 01:11:28 +01:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
SCsub Removed useless line in SCsub 2016-05-05 21:09:13 +02:00
transvoxel_tables.cpp Added smooth voxels (untextured at the moment) 2017-04-06 23:44:11 +02:00
utility.h Fix thread loops missing blocks 2018-09-27 00:31:09 +01:00
vector3i.h Fixed view distance + dynamic load/unload around viewer 2017-08-28 01:48:36 +02:00
voxel_block.cpp Fix visibility + staying visible in other scenes 2017-08-28 02:32:23 +02:00
voxel_block.h Fix visibility + staying visible in other scenes 2017-08-28 02:32:23 +02:00
voxel_buffer.cpp Fix includes 2018-09-19 20:25:04 +01:00
voxel_buffer.h Fix includes 2018-09-19 20:25:04 +01:00
voxel_library.cpp Removed useless variable 2017-08-15 21:37:08 +02:00
voxel_library.h Fix includes 2018-09-19 20:25:04 +01:00
voxel_map.cpp Use named constant 2018-09-25 00:53:12 +01:00
voxel_map.h Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_mesh_updater.cpp Fix thread loops missing blocks 2018-09-27 00:31:09 +01:00
voxel_mesh_updater.h Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_mesher_smooth.cpp Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_mesher_smooth.h Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_mesher.cpp Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_mesher.h Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_provider_image.cpp Added an image-based terrain generator for testing (ported from the GDScript demo) 2018-09-28 01:11:28 +01:00
voxel_provider_image.h Added an image-based terrain generator for testing (ported from the GDScript demo) 2018-09-28 01:11:28 +01:00
voxel_provider_test.cpp Compilation fixes 2018-09-02 18:48:08 +01:00
voxel_provider_test.h VoxelProvider now receives an offset in voxels instead of blocks 2017-08-28 15:42:54 +02:00
voxel_provider_thread.cpp Fix thread loops missing blocks 2018-09-27 00:31:09 +01:00
voxel_provider_thread.h Moved loading and meshing to 2 threads, will need a few bugfixes 2018-09-25 00:54:07 +01:00
voxel_provider.cpp Added an image-based terrain generator for testing (ported from the GDScript demo) 2018-09-28 01:11:28 +01:00
voxel_provider.h Fix includes 2018-09-19 20:25:04 +01:00
voxel_raycast.cpp Fix includes 2018-09-19 20:25:04 +01:00
voxel_raycast.h Fix includes 2018-09-19 20:25:04 +01:00
voxel_terrain.cpp Add an internal option to run the terrain in editor, which defaults to false because editor integration currently isn't thread-safe 2018-09-28 01:10:35 +01:00
voxel_terrain.h Add an internal option to run the terrain in editor, which defaults to false because editor integration currently isn't thread-safe 2018-09-28 01:10:35 +01:00
voxel.cpp Compilation fixes 2018-09-02 18:48:08 +01:00
voxel.h Fix includes 2018-09-19 20:25:04 +01:00
zprofiling.cpp Fix includes 2018-09-19 20:25:04 +01:00
zprofiling.h Fix includes 2018-09-19 20:25:04 +01:00

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
  • 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