Unity vs. Unreal Engine: Which is Best for Real-Time VFX
This time we had a conversation with the wizard behind stunning Houdini fluid simulations Vu Pham. At Rebelway, Vu Pham took several courses including Advanced Water FX, Explosion FX, and Math for FX Artists. We asked the artist why he decided to take a deep dive into Houdini after years of working in 3ds Max and Blender, how he managed to learn a whole new application while running his business full-time, and where he is planning to apply this new knowledge next as an FX artist and the CEO of Rainstorm film.
That’s true, I began with 3D Studio Max (now known as 3ds Max) back in 2003. I studied books and help files and experimented with explosions inside 3ds Max. Later I came across Cinema 4D and started using it for graphics design and motion design. In 2007, I had a great opportunity to form a fresh startup thanks to a generous investment of millions of dollars that came from a finance capital and real estate developer. Though we were planning to use Maya, we had to stick to 3D Studio Max and V-Ray because at that point it was pretty much mandatory for architectural visualization.
It was at that point when I realized I really enjoyed all things post-production, especially compositing.
Now, my first encounter with Houdini was really interesting. Near the end of 2008, I went to SIGGRAPH Asia that was held in Japan. There I found a minimalistic booth that had no crazy decor, no in-your-face promo stands, and just two people standing there – that was Side FX.
They offered me to take a disc that had Houdini 9.5 on it. I might be wrong about the exact version, but it was a very early edition of the tool. They said it was free and had all the learning resources, along with the installation file on the disc. I was totally surprised they gave me a software application for free. I didn’t know anything about Houdini at that time, maybe heard about it a couple of times, so I didn’t really invest any time into studying it or trying out its tools.
Around 2009 – 2010 the economy crisis hit our investor really hard, the whole organization with all its branches and sister companies shut down, us included. We waved our ambitious project goodbye – it was about making content for a virtual reality 3D museum. That’s when I moved on to Rainstorm Film. I knew I wanted to take a step forward and tap into 3D animation, video production, and VFX while continuing to do archviz. At that time, I graduated from a new school of multimedia which helped me figure out the intricacies of management.
In 2013, I decided to force myself to learn Houdini after watching the ghost animation inside the rain room from the Houdini trailer. It was Houdini 13 at that point, with all the fluid and particle simulations that I want to master. I even put a big sheet of paper in front of my desk that said “MUST LEARN HOUDINI”.
But then, right when my motivation was at its peak, a huge project at Rainstorm Film required my full attention. It was our first-ever sci-fi commercial with green screens and futuristic VFX and tons of compositing and lighting to be done. The deadline was incredibly tight – we only had 45 days to complete the project. It was extremely stressful, especially for me since I managed the whole thing, but it was a fun one to do and we were happy with the final result. Needless to say, I had no time to study Houdini 13 and totally dropped it. The sci-fi project was done in 3ds Max with the use of motion capture.
In about 2017, I decided to push Rainstorm Film further ahead and utilize Unreal Engine in our production. I was really rushing with Unreal Engine, but the transition from 3D Studio Max and V-Ray to Unreal Engine was slower than expected. Most of the time we were too busy with potentially highly profitable projects, so we didn’t dedicate enough time to training and experimenting with the new technology in our production pipeline. At that same time, I had finished my training in movie direction and produced a couple of animated movies and short films. Almost all commercials and animation projects at Rainstorm Film were written and directed by me.
Technically, all of our projects were huge urban planning, luxury condos at residence villas, mansions with a luxurious view and expensive surroundings. And we had to transform all that into interactive 3D animations with outdoor and indoor exterior visualization, built entire CGI neighborhoods. The biggest design that we did covered 3000 hectares.
Unreal Engine was tricky for things like these at the time, so to make that work, we had to take a deep dive into the whole game asset workflow. Here is a little demonstration of how we worked with urban visualization animation – it is a 10K CGI render for the Vin City project. The biggest trouble here is the enormous landscape asset: with V-Ray you could use the Forest Pack plugin and scatter billions of plants across your scene, but that was extremely expensive to do using Unreal Engine.
Later on, I decided to do some Unreal Engine studying all by myself, and I set a small target – make sense of the interactive part. While studying Unreal Engine I found out that Blender was making a new version – Blender 2.8 – and it seemed to offer more or less the same things we were able to do with 3D Studio Max and V-Ray. Plus, Blender was one of the tools that game artists often used to train, to assemble assets for game prototypes. I tried Blender in about 2 weeks, found it easy to use (that’s why on my ArtStation page you found plenty of Blender artworks – that was from 2 weeks of studying the tool). Blender was both fresh and great for simple work at the time, but the more I used it, the more I realized its whole vibe was similar to another app I’ve come across – Houdini with its procedural modeling.
That was it, there was no denying Houdini was my destination point, so I went on to study numerous video tutorials on how to use it. At that time, Rebelway had a very eye-catching ad for the Magical FX course. I decided to look further into it to see what it was about and I realized that was what I needed to finally make effects like the pro artists from ILM, Sony, Pixar, etc. I needed to learn how to create realistic destruction, explosion, and fluid simulations in Houdini. Rebelway’s course seemed very straightforward to me, as they stay very focused on making effects, getting into the nuances behind production workflow, explaining how real production works.
Here’s my Eureka! moment when the result came out exactly as I desired. The second design is its predecessor.
For me, that was the beginning of a new era, a new realm I got to explore. I always wanted to do FX like in the movies that have their visuals created by major VFX studios like ILM, Disney, Framestore, MPC. Thanks to Houdini, my workflow became extremely flexible: with its procedural tools, you can solve all sorts of problems using just a single software application, there is no need for any plugins or endless add-ons.
The first months of practicing Houdini were not that easy, I tried to test it out to see what would work and what wouldn’t. I tried to avoid simply following tutorials step by step, I want to make something myself. It’s very hard to do something right with just your imagination as a starting point, without the video tutorial next to you. The workflow is extremely procedural, there’s a lot of math involved, there are tons of features to explore. I gathered a lot of information from Rebelway’s small tutorial on maths in Houdini. Plus, I watched Steven Knipping’s tutorials, found some info on CG Wiki, and with these sources, I started to learn the foundations of Houdini.
As COVID-19 hit, I had plenty of time to practice since the whole world was on lockdown. I didn’t have any trips planned, didn’t have to attend client meetings, partner meetings, etc. So I decided to dedicate all this free time to learning Houdini. Also, Rebelway had a great discount offer for artist affects by the pandemic, so I got a chance to enrol in more courses to learn everything I wanted.
Here is one of the fluid studies that received very positive feedback and got posted on Rebelway’s social media accounts and on 80.lv which was beyond exciting.
I found explosions to be pretty straightforward and not too toilsome to learn. Destruction was trickier to me and required more time to get done.
But both are no match for fluid simulation, which is the most challenging. I have accumulated tons of undone projects, because water simulation is a beast. You will need 10,000 hours of practice and stay focused only on that aspect to master it. So to learn fluids in Houdini, I changed my entire routine which started to look like this:
3 a.m. – waking up and starting Houdini right away
7 a.m. – breakfast and workout
10 a.m. – quick nap before another round of learning
12 p.m. – lunch and back to Houdini
4 p.m. – dinner and some more Houdini fluids until about 10 p.m. And then repeat the whole cycle after 5 hours of sleep.
Of course, I took breaks from fluids from time to time because I would get stuck or just exhausted from doing water simulations non-stop, so I continued to experiment with explosions and destructions, too. My goal still was to create a massive realistic destruction scene. All I want for now is to join a major studio like ILM or MPC and make those FX we see on a big screen.
It was the animation and movie industries that made me want to master fluids. It was Moana, Surf’s Up, The Little Mermaid, Waterworld, it was the crazy rough sea in The Perfect Storm movie, and more. But the first fluid simulation moment that made my jaw drop was the creature from The Abyss. Roland Emmerich’s The Day After Tomorrow and 2012 are what made me want to keep learning destruction, explosion and fluid simulations further.
One of the critical parts in creating fluid simulations in Houdini is the scale. You need a lot of practice, you need to observe fluids in real life to make them believable, the scenes are going to require multiple readjustments, calculations, and careful analysis. Rebelway and their community are great sources of help, as they can always point out what looks off and where you need to make some corrections.
Getting into advanced fluid simulations meant I had to really study water in Houdini to its core, work on the essentials. I found papers, books about fluid simulations in computer graphics, articles, and more. They are extremely helpful as they’re full of examples from real production so you gain the essential knowledge about fluid simulations that is not just purely theoretical.
I also became active on various internet forums, Facebook groups, and other communities where artists discuss this topic. Of course, Rebelway’s course was my main source of information. Luckily, I had great instructors who helped me reduce the time it normally takes to learn Houdini water fluid simulations by sharing their knowledge. I’m forever thankful to Igor Zanic, Juri Bryan, and other amazing artists.
Always study papers and breakdowns – I mean, I started from that, I obviously didn’t understand everything there is from day one. It’s no rocket science in fact and you can learn many useful easy-to-perform tips and tricks that will help you in your work. Most importantly, don’t just read and listen – apply the techniques you learn about, use every cool trick you see in Houdini, and if something doesn’t work out – study more and revisit your unsuccessful attempt. Practice makes perfect after all.
With the boat, my plan looked somewhat like this:
1 Optimize the boat for collision simulation (save a VDB sequence for boat collision, you can have only one single VDB and then transform it – this will help you lower the cost of computing);
2. Make the boat follow ocean deformation;
3. Work on the FLIP effect;
4. Work on your scale by studying reference photos and videos and even professional marine documentation if needed;
5. Direct the splash, create geometry deformations;
6. Direct the elements of the simulation based on your original data;
7. Control the data as much as possible to save storage;
8. Keep things procedural;
9. Make sure everything fits the system that you are using.
Technically, a computer with 128GB RAM will make your life easier. I heard Linux was far better than Windows but because of my working routine I can’t switch to Linux and try it out.
And time is a big factor that affects the motivation to work on fluid simulations, especially when you create repetitive content – that could easily make you feel down. But don’t try to rush by copying other files, there is no way to learn from that, so start from scratch every time. Also, use VEX as much as possible. Don’t get carried away trying to make your VEX code look all cool and slick, though – it serves a purpose and it has to be functional in the first place.
Note that large-scale water simulations are brutal to your hard drive so you need a few terabytes of SSD storage. My last two large-scale fluid projects (one of them is Bavaria ship expedition) cost me more than 5TB.
I also found FLIPs to be less crashy than whitewater. Whitewater usually crashes because you have a viewport with more than 20 millions particles cached, and it’s heavy RAM usage. To avoid this, you can remove density control, for instance – this helps with crashing a lot. You can build more mist and spray later if that is not a splash scene. It’s safe to have less spray in a whitewater simulation and build more of it from the cache later. One more life-saving tip is to use ‘VDB from particle fluid’ instead of ‘particle fluid surface’ as it’s way faster.
Plus, make friends with minPos, xyzdistance, and point cloud – those are great for fluid simulations. Finally, I honestly recommend Rebelway’s courses on water effects in Houdini. Igor Zanic’s Water FX course is one of the best resources on designing water FX simulations. Juri Bryan’s Advanced Water FX will help you understand the other way to solve problems, learn how to customize everything, explore the iceberg of hidden tools and functions in Houdini, and more.
I would love to go on a wildlife photography expedition in Svalbard soon and this dream of mine inspired this piece. I studied photos and videos to gather enough high-quality reference. In the simulation, I used plenty of custom techniques, which helped me move forward in my studies of Houdini fluids.
My original goal was to use Arnold Renderer to create an infinite ocean, but I eventually decided to stick to Mantra. This scene took me multiple tries, I had to do tons of research to make everything look right. This is my first attempt at making the ocean wave with a FLIP simulation.
Then one of my friends told me that from Rebelway’s Redshift tutorial, he learnt to merge multiple displacement maps. At that moment I realized that this was a perfect solution for me and it helped me create over 10 km of ocean. The tricky part, however, is determining the correct scale from multiple cameras. Here, unfortunately, you don’t have a magical universal formula, you need to tweak the settings, measure, analyze, compare, and adjust.
Blending the water mesh and infinity ocean during compositing was also a bit tricky to get right. I used Nuke to test the matte object AOVs to make sure everything would work properly. For the whitewater, I learnt much from my own previous project – Big splash. I left the original foam as a volume, but I split the bow and the stern of the ship differently to gain more control over those elements.
I have always been a learner, ever since I entered the industry. You can’t do business and off-work creative stuff at the same time, but with the right partners you can always achieve the unbelievable. My wife is that person. She is a great partner, she helps and motivates me a lot. She studied Computer Science, but she is also great at business administration, that’s why I can have the time to be creative and explore new software and digital art techniques while having a full-time job.
Additionally, when facing Houdini, you already know that your skill is way behind that of the majority of great artists. So the only solution is to learn as much as you can, choose only top-quality educational content, and focus only on the niche that is hard to master but has a high demand. So I am happy to let my company and my wife know that I spent about 10,000 hours on all of this – about 3 years only on destruction, explosion, and water FX. And to save you some time, here’s the content I highly recommend if you’re starting to learn Houdini:
1. Rebelway with Saber, Igor Zanic, Juri Bryan is the only right place to go for advanced state-of-the-art methods used in real big-scale FX production.
2. I also recommend Edward Ferrysienanda’s courses at CGMA – he’s absolutely great at fluid simulations.
3. Steven Knipping’s Applied Houdini tutorials are great. Without him and his feedback, I don’t think I would have been able to make sense of some of the math foundations and techniques in Houdini.
4. CG Wiki – both his website and Discord contain tons of info on VEX and other Houdini tools. It is very newbie-friendly, which was one of the most important things to me.
These are the moments I’ll never forget. Thanks to all those amazing creators, I learned how to do fluids, destructions, explosions from scratch, understand the math, and way more. I am deeply thankful to all of the instructors who taught me. Sometimes, I would ask stupid questions but they were always kind enough to answer them.
As for Rainstorm Film, running a business like this means you have to learn all the time, both at work and off-work if you want to make it profitable. You need to keep up with the latest technologies and be open to new information at all times. So learning truly has no limit here.
People recognize your talent only when you learn extremely hard, spend your life on it. The first year always feels boring but after that, once you show your commitment, your results are going to increase in quality. More than anything, it’s about the content you create. Ever since I founded Rainstorm Film and even before that, I always dreamed to make a full-length animated movie, but it always seemed like an unapproachable idea because of all the complex FX it would require. Right now, I can create FX just like in the movies I have seen thanks to all the courses I took and creators I talked to. I wish I could join a major studio to be among the experts, work on monumental projects, solve creative problems together with other brilliant artists.
For Rainstorm Film, the main goal is to keep it profitable. The income will help to achieve more in terms of production and improve the skills of the people who are working there. At Rainstorm Film, we really care about people learning new information, we pay for courses and ask for nothing back. It is a bit risky but I feel good when I talk and realize that there are people who understand more than I do. I love to talk and work with people more skilled than me.
As for the animated movie, right now, it doesn’t seem like a profitable project. And as a businessman, unfortunately, I cannot sponsor a project that can’t make a profit in any way, so it’s not a realistic dream anymore. Though at some point I was thinking about getting a PhD in Computer Graphics, I am now planning to further invest in my FX production knowledge (FX in Houdini and Unreal Engine). After 14 years of investing into others, I think it would be fair to say it’s my turn.
You can get free course lessons from Water FX in Houdini by simply filling out the box below. Just follow the prompts after you fill out the box.
By filling out this form you agree to receive email communications from Rebelway.
Unity vs. Unreal Engine: Which is Best for Real-Time VFX
No risk. Just results.