Importing voxel slices to Blender from Mandelbulb 3D - 2000^3 voxel resolution


I am going at it again - experimenting new things and doing some tests :slight_smile:

A few days ago, I accidently discovered this free program called Mandelbulb 3D which is used to generate and render 3D fractals. These fractals are generated purely by iterating certain mathematical formulas. The results vary depending on the combination of the formulas and parameters that are used.

In case you don’t know what 3D fractals can look like, here are two very nice examples on youtube:

Though the fractals most likely look the best rendered in Mandelbulb itself, I immediately wondered if the shapes could somehow be imported into Blender :stuck_out_tongue:

Mandelbulb has a feature build in it to convert the geometry into voxel slices. Wait, what are voxel slices? Basically it means slicing your object into hundreds of thin slices and then later on you can glue them back together. These slices are BW images where white (usually) means there’s material in that spot and black emptiness. You can choose the image resolution and also a kind of z-resoltion which is basically the number of slices. In most of the cases cubic resolutions are what we want, which means it’s the same number for each dimension. Lets say I’d use resolution 500, I’d get 500 pictures each 500x500 in size.

To make the object show up in Blender, a volumetric material cube and voxel data texture in image sequence mode is needed. After a lot trial and error I finally got it working, but to my small disappointment I discovered that max voxel image sequence size seems to be around 1000x1000x1000. I tried 1200 with all kinds of tricks and image formats but to no avail, blender just crashed each and every time. Well with this method you are limited to volumetric material, but it can still look interesting with high densities. Here’s one of the first results I got with the default mandelbulb shape - it’s 1000^3 res :slight_smile:

Here’s another test, again 1000^3 res, a part of a scene where multiple formulas were mixed.
This is the scene I rendered in mandelbulb:

And then the one in blender, as you can see it’s only one small part of the scene :slight_smile:

Then it came to me, well the limit for one voxel object might be 1000, but what if I compose multiple objects together? And yes, it works. To get higher resolution you can build the object up from smaller parts :stuck_out_tongue: However this was a little painful and tricky road which tested my patience and I won’t bore you with the details, but this one’s 1500res and composed of eight parts each of 750^3 in resolution xD I tried it only with this one object which is the basic mandelbulb + few iterations of another 4D formula mixed. It is mostly hollow and has a lot thin surfaces so it doesn’t look that good in Blender. Nevertheless it was good exercise to get the damned thing together in the end. Also took 90% of my ram to build and - oh, the joy of updating 8 object’s volumetric materials… Didn’t render the image with that good settings because the next idea was already around the corner :stuck_out_tongue:

Ok THEN it came to me… What if I have a symmetric object, then I could just duplicate, mirror/rotate one and same piece of it? And I figured out how to do that - it was easier than I thought in the end. I made this little special xyz symmetric version of mandelbulb. One corner 1/8th of the whole object is 1000res making the whole thing 2000 x 2000 x 2000 = 8 billion voxel points. The image is a little larger to show some smaller details.

Ok that was with voxels, but I also did some tests with meshes.

Again by a lucky accident while searching more information on fractals I discovered a method that can be used to generate meshes out of image sequences. This involved use of two open source applications, Fiji and Meshlab. By the way Meshlab was a nice find, it has a lot great tools to modify a mesh. But the problem with meshes are that you get incredible amount of faces… Anyway here’s again the default mandelbulb formation, my settings gave it 11 million faces. Just a simple render.

This shape with a lot small details is not optimal to be used with meshes, but on other kinds you can get some interesting results.

Well that was my little adventure for now. I hope you found it at least a little interesting, cheers :stuck_out_tongue:

Very interesting, thank you for sharing your small exploration.
An interesting video here. Though a little different approach.

Haha thanks. Didn’t think someone would actually glue up the slices in real world :smiley:

90 % out of 16 GB ?

Very nice ! 11 milion faces ? Can it get any higher than that ?

Yeah, well background programs used about 2GB and memory usage was at 15.5 GB lol. It was because each of the eight part had it’s own voxel dataset which was quite memory expensive. Almost thought it wouldn’t fit in memory. When I used mirroring method only one voxel dataset was needed, precaching volumes still took it’s time though.

Depends on the resolution of the slices and then the settings used to generate the mesh. I just tried with some 1500x1500 pictures I had rendered earlier and with the same meshing settings I got 1.08Gb .obj with 29.8million faces - converting to .ply reduced the file size to some 500Mb though. Just loading it in Blender was almost too much and I did only one test render (the shape was pretty random) x)

A background version :stuck_out_tongue: