This is a high-level list of features, changes and fixes that have been made over time.
At the moment, this module doesn't have a distinct release schedule, so this changelog follows Godot's version numbers and binary releases. Almost each version mentionned here should have an associated Git branch containing features at the time of the version. Backports aren't done so far.
Semver is not yet in place, so each version can have breaking changes, although it shouldn't happen often.
Ongoing development - `master`
--------------------------------
- General
- Introduction of Voxel Server, which shares threaded tasks among all voxel nodes
- Voxel data is no longer copied when sent to processing threads, reducing high memory spikes in some scenarios
- Added a utility class to load `.vox` files created with MagicaVoxel (scripts only)
- Voxel nodes can be moved, scaled and rotated
- Voxel nodes can be limited to specific bounds, rather than being infinitely paging volumes (multiples of block size).
- Meshers are now resources so you can choose and configure them per terrain
- Added [FastNoiseLite](https://github.com/Auburn/FastNoise) for a wider variety of noises
- Generators are no longer limited to a single background thread
- Streaming/LOD can be set to follow the editor camera instead of being centered on world origin. Use with caution, fast big movements and zooms can cause lag
- The amount of pending background tasks is now indicated when the node is selected
- Added About window
- Smooth voxels
- Shaders now have access to the transform of each block, useful for triplanar mapping on moving volumes
- Transvoxel runs faster (almost x2 speedup)
- The SDF channel is now 16-bit by default instead of 8-bit, which reduces terracing in big terrains
- Optimized `VoxelGeneratorGraph` by making it detect empty blocks more accurately and process by buffers
- Added `SdfSphereHeightmap` and `Normalize` nodes to voxel graph, which can help making planets
- Blocky voxels
- Introduced a second blocky mesher dedicated to colored cubes, with greedy meshing and palette support
- Replaced `transparent` property with `transparency_index` for more control on the culling of transparent faces
- The TYPE channel is now 16-bit by default instead of 8-bit, allowing to store up to 65,536 types (part of this channel might actually be used to store rotation in the future)
-`VoxelViewer` now replaces the `viewer_path` property on `VoxelTerrain`, and allows multiple loading points
- Defined `COLOR` channel in `VoxelBuffer`, previously known as `DATA3`
-`VoxelGenerator` is no longer the base for script-based generators, use `VoxelGeneratorScript` instead
-`VoxelGenerator` no longer inherits `VoxelStream`
-`VoxelStream` is no longer the base for script-based streams, use `VoxelStreamScript` instead
- Generators and streams have been split. Streams are more dedicated to files and use a single background thread. Generators are dedicated to generation and can be used by more than one background thread. Terrains have one property for each.
- The meshing system no longer "guesses" how voxels will look like. Instead it uses the mesher assigned to the terrain.
- SDF and TYPE channels have different default depth, so if you relied on 8-bit depth, you may have to explicitely set that format in your generator, to avoid mismatch with existing savegames
- The block serialization format has changed, and migration is not implemented, so old saves using it cannot be used. See documentation for more information.