I am doing all progress updates on a dedicated thread now, I have been avoiding posting in here because I didn’t want to spam the marketplace section.
So I have had a Voxel Plugin working in UE4 using a PolyVox back end for close to a year now and have just been sitting on it (was used to acclimate to the engine). I was never intending on releasing it as multiple other efforts were underway and it was a passion project, however all other solutions appear to have either dropped off the map or in Voxel Farms case have a little above indie level costs associated with them.
I also ended up implementing several higher level features that are missing from most packages even in other engines, due to recently received multiple requests for it I started working on the code base again to clean things up and make it viable for others to use.
I just wanted to gauge total interest in it, if it is large enough I would put a lot more framework effort into it and release it, otherwise I would probably just get it clean enough to be satisfied with and give it out to a few with no ongoing support or strings attached (wife keeps telling me to stop putting all my time into things that I do for free :rolleyes:).
Some of the current features:
- Voxel actor and Voxel Terrain UObjects
- Colored Cube volumes (24 to 16 bit color support)
- Textured cube volumes
Removed, I no longer think I want to go in this direction
Has support for marching cubes smooth terrain, feature set is currently inactive as other features get ironed out for the cubic portion (would need more work)
- Highly multithreaded extraction
- Gravity support for when voxels are removed below others (currently missing from fracturing but can be added easily enough)
- A subtractive / additive CSG style brush system that will support copying and moving
- Flood fill
- Pseudo Voronoi Fracturing (not using actual Voronoi diagrams as they are too slow, custom octree solution with clumping points used instead, may be changed later).
- Volume serialization with compression
- Full Nav mesh support (though a decent performance hit currently, will need to work on it more)
- Qubicle and Majicka Voxel file format importing
- The beginnings of an in editor terrain editor
- Settings to control voxels in a volume and how they break up into chunks
- An option to group chunks into master render chunks to reduce draw calls or draw them each alone (DX12 would make this defunct).
Removed, dynamic in engine lighting is good enough I feel
A voxel light propagation system (would need more work)
- Rough multiplayer support with streamed chunks from server to clients.
Some of the missing features:
- Infinite world support (I did not have a use for this and did not work on it yet, there are also obviously some issues with the base engine currently that also caused me to not bother yet on this)
- Easy Terrain generation access (I have several noise libraries current attached but have not made Blueprint access to a terrain generation system, would need massive work as I feel a custom solution using some of epics noise functions would be best with the licensing problems.
- Small memory footprint volume (Have an octree based storage system planned out but have not done any work on it yet), could also use a RLE encoded volume, both would lower total performance other flat array storage though.
- Streaming in voxel chunks (no work in this yet)
- Animated voxels (no work at the moment and possibly ever, passing over UE4’s animation system seems like a waste and something more suited to a custom engine that a plugin).
Some videos of testing I did:
Transparency is in
Recent Test of LODs and collisions