Go to file
Marc Gilleron db398a96e2 Fix crash when duplicate rejection is used, the threaded part was wrong. That map only pertains to shared_input. 2019-08-28 00:20:49 +01:00
doc Fix wrong path in doctool invocation 2019-08-26 13:50:18 +01:00
math Added untested region file conversion, can't really try it yet 2019-08-19 23:17:23 +01:00
meshers Rename `get_stats()` => `get_statistics()` 2019-08-25 17:40:19 +01:00
streams Rename `get_stats()` => `get_statistics()` 2019-08-25 17:40:19 +01:00
terrain Fix crash when duplicate rejection is used, the threaded part was wrong. That map only pertains to shared_input. 2019-08-28 00:20:49 +01:00
thirdparty/lz4 Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
util Optimize collision shapes, doubles build speed 2019-08-25 22:59:55 +01:00
.gitignore Added stats to VoxelStream, tweak file handles and batch counts 2019-08-17 00:46:24 +01:00
LICENSE.md Added license 2016-07-28 00:21:21 +02:00
README.md Added info in order to enable AO 2019-08-10 18:18:41 -03:00
SCsub Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
config.py Setup doc classes for doctool and generated XML files, need descriptions now 2019-08-26 02:54:57 +01:00
cube_tables.cpp Fix UVs, change tables to use OpenGL convention... 2018-10-05 23:51:55 +01:00
cube_tables.h Reorganize all files and rename a few things 2019-04-28 17:58:29 +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 Made block size and a few other params modifiable (not so easy, though) 2019-08-24 01:44:27 +01:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
voxel.cpp Fix voxel_name set/get bug 2019-06-14 17:36:58 +09:00
voxel.h Code formatting 2019-04-28 01:34:00 +01:00
voxel_buffer.cpp Fix wrong size checks in VoxelBuffer::copy_from 2019-08-24 23:08:04 +01:00
voxel_buffer.h Formatting 2019-08-15 01:40:27 +01:00
voxel_isosurface_tool.cpp Fix gcc uninitialized variable redo 2019-06-25 23:50:49 +09:00
voxel_isosurface_tool.h Added VoxelIsoSurfaceTool::do_heightmap(), untested 2019-04-24 02:08:45 +01:00
voxel_library.cpp Fix gcc sign comparison warnings 2019-06-18 14:24:56 +09:00
voxel_library.h Fix gcc sign comparison warnings 2019-06-18 14:24:56 +09: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)
  • Full collision 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
  • Minecraft-style blocky voxel terrain, with multiple materials and baked ambient occlusion
  • Smooth terrain using Dual Marching Cubes
  • Levels of details for smooth terrain (though not user editable yet)
  • Voxel storage using 8-bit channels for any general purpose

What This Module Doesn't Provide

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

Please see the Getting Started Guide guide for instructions, or the the 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)
  • Transvoxel and other meshing algorithms
  • GPU Offloading (Maybe when Godot 4+ supports compute shaders)