Go to file
Marc Gilleron b26fd944a8 Added `VoxelTool.copy` declaration, gonna need this in the future 2020-08-30 18:51:20 +01:00
doc No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
edition Added `VoxelTool.copy` declaration, gonna need this in the future 2020-08-30 18:51:20 +01:00
editor Try to keep the terrain UI visible when editing generator and graph settings. Hacky stuff. 2020-08-15 21:22:02 +01:00
generators Show terrain in editor, with option to turn it off. A scripted stream will turn it off by default. 2020-08-14 20:33:09 +01:00
math Added support for per-voxel and per-block metadata 2020-08-10 19:03:01 +01:00
meshers Removed old profiler 2020-08-29 23:20:51 +01:00
server Neighbors are optional when sending meshing requests 2020-08-30 04:00:45 +01:00
streams Detect usage of Tracy, add some profiler scopes 2020-08-30 04:00:01 +01:00
terrain Neighbors are optional when sending meshing requests 2020-08-30 04:00:45 +01:00
thirdparty/lz4 Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
util Detect usage of Tracy, add some profiler scopes 2020-08-30 04:00:01 +01:00
.gitignore Fix build warnings on other platforms 2020-04-03 20:46:29 +08:00
CHANGELOG.md Added changelog 2020-08-17 23:20:46 +01:00
CODE_GUIDELINES.md Added code guidelines for sake of expliciteness 2019-08-31 22:40:27 +01:00
LICENSE.md Added license 2016-07-28 00:21:21 +02:00
README.md Update readme a little 2020-08-17 22:31:00 +01:00
SCsub Added VoxelServer. Compiles, but isn't used anywhere yet 2020-08-24 01:49:23 +01:00
config.py Added a few classes to doc list 2020-08-02 16:37:46 +01:00
cube_tables.cpp No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
cube_tables.h No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
octree_tables.h Moved ObjectPool to util/ and moved OctreeTables to root 2019-04-29 21:31:08 +01:00
register_types.cpp Workaround crash on exit because the GDScript module is freed before voxel 2020-08-29 22:55:52 +01:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
voxel_buffer.cpp No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
voxel_buffer.h No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
voxel_constants.h Fix split scale not being clamped properly. Also reorganized debug functions a bit 2020-01-15 21:04:23 +00:00
voxel_memory_pool.cpp Stop using NULL 2020-07-25 23:19:08 +01:00
voxel_memory_pool.h Fix memory leak in VoxelBuffer::fill() 2020-01-26 01:59:53 +00:00
voxel_string_names.cpp Implemented block events for VoxelTerrain 2020-08-10 20:57:03 +01:00
voxel_string_names.h Implemented block events for VoxelTerrain 2020-08-10 20:57:03 +01:00

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)
  • Physics based collision and raycast 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 generators
  • Minecraft-style blocky voxel terrain, with multiple materials and baked ambient occlusion
  • Smooth terrain using Transvoxel
  • 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.

Prebuilt binaries

Ready-to-use versions of Godot including the module exist, though they might not be 100% up to date.

Compiling

Compiling yourself is the best way to get the very last version. Please see the Getting Started Guide for instructions.

Examples

Roadmap

These are some ideas that may or may not be implemented in the future:

  • Texturing on smooth terrain
  • Editor preview and authoring
  • Improving LOD performance
  • Other meshing algorithms (e.g. dual contouring)
  • GPU offloading (Maybe when Godot 4+ supports compute shaders)