Go to file
Marc Gilleron fd9122a0de Use StringName for voxel names 2020-07-26 18:37:34 +01:00
doc Update docs after VoxelGeneratorTest split 2020-02-19 19:38:44 +00:00
edition Merge pull request #152 from nic96/master 2020-07-10 21:55:39 +01:00
editor Use a macro to print debug stuff only in verbose mode 2020-07-08 20:48:52 +01:00
generators Use last found SDF output and don't crash when there isn't any 2020-07-11 17:03:58 +01:00
math Added missing <limits>, which for some reason MSVC compiles fine without 2020-07-11 03:03:53 +01:00
meshers Use StringName for voxel names 2020-07-26 18:37:34 +01:00
streams Stop using NULL 2020-07-25 23:19:08 +01:00
terrain Stop using NULL 2020-07-25 23:19:08 +01:00
thirdparty/lz4 Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
util Fix missing file 2020-07-11 02:52:22 +01:00
.gitignore Fix build warnings on other platforms 2020-04-03 20:46:29 +08: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 VT/VLT Detect channel type from generators. Other convenience features. 2020-02-16 22:13:28 +08:00
SCsub Merge branch 'master' into voxel_gen_graph 2020-05-08 18:09:09 +01:00
config.py WIP VoxelGeneratorGraph, compiled and untested 2020-02-19 19:26:14 +00:00
cube_tables.cpp Implement LOD transitions in VoxelLodTerrain 2019-12-31 16:48:46 +00:00
cube_tables.h Implement LOD transitions in VoxelLodTerrain 2019-12-31 16:48:46 +00:00
octree_tables.h Moved ObjectPool to util/ and moved OctreeTables to root 2019-04-29 21:31:08 +01:00
register_types.cpp Exposed block serializer 2020-07-25 21:56:23 +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 Stop using NULL 2020-07-25 23:19:08 +01:00
voxel_buffer.h Fix release compilation 2020-02-15 16:37:23 +00: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 Update pr 2020-02-16 23:07:10 +08:00
voxel_string_names.h Update pr 2020-02-16 23:07:10 +08: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 are available.

Please see the Getting Started Guide for instructions, or Zylann's demos and TinmanJuggernaut's demo for working examples.

Roadmap

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

  • LOD (in development)
  • Support general voxel use (not just terrains)
  • Other meshing algorithms (e.g. dual contouring)
  • GPU Offloading (Maybe when Godot 4+ supports compute shaders)