Go to file
Marc Gilleron 8a0d2983c4 Update readme with new docs 2021-01-21 19:04:28 +00:00
.github Give a different name to release CI builds, they could not be told apart 2020-12-18 21:22:57 +00:00
doc Fix typo in .md link 2021-01-21 01:23:50 +00:00
edition Register `VoxelToolBuffer` because otherwise it gets initialized lazily, causing crashes in threads 2021-01-17 22:18:41 +00:00
editor Update readme with new docs 2021-01-21 19:04:28 +00:00
generators Fix ambiguous type deduction 2021-01-18 22:45:41 +00:00
math Made file streams thread-safe (but still won't be used in more than one thread) 2021-01-16 13:34:45 +00:00
meshers Comments 2021-01-18 18:47:37 +00:00
server Request saving of generated blocks if the option is enabled in VoxelStream 2021-01-17 22:22:10 +00:00
storage Should not be there 2020-12-29 22:18:08 +00:00
streams Fix use of enum returns instead of boolean 2021-01-18 19:42:28 +00:00
terrain Merge branch 'master' into multithreaded_generators 2021-01-18 18:55:18 +00:00
thirdparty Added FastNoise2 for SIMD noise, but it won't be integrated yet. 2021-01-09 16:35:40 +00:00
util Allow ArraySlices to be empty 2021-01-16 13:37:41 +00:00
.gitignore Fix build warnings on other platforms 2020-04-03 20:46:29 +08:00
.readthedocs.yml Add readthedocs file 2021-01-21 00:44:02 +00:00
LICENSE.md Added About window and list of donors 2020-12-17 21:45:44 +00:00
README.md Update readme with new docs 2021-01-21 19:04:28 +00:00
SCsub Added FastNoise2 for SIMD noise, but it won't be integrated yet. 2021-01-09 16:35:40 +00:00
config.py New documentation (some things left to do but most of it is updated) 2021-01-21 00:37:01 +00: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 Register `VoxelToolBuffer` because otherwise it gets initialized lazily, causing crashes in threads 2021-01-17 22:18:41 +00:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
voxel_constants.h Optimized range analysis for images and spherical map lookups 2020-12-26 18:58:16 +00:00
voxel_string_names.cpp Script-based generators and streams have their own class, should fix C# API 2020-10-31 22:11:25 +00:00
voxel_string_names.h Script-based generators and streams have their own class, should fix C# API 2020-10-31 22:11:25 +00:00

README.md

Voxel Tools for Godot

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

Blocky screenshot Smooth screenshot Textured screenshot

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 or 16-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 the source yourself is the best way to get your own version and export template. Please see the documentation for instructions.

Documentation

Roadmap

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

  • Instancing for foliage and rocks
  • 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)

Supporters

This module is a non-profit project developped by voluntary contributors. The following is the list of the current donors. Thanks for your support :)

Supporters

wacyym
Sergey Lapin (slapin)
Jonas (NoFr1ends)
lenis0012
Phyronnaz
RonanZe
furtherorbit