I wanted to have a go at getting a simulation from houdini into a flipbook texture for use in UE4. To do that I’ve made an incredibly simple billowy smoke that I can play around with in engine.
I started with a basic off the shelf billowy smoke, generated from a sphere with a mountain modifier, and then made some tweaks to make it more suitable for a flipbook texture.
The basic shelf tool smoke looked like this.
I added a basic three point light setup to bring out the individual shapes . This wasn’t great as I don’t have a great deal of experience with the artistic side of lighting, all I’ve really done with is annoy lighting artists about budgets! This is something I’d like to work on when I have some time. I made this base setup into a digital asset so I can come back to it quickly later.
I then made a few improvements to the rendering of the sim – upping the stochasic and pixel samples, as well as changing the volume filter to reduce noise on the edges of the smoke.
After this, it was time to edit the simulation. I started by setting the boyancy lift on the pyrosolver to 0, to create a growing sphere shape that would be easier to work with in engine.
I made the container size unlimited, then upped the temp diffuse and viscosity. I added the lift back in and set the direction to 1,1,1, giving me a strong upwards draft in all directions. I also upped dissipation to create more shapes within the sim and get large variance in my texture sheet.
I then set up a camera that animated away from the sim over time in order to get the sim to take up as much space on the screen as possible. This will help to reduce the amount of overdraw produced by the final in engine simulation as there will be less wasted transparent space.
There were 128 frames in my original sim, I took every second frame to make an 8×8 texture sheet with 64 frames. The issue with however was that the mosaic setup expected to see each frame named in sequence. 001,002 not 002, 004.
I renamed the files by writing a quick python script – thank goodness I didn’t need to do this by hand!
Unfortunately the original renders were not square, so I couldn’t put these into a sheet. While I waited for the new render, I elaborated on the script so that it would also delete the number of frames you wanted. Also neatened things up a bit!
The render still isn’t finished, so I’ll show the new texture sheet in another blog post!