Go to file
Marc Gilleron 2fe83ce154 Fix wrong return values 2020-01-19 01:22:48 +00:00
doc Update docs 2019-10-05 22:35:13 +08:00
math Transition meshes WIP and bug fixes 2019-12-26 20:29:55 +00:00
meshers VoxelMesherBlocky supports 16-bit voxels 2020-01-18 19:51:21 +00:00
streams Merge branch 'master' into depth 2020-01-18 19:29:57 +00:00
terrain Merge branch 'master' into depth 2020-01-18 19:29:57 +00:00
thirdparty/lz4 Moved lz4 to a thirdparty folder 2019-08-24 23:07:30 +01:00
util Fix wrong return values 2020-01-19 01:22:48 +00:00
.gitignore gitignore: .bc (html5 builds) 2020-01-12 11:31:22 +03: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 docs 2019-10-05 22:35:13 +08:00
SCsub Forked Transvoxel mesher into an MC one with overlap seam mode. 2019-12-23 21:41:30 +00: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 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 Use StringNames when applicable 2020-01-17 20:43:28 +00:00
register_types.h Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00
voxel.cpp Remove channel enum from Voxel, it was redundant with VoxelBuffer 2020-01-02 20:46:27 +00:00
voxel.h Remove channel enum from Voxel, it was redundant with VoxelBuffer 2020-01-02 20:46:27 +00:00
voxel_buffer.cpp Fix wrong return values 2020-01-19 01:22:48 +00:00
voxel_buffer.h VoxelMesherBlocky supports 16-bit voxels 2020-01-18 19:51:21 +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_library.cpp VoxelLibrary can contain up to 65536 voxel types 2020-01-18 20:43:34 +00:00
voxel_library.h VoxelLibrary can contain up to 65536 voxel types 2020-01-18 20:43:34 +00:00
voxel_memory_pool.cpp Temporary fix: persistent streams not working due to missing use of VoxelMemoryPool 2020-01-07 21:24:14 +00:00
voxel_memory_pool.h Add memory pool for VoxelBuffer channels 2020-01-02 20:31:05 +00:00
voxel_string_names.cpp Use StringNames when applicable 2020-01-17 20:43:28 +00:00
voxel_string_names.h Use StringNames when applicable 2020-01-17 20:43:28 +00:00
voxel_tool.cpp Renamed CHANNEL_ISOLEVEL => CHANNEL_SDF 2020-01-02 21:03:44 +00:00
voxel_tool.h Rename VoxelTool.MODE_ERASE => MODE_REMOVE 2019-09-08 19:47:42 +01:00
voxel_tool_buffer.cpp Implement VoxelTool for VoxelBuffer 2019-12-14 21:34:41 +00:00
voxel_tool_buffer.h Cleanup includes 2019-09-05 19:43:25 +01:00
voxel_tool_lod_terrain.cpp Fixed and tweaked a bunch of things, first working editing with LOD 2019-09-06 23:24:56 +01:00
voxel_tool_lod_terrain.h Cleanup includes 2019-09-05 19:43:25 +01:00
voxel_tool_terrain.cpp Renamed CHANNEL_ISOLEVEL => CHANNEL_SDF 2020-01-02 21:03:44 +00:00
voxel_tool_terrain.h Implement voxel tool for classic terrain 2019-09-08 19:42:25 +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)
  • 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 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.

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)
  • Transvoxel and other meshing algorithms
  • GPU Offloading (Maybe when Godot 4+ supports compute shaders)