Update: You can get a 4K version of this amazing fly through on shutterstock here....
It’s holiday season and finally I got the time to write this small indepth of the star dust cloud we created for one of the shots in the Star Trek Beyond title sequence. I got a lot of emails asking about how we managed to achieved that look, so here I am sharing the experience we obtained and the credits here goes to the whole team members Zack Judson (founder of Bionic Primitive), Dmitriy Suhodol and Dumitru Furculita since I was only responsible for the look development using Krakatoa magma. It was done mainly in 3ds Max where we used a combination of FumeFX, PFlow, Krakatoa. I will be creating a fresh new version here with a different concept so let’s jump in and start speaking geek language, but bear in mind I will not explain everything in detail just the steps and general workflow so you better have some understanding of the used tools and anyway if you have any questions I will be glad to answer.
Two main method were used for creating the cloud body each started by generating a fumefx cloud from a deformed mesh then either:
- first use that fume simulation to drive PFlow particles (FumeFX follow node) and we used this technique for the main nebula body, this method has an advantage where the particles threads will be more defined compared to the smoky look you will get using the second method.
- or load the fumefx simulation into Krakatoa using PRT FumeFX (I’m going to talk about this method in this article) and we used it for the foreground and background secondary nebula elements and …
Nebulas have lots of shapes and colors depending on what caused them and their age, you can find ones with bright colors and shapes pointing to their centers (where the explosion took place) or it will have a more settled down form with a dusty feel and rusty colors (red, orange, green) so spend some time researching and doing R&Ds it’s worth it.
Once you chose your desired look it’s time to move to 3ds max and start by blocking out the underlying geometry that Fumefx will use as an emission source, and here I must say there are no magic numbers when it comes to fumefx that will give you the perfect look, you will have to experience a lot but put in mind two things:
-it should have aloooot of details and voxels specially if you are going to pass through them or even get close in my case the grid was 200x200x150 and a spacing of 0.3 (this resolution won't get you enough point density but more res will increase the sim time insanely, so I managed to increase the points later for 4 times using subdividing option found in Krakatoa fumfx loader).
-we only need one frame of the simulation (our scene will contain a still cloud with a camera flying through) so let’s say you simulated 50 frame, you will go through them and choose the best one that matches your concept, the one I used was only a 16 mb fume file (so small I know).
Now that you have your fume puff ready for the next step (shading, lighting) go and create a Krakatoa fumefx and pick the fume grid. At this point, some might prefer to save the grid as prt with all the necessary channels the pros here are that your viewport will be responsive and scrubbing through timeline will be smooth because Krakatoa doesn’t need to reread the fume grid and load at each frame on the other hand the data of the prt file might be huge depending on the channels you will be exporting (around 2BG compared 16MB).
The beauty about working with fumefx in Krakatoa that we can pump up the particles count with Subdivision Region option I put it to 4, and also the ability to utilize the density channel to drive the color across it, if you look at nebula references you can notice that the colors shift from bright and hot at the center and cold and dusty towards the edges and that’s what are we going to do. To achieve this, we will apply a Magma modifier and do our magic. We will map the density channel and feed it to a texture coordinates and apply a Krakatoa material with a gradient map. In StarTrek we also used a large 3d noise map and fed it to density channel to break the continues shape of the fume puff, but in our case no need for this.
Next thing would be the stars pass and we are going to use the same fume cloud but with different magma flow. We want to first filter the whole cloud and select a star like pattern using a noise map and delete the rest. I used Bercon maps for this (a normal noise would work) and put in mind this map should be 3d since we are working with a volume, next we want to give them some colors (red,green,blue) and a normal noise map will do it. And they should have some sort of self-illumination through emission channel.
Now it’s lighting and rendering time, after trying lots of lighting setup I found using a top light will give it a more holy look and the center light is also essential. Shadow map should be turned on and Krakatoa pays attention to the shadow map resolution I used 4096 instead of 512 I know it’s gonna increase rendering time but believe me it’s worth it and all of your details will be more pronounced. While working on the StarTrek cloud there was a lot of lights here and there acting like a giant stars so I scripted a small tool to help me with tuning the lights on, off, changing their shadow res, intensity and range on the go. It's already published on ScriptSpot:
For render setting I know Krakatoa has a loooong list of settings but keep it simple we only need to modify (Absorption, emission, final pass density and lighting density) set the absorption to blue this way light that is passing the cloud will shift toward warm colors as it goes deeper and for the density you need to try different values until you are satisfied with the result, in my case final pass density was set to 10/-2 and lighting density 35/-1. Finally, just activate the Use emission channel for our stars to glow.
It’s worth noting that Krakatoa has a cache functionality so when you render a frame Krakatoa will put all the calculation to RAM so when rendering an animation with the cache activated all the color, emission, absorption, lighting, shadows…. Will be calculated only once and stored to ram and applied across the whole animation that will save your ass believe me. In my case, the first frame took around 20 min and 45GB of ram to calculate everything and the rest around 2-4min depending on how many particles are in the view to draw, I know it sounds a lot but we are talking about 1.1 billion particles. My specs for this scene was 6800K @4GHz and a 64GB of RAM, more ram are always most welcome because once you started to cache on dist the time will double.
At this stage we are ready to import those renders into Nuke, and believe me it will make all the difference because there we will be adding the aurora behind it in addition to coloring, motion blur, retiming, grain and stars glare. I tried to use a depth map but didn't find so useful in my scenario...
To wrap it up the workflow is sth like this:
A rough cloud shape --> fumeFX --> Krakatoa --> magma --> lighting --> Rendering --> Nuke it
I really enjoyed writing this tutorial and I know it might have been confusing at some point but I tried my best to put my experience into words, I hope you find it useful.
Alaa Al Nahlawi