Hey guys, so over the last few weeks I have been working on some volume rendering techniques in UE4.
In here I will discuss the differences in performance and quality that I was able to achieve with different rendering techniques.
Also to note, the game I will primarily be using the volume rendering in is an MMO and ultimately the technique I decide to use the most will need to be very bandwidth/data efficient.
The reason I started looking into volume rendering: As my game world is infinite* in size, I needed a way to procedural generate content. So for creating planetary terrain, because I wanted caves and overhangs, I needed a volumetric surface.
I will try to post some new media here everyday and report my progress. For now I will list my progress with each technique.
Marching Cubes and it’s varients (DMC, CMS):
This one is almost a no brainer for terrain, I have a couple very basic implementations of this.
Resources I found very useful:
https://github.com/azarus/TerrainGenerator
,
http://ngildea.blogspot.com/
Point rendering(Sprites and instancing):
This one is in its early stages, needs more work.
Surface splatting:
This one works the best in terms of performance right now for detailed rendering.
Voxels(Octree):
This one was the easiest and it is also the one I’ve been spending the most time optimizing the last few days.
This is also the one I will probably post the most about.
Alright I’ll edit this later to make it cleaner and post some vids, I’m in programming mode right now.
Oh one more thing, here is a picture of some splatting. The mesh is incomplete because of a failed conversion from the sample mesh, it’s easy to fix but I wont be doing that for a few days.