By Hammer Chen, Kristin Ivanova
In the previous post, we saw how to create a small-scale fire. In this article we are talking about large-scale fires. A large-scale fire can be a ground fire, a wooden house on fire, or maybe fire in an explosion. Let's explore how to create realistic large-scale fire with Phoenix FD.
Fire is very tricky to make in CG. In the previous article, we have introduced the VRayDistanceTex to alleviate artifacts at the fire root. That is, by using a VRayDistance texture to modulate the fire opacity. In this article, we are going to give more tips & tricks for creating convincing fire.
First of all, let's talk about how the fire is emitted. Take a ground fire for example, we can use a simple plane (with shell modifier on top) and vertex paint to mask the fluid source. To avoid getting one big chunk of fire, paint the vertex color with smaller areas. This way we can create a more natural form of the flame.
Secondly, Phoenix FD Turbulence has a great effect on the overall motion of fire. For example, below we compare the dynamics of a flame without Phoenix FD Turbulence and with Phoenix FD Turbulence. See how the flame looks dull without Turbulence.
Fire simulation without & with turbulence
The turbulence we are using here has the following parameters set: size is set to 10.0 m. Since the plane that emits the flame is 3x3 m, we can safely assume when setting up the Phoenix FD Turbulence, that the recommended size is approximately three times the size of the emitting source.
The outgoing velocity of the source is 6 m, and the Phoenix FD Turbulence in this case is 2 m, which is about one-third of the source's. These are some good reference values to set up Phoenix FD Turbulence. The Rate of Change is set to 2, so that the fire changes faster.
Let's take a look at the Fuel section.
First, the fire we create here is fuel-based. The advantage of a fuel-based fire is that we can control the ratio of smoke to fire through the parameters of the Fuel rollout. For example, we can increase the Smoke Threshold to 1.0, so that the smoke doesn't appear too early, and also decrease the Smoke Amount to 0.5, so that there isn't too much smoke. Note that the amount of fire to smoke ratio is also essential for a realistic flame.
Now let's look at the Dynamics settings. A slightly lower value for Gravity is needed to keep the fire from getting too high. Time Scale is set to 0.7 to make the fluid slightly slower, thus aesthetically pleasing. Cooling affects the length of the fire and allows for more color variation (this requires a proper Color Gradient in the Volumetric Shading, which we'll explain later). Smoke Buoyancy is set to 1.0 to separate the fire from the smoke. Randomize is used here to make the fluid simulation a bit more uneven and interesting. We set Conservation Method to PCG, unlike the Direct Smooth + Backtrace method used in the previous small-scale Fire tutorial. This combination is more suitable for large-scale fire simulations.
To solve the problem of overexposure, we adjust the color gradient and curve. The vertical value of the curve is lower at high temperatures and higher at low temperatures, ensuring that the fire details are preserved. The range from low temperature to the highest goes from black to dark red, red and orange. The position of the gradient point in relation to the curve is very critical. Sometimes the point needs to be nudged for an optimal look. The smoothness of the curve and the distance between different colors on the gradient have profound influence on the final appearance of the fire. However, there is no ultimate correct curve/color gradient for fire, all depends on preferences and environments.
The image above is using the same fire settings plus some color correction in Photoshop.
(3D Model by Lien Ying-Te)
Summary
1. To alleviate the artifact at the fire root, use VRayDistanceTex to modulate the fire opacity.
2. When painting vertex as a source mask, go for many small areas instead of one big chunk.
3. A Turbulence force is good for fire movement.
4. Adjust the fire curve and gradient to retain details in the hottest region.
5. Tailor volumetric settings for different lighting scenarios.
6. Use animated procedural texture as fire/smoke source.
Download
The quickest way of learning is by playing around with the sample scenes. Here we provide few scene files for you to download. Enjoy :)