Car Explosion with Phoenix and thinkingParticles

 

By Hammer Chen, Kristin Ivanova

In this article I put everything I learned about thinkingParticles and Phoenix explosions together. Car explosion is my go-to scene setup as it contains some key components: 
  1. Car rigid body simulation: hinges joint for car doors and spring joint for car suspension 
  2. VolumeBreaker for shattering glasses
  3. Fire and explosion with Chaos Phoenix, using thinkingParticles; particles are used as fluid sources. 
Once again, with this setup I cover all the essential components for a basic but convincing car explosion. 

Final animation

Here are the key steps for setting up the scene. Though I use thinkingParticles for the particles/dynamics effects, the concept is applicable even when using other particle systems such as PFlow or tyFlow, for some parts of the scene setup at least. 

Although the tips and tricks I convey here are pretty straightforward, the actual setup can be rather complex. You need some basic knowledge of thinkingParticles and Phoenix to begin with.

A Solid car model

Here I modeled a solid geometry for a car with many parts. It contains all the essential components for a typical car from exterior to interior. You can replace those low-poly gears with high poly in real production.

Car interior 

The car interior is basic. It's needed only so when it explodes, to have something burning on the inside. 

Vehicle Dynamics

The car dynamics are constructed by using tP joints helper in combination with the ShapeCollision operator. For example, for the front left wheel, it is constrained by using a TP Joint SC Helper, type set to Spring. The strength of the car suspension can be controlled through Spring, Damping, and Friction parameters.

Let's take the car doors as another example. The car_front_L_door is constrained to the car_body through TPJoint - Hinge. Make the car door breakable by enabling the Breakable option. All four doors are constrained by their TPJoint helpers; we can decide which doors to fly away due to the explosion by tweaking those joints individually.

tP's Particles as Fluid Sources

To make the explosion directable, we place some geometries inside of the car as sources for particle emitters. For example, the Sphere_core_002 is put under the engine hood. In the tP's dynamic set, it is added  to the MatterWaves operator. Then the Major_Explo_2 particles emit from the Sphere_core_002. Since the direction of particles is based on the surface normal of the Sphere_core_002, we can easily adjust the angle of explosion by transforming the Sphere_core_002 geometry, without any complex mathematical formulation.


Directability is very important in every FX setup. Not only can we decide where the center of an explosion is, we can also control when to trigger the blasts. The screenshot above shows the two explosions controlled by Time Interval condition in tP. In this car explosion animation, the first blast happens at frame 44, then is followed by a smaller blast at frame 100. Through that degree of control over the particles, we can orchestrate the explosion both spatially and temporally.


Time Base for Procedural Pyro effect

We have two explosions (that emitted from Major_Explo_1 and Major_Explo_2) happening in sequence. But how can we use the same Fire/Smoke source for them, without animating the Inject Power with two peaks in the Animation Curve? The secret is by using the Time Base option - Particle Age. It allows the source to read the particle age information from thinkingParticles, and emit fluid depending on particle age instead of absolute time. Find more information in the Artillery Explosion tutorial from the Chaos Phoenix official tutorials page.

Smoke with different colors enhances realism

Variation in the smoke color can enhance visual realism. That's why we generate two sets of dust particles (v_dust_A and v_dust_B), each one used for two Fire/Smoke sources that are set to different RGB colors. Again, this idea is borrowed from the Artillery Explosion tutorial.

Particle-based Fire Emission

Some of you may notice that we already have many posts about making fire: Making of a Burning Motorcycle, Making of Fire Trails, and Large Scale Fire with Phoenix. All those articles are about geometry-based fire emission. Here we demonstrate an alternative method: a geometry (i.e.: car seats) is used as a source for particles, then those particles are used to emit fire/smoke. Particle-based fire emission can be more flexible than geometry-based emission. That is because control over how strong the fire is depends on the number of source particles, and how long the particles last, controls the life of the fire.

The screenshot above shows particles for car_body, car_seats_fire, interior_fire, and hood_fire used as PHXSource_fire emitter nodes.



The screenshots above show the dynamic sets for particles as Fire/Smoke emitter nodes. First, particles are generated from the surface of any given geometry (car seats for example). Then, when the car explodes, the particles continue to emit from the car seats even when the seats are in mid-air.

Volumetric Render Setting that work for both Fire and Explosion

It can be very tricky to make both fire and explosion look good in the same scene. You tend to get over-exposure in the fire or under-exposure in the explosion and vice versa. The key is to find an optimal value for the fire and explosion's temperature, in combination with the Color Ramp and Curve in the Volumetric Render Settings of a Fire/Smoke Simulator. In this case, set the Temperature for the fire source to 1800.0 and 4000.0 for the explosion source. I find those values are pretty optimal for both fire and explosion, maintaining all the details in the rendering without clipping too much.

Comparison images for different source temperature

See how temperature from the fluid source plays an important role in the proper exposition of the fire. When the temperature is set to 1800, it shows more details in its hottest parts.

Modulate the Fire with VRayDistanceTex 

This is one of my oldest tricks: modulate the fire with a VRayDistanceTex. You can find more information in my previous article: Making of Fire Trails. To add particles that represent car parts to the VRayDistanceTex Objects list, enable the "Group as Objects" option in tP. This option allows Phoenix to treat tP’s particle groups as geometry.

Other critical parameters in the Volumetric Render Settings are as follows: 
  • Self-shadowing set to Ray-traced for better scattering 
  • The Light Power on Self, Light Power on Scene, and Fire Multiplier fine-tuned for the scene, in order to fit the look I am after 
You can tweak those parameters to your preferences.

Color correct with Filmic Tonemapping

Last but not least, it is always a good idea to use filmic tonemapping in the V-Ray Frame Buffer. This post-process can squeeze out more details in the rendered fire. The Filmic Tonemap allows to simulate film's response to light, so this enhances the overall realism of the final images, too.

Download the scene files

Alright, those are my tips and tricks for the Car Explosion scene. Though this is a low-poly car, the whole scene setup can be relatively complex, so I know it would be helpful if I just share the scene file. You can download it from this link

Please note you need cebas thinkingParticles 6 and Chaos Phoenix 4 for 3ds Max in order to run the scene. The HDRI lighting in the scene is using an HDR map from Chaos Cosmos. Enjoy~

Share:

0 comments