Go to file
Marc Gilleron d009049d4f Added experimental functions to bake sphere maps from the generator
- The runtime API now works with float positions
- Fixed XZ optimization, cached positions were not assigned
2020-12-22 02:13:46 +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 some typos 2020-09-28 18:37:49 +01:00
edition Meshers are now resources assigned on terrain nodes 2020-12-18 21:01:50 +00:00
editor Added background tasks indicator when a terrain is selected 2020-12-20 00:14:08 +00:00
generators Added experimental functions to bake sphere maps from the generator 2020-12-22 02:13:46 +00:00
math Added SdfSphereHeightmap node to graph generator 2020-12-21 02:00:31 +00:00
meshers Meshers are now resources assigned on terrain nodes 2020-12-18 21:01:50 +00:00
server Added background tasks indicator when a terrain is selected 2020-12-20 00:14:08 +00:00
storage consts 2020-12-18 20:52:09 +00:00
streams Fix error when a region file gets created, it was wrongly trying to migrate because the version wasn't set 2020-12-18 21:20:00 +00:00
terrain Streaming/LOD can be set to follow the editor camera instead of being centered on world origin 2020-12-19 23:16:10 +00:00
thirdparty/lz4 Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
util Use reinterpret_cast instead of ambiguous C-style cast 2020-12-18 20:46:54 +00:00
.gitignore Fix build warnings on other platforms 2020-04-03 20:46:29 +08:00
CHANGELOG.md Streaming/LOD can be set to follow the editor camera instead of being centered on world origin 2020-12-19 23:16:10 +00:00
CODE_GUIDELINES.md No long lines 2020-09-13 02:14:41 +01:00
LICENSE.md Added About window and list of donors 2020-12-17 21:45:44 +00:00
README.md Added About window and list of donors 2020-12-17 21:45:44 +00:00
SCsub Moved simple generators under a simple/ folder 2020-12-18 21:19:02 +00:00
config.py VoxelMap is no longer bound, it had no use in the API 2020-11-21 18:31:11 +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 Voxel terrain nodes now have a common abstract base class. Also explicitely made a few other classes abstract 2020-12-18 22:58: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 Added bounds support to VoxelLodTerrain (rounded to octree size) 2020-10-22 22:43:31 +01: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.

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 the source yourself is the best way to get your own version and export template. 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)

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

TODO Add About window