Musky Flame Thrower
Creating Fire in CG and making it look ultra realistic is one of the most challenging job. Fire comes in all size and shapes and behaves differently depending upon the combustible materials, exposure of camera it’s being filmed on and or viewed with our naked eye. Fire looks more believable when you evaluate its motion of the flames, the shader /color of fire and its related interaction with the environment , the ambience light fusing with it. Plus add on is the smoke that fuel creates during burning of such combustible substances. Here in this tutorial we’ll be creating not the exact FlameThrower but yet somewhat like muskiness in which and how FlameThrower would act. You can also further this tutorial in creating Dragon Fire and or LargeScale FlameThrower.
For this particular type of Fire effect(s), we’ll base our simulation either on oxygenated or non-oxygenated fire and with one large emission point. The fire / flame(s) is the trademark of yellow-orange color with white core (depending upon the camera exposure) The motion of flames is fluid like waveform pattern based on the laws of Thermodynamics. As of the fuel burns out, you can see that flames at the top would tear off from the main body occasionally getting detached from its own source. The turbulence of flames always depends upon which fuel source are getting burned out (oil, wood, etc).
The above is the composited file (fairly simple) of which we are going to create.
We are going to render this sequence into two different passes that Sitni Sati has provided with FumeFX package.
At initial we ‘ll create Particle source through which this shot will be triggered out.
Creating Particle System
- Hit “6” from your keyboard to open “Particle Source”.
- Drag out Standard Particle, which we’ll edit by removing “Shape Operator and Rotation Operator“. As they won’t be needed anymore. See the snapshot below and make the following changes.
- AS you see there are two Noise control properties I have amended here, the main reason was to emit out number of particles using noise and same goes to the speed variation. Especially I have switched the amount of particle to rate as such the amount section would get assign to any controller by default.
- The rate of particles getting emit out will be defined by “frequency and strength” in that controller. Here the frequency and strength will work hand in hand, either one if tuned off the alter won’t work. As you can see the characteristic graph, the larger the frequency , the more particle emission i.e., (higher peaks = more particles).
- Similarly, for speed variation option, the particle variation will be determined by the very same noise controller option.
- Before we add noisefloat ontroller in our ParticleFlow , lets amend some basic settings.
In Birth Operator….
Emit Start = frame1
Emit Stop = frame 90 (you can extend it as you want)
Rate = Here we are going to apply NoiseFloat Controller (see below for that process)
No change in Position Icon Operator.
In Speed Operator….
Speed = 100
Variation = Again here we are going to apply NoiseFloat Controller (see below for that process)
Speed Direction = Along Icon Arrow
Speed Divergence = 6.0
Add Delete Operator…
By Particle Age = (25 , 0)
- Now, still in ParticleFlow window. Select your Birth_OP(OP = operator) and switch from “Amount — > Rate“. SAgain still there, right click inside the rate (where you input values) and select “Show in TrackView“. A new trackview will be opened. Keeping tat trackview open. On LHS (Left hand side)you’ll see all the properties, sub-properties of all the visual acting upon that particular element(ParticleFlow in our case). There select rate —- > rightclick —->properties —> Assigncontroller —> A new dialog box will open up and select “NoiseFloat” (see the screenshot below).
- Once you have selected NoiseFloat another dialog box will option which is nothing but the noisefloat properties. Through this you can easily control the rate of particles.
Particle Rate Properties….
- Frequency = 0.5
- Strength = 5000.0
- Fractal = ON
- Again go to Speed_OP variation and do the same process till you speed variation is amended by the very same NoiseFloat Controller.
- Below is the full view of our particle flow.
- And one thing for sure , make sure you animate your ParticleFlow icon or rather than simulated a straight fire and smoke effect.
- Make sure you save the file.
Creating FumeFX Particle SOurce
- Go to Helper — > dropdown list — > FumeFX —-> Particle Src. This is pretty straight forward step. No tricks nothing is required here. No effect will be generated if no particles are added inside this particle source.
- Go to its modify panel and add our newly created particle flow (PFS_MuskyFX) to it.
The icon size wont affects our simulation.
- Radius = 1.0
- Variation = 10.0
- PA (ParticleAge) = 4.0
- Amount = 1.0
- Variation = 65.0
Amount = 8.0, while rest of the properties remains unchanged.
- Save the file again.
Creating FumeFX Container
- For setting up FumeFX contrainer follow the steps shown below.
Create Panel — >Geometry — >Standard Primitive — > Dropdown list —-> FumeFX. Select the FumeFX (in object type) and simply drag in viewport just as you create any basic primitive.
- Rename this FUmeFX from “FumeFX 001 to Musky_FFX_Cont” .
- Lets alter our newly created FumeFX container’s default settings.
- As I say it everytime in each of my tutorial, FumeFX has 6 header which includes Gen, Sim, WTP , Rend , Illm, Obj/Src. Rather than altering every header and its sub header settings for making up this shot, I would rather make it as simple by amending each main header at a time.
Gen = General Header.
In GenHeader you usually get 4 sub-header which are “GeneralParameters + Output + Plyback + 3ds max script“.
GenHeader —> GeneralParameters.
Spacing = 0.6
Width = 280.0
Length = 280.0
Height = 400.0
Adaptive = ON (checkbox)
Boundless [X-Axis , Y-Axis, Z-Axis] = NONE
Size = 280 x 280 x 400
Sim Upto = 5824 MB
Render Upto = 2164 MB
So the total voxels we ar calculating here is/are…..
X-Axis Voxels = Width = 280.0 .i.e., 280 voxels on X-Axis
Y-Axis Voxels = Length = 280.0 .i.e., 280 voxels on Y-Axis
X-Axis Voxels = Height = 280.0 .i.e., 400 voxels on Z-Axis….
so overall we get ….
[X-Axis x Y-Axis x Z-Axis] = [280 x 280 x 400] = [3136000 voxels].
GenHeader —> OutputParameters.
StartFrame = 0
EndFrame = 125
Viewport Update = 10.0
Exported Channels = [Fuel + Smoke + Velocity + ExtraDetail]
Paths = Choose the path(s) that has maximum amount of space .No C-drive please. Frequently it happens that we simulate our FumeFX data in local C-drive and by any means windows gets corrupt meaning either we lose all cache data or windows runs out of memory. It is advisable to keep an extra drive for storing our cache files only.
GenHeader —->Playback Range
PlayFrom = 0
PlayTo = 125
StartRange = 0, rest remains unchanged.
3ds max script = The name explains everything. For this result no scripting is required.
- Moving further to SimHeader, we get 7 different sub headers which includes ” Simulation + Fuel +Smoke + Temperature + Color + Velocity + ExtraDetail “. Let’s change them.
SimHeader — > SimulationParameter
Quality = 5
Maximum Iterations = 120
Advection Stride = 0.5
Timescale = 1.85
Gravity = 0.07
Vorticity = 0.7
In Turbulence Noise …. [Scale = 15] , [Frame = 15] , [Detail = 5]
SimHeader — > FeulParameter
BurnRate = 8.0
BurnRate Variation = 1.0
HeatProduction = 45.0
Fuel create smoke = ON (checkbox)
Smoke Density = 16.0,
rest remains same.
SimHeader — > SmokeParameters
Dissipation Min. Density = 6.0
Dissipation Strength = 16.0, rest remains same.
Below is the screenshot of SimHeader all settings.
In Wavelet Turbulent , we won’t change anything yet as those default settings are good enough for this effect.
- I think we have amended pretty good amount of details we required. Lets save the file and try to run the simulation.
- For shading fire , either you can customized your fire shader or you can use one the shader I have designed.
RendHeader — > FireParameters.
FireColor = 1.0 (0.63 is also preferable, looks good + also helps better in compositng too).
FireOpacity = 0.61
To create your own fire color, click on firecolor and fill I in these values.
First rightclick over firecolor and set it to “KeyMode“. Click it to open up as floating color box, where will add some flags and some different color values making it look like pure fire color.
Key # 0 = color[0.0 , 0.0 , 0.0] = Pos [0.00] and RGB color space = [R = 0, G = 0 , B = 0].
Key # 1 = color[0.3 , 0.1 , 0.0] = Pos [2.88] and RGB color space = [R = 75, G = 30, B = 8].
Key # 2 = color[1.0 , 0.6 , 0.2] = Pos [4.70] and RGB color space = [R = 255, G = 149, B = 54].
Key # 3 = color[0.2 , 0.1 , 0.0] = Pos [6.52] and RGB color space = [R = 63, G = 25, B = 7].
Key # 4 = color[0.0 , 0.0 , 0.0] = Pos [100.00] and RGB color space = [R = 0, G = 0, B = 0].
See the screenshot below, as you can see all the keys that are in greenflag have been arranged for better identification.
From top to bottom contains all the color info I have presented above.
RendHeader — >SmokeParameters
Smoke Ambient Color [R = 13, G = 13, B = 13]
Smoke Color [R = 32, G = 32, B = 32]
- Now again run the simulation.
- Once done save the file AGAIN. Below is your full FumeFX GUI changes we have done till now.
- Always make sure to check and re-check before you put your scene into final simulation mode.
- Save this file as your final scene file, if and only of you are sure and satisfies with the low-res simulation.
Now to simulate our extra detail (wavelet) just go to Sim.Mode menu at top of FumeFX GUI menus hit Sim.Mode menu and select “Wavelet“. You’ll see that our basic simulation button (initially green color button) has changed into orange now. This explains that we are now caching out only the extra detail properties which we have amended in this file. Hit simulation button and wait out. Depending upon the system configuration you have, it will take time to cache out the entire timeline. Plus simulation time also depends upon how much detail(s) you have added.
Once your extra detail is cached out lets render one frame again, what you’ll see is you’ll be getting the same render output as you have rendererd before simulating extra details. So what now? Let’s change our cache from default mode into wavelet mode. Just below the HelpMenu in FumeFX GUI menus you’ll find “cache” name and just next to it a drop down list. Click there and change from default mode to wavelet. Keep your preview window open to see the immediate effect. This time you cannot cache out anything as your simulation button freezes out.
Below is the screenshot of switching the modes and cache.
Once you are satisfied with the result you need, render off the sequence.
And here are the composited images….
On left window is the raw 3d render and while that of in right is composited passes from FumeFire and FumeFX Smoke
Bringing it all together
- We’ll bring in FumeFX-Fire and Smoke passes that we have rendered out with our master render. Render pass in FumeFX allows the FX Compositors to play with various tools in fusing FumeFX Fire and FumeFX Smoke.
- To note is many FX artist comp their own ender elements , since they know what they are doing with their scene and what they need to achieve in the end. But there are some different pipeline that Digital Compositor comp the FX elements (rarely I have seen this), yet it is also advisable to make habit of comping your own FX Render elements rather than submitting them to compositors.
- I will show here the glimpse of the very basic compositing in Fusion I have done.
- Fire up fusion and bring in all the three passes (MasterRender , FirePass and Smoke Pass).
- After loading, drag your master pass into left window and Select + SHIFT + Drag your pass on Fusion’s timeline to set your render output range. Play it to see how your simulation was rendered out.
- The marker clearly shows that our direct master render is playing in one of the fusion’s canvas. Below two are our Render passes (Fire + Smoke). Drag them onto of the canvas both Fire and Smoke one at the time and see even ho0w our render elements act. Now let’s comp this elements.
- W have more options added in fire render pass then in smoke render pass, so we’ll start from comping smoke render pass first.
- Drag drop Smoke Render pass into right canvas of fusion keeping left canvas as your master render . Now just select your Smoke Render node in node view of fusion and go to Tool menu —- > Blur sub-menu and select “Sharpen” . Now if you are familiar with how to connect nodes, then it would be easy to composite in Fusion, but if not I would recommend first to study Fusion’s user manual to understand the behavior of node based application and fusion pipeline.
- Now once you have loaded your Sharpen node drag it up in canvas and see what happens.
- What Sharpen node do is…. The Sharpen node uses a density filter to enhance detail in an image. The Sharpen node parameters are pretty simple just I have tweaked the blend option from 0 to 0.2303665.
- Again keeping our Sharpen node selected go to Tool Menu — > Color —- > Color Corrector. Drag it up in the same canvas and go for its parameters. Now Color Corrector is most highly recommended tool in fusion as it allows the user to integrate different values of colors with our comp. Now in CC (Color Corrector Parameter) we get 3 main tabs (Correction + Ranges + Options). We’ll be spending more time in correction area. Now if I jot down each and every values in CC it would create confusion for artist to which and where I am amending . See the screenshot below for proper visual. Follow the markings and see the result.
- Here we finish our basic smoke comping, let’s focus on fire now.
- Here we require two CC one for de-saturating and one for making new fire color. Adding color over already added color/shader makes difficult to finalize the look and development of fire. So drop CC node and in MasterTab just drop your MasterSaturation from 1.0 to 0.0, this gives us pure greymode on which only pure color (any color) will be added. Adding any pure color over already colored images makes it even more difficult to identify the exact changes we are trying to do.
Here is the full screenshot of fire second CC (after de-saturating)
Mostly we have added color and changed bit of Gain parameters.
- Add glow node and amend the following settings.
- Glow Node Parameters.
- Filter = Blend
- Glow Size = 12
- Glow = 0.5
- Blend = 0.2
- Again I have added another CC node here. See the screenshot to make changes.
see the marking for to make changes.
- Now add a Merge Node and input your Smoke and Fire node to it and drag it up in canvas and see the result. You can add more nodes to it depending upon the look you need. I am not thinking Technically here in this shot but I am more concerned with the stylized look of fire and smoke here.
- At last I have added CC and Sharpen node to wrap up this shot. Below are the screenshot for CC and settings for Sharpen Node.
see the marking for changes. Below are the Sharpen node parameters.
Sharpen Node Parameter….
Amount = 1.0
Blend = 0.2565445.
Well I have tried the very basic settings in Fusion to comp as fast as possible. You may try different setting also you can bring in RGB values and comp in Fusion. Only the values you feed in will be calculated during rendering in Fusion. That is the one of the specialty of Node base application(s).
And here is our final look in Fusion. Render out the dequence once you are satisfied with Look/Dev.