VSFX 728 - Wildfire





Home/ Blog / VSFX728 - Final Project / Wildfire


    ① Week6 - Reference



    For the last project, I wanted to experiment more with pyro in Houdin, so I chose three reference videos. In the end, I chose the second one - Forest Fire, because the visualization of the smoke and flames in this reference video is very striking! 











    ② Week 7 - Environment & Pyro Test



    1. Environment - forest
    Render: Redshift 
    Houdini Version: 19.5.640 – py3.7
    Light: One Domelight
    Tree model resource: https://www.cgtrader.com/free-3d-models/plant/conifer/2021-pbr-incense-cedar-collection-calocedrus-decurrens


    Screenshot from Reference video 
    Redshift render in Houdini


    For the environment part,  I mainly use instance and nodes of mountain, scatter, maskfromgeometry as well as attribrandomize (pscale and N). Please slide the image below to view the process.

    1. Grid create
    2. Mountian node
    3. maskfromgeometry
    4.Scatter for the surrounding tree area
    5. Scatter for burned tree area (Trunks part), scatter based on the mask from maskfromgeometry
    6. Instance (trunk part)
    7. Instance (surrounding tree part)
    8. After instance, the viewport will show something like this
    9. Press D, instancing section click the bounding box display off (then your viewport will be clear without those bounding boxs)
    10. Alao, you can lower the scene polygon limit so that your display window is not so laggy
    11. Current viewport
    12. A render test in redshift




    2. Pyro-flame simulation (instance & copy to point)

    Since the reference video is a forest fire and not a single fire, there will be many sources of fire, therefore I tried two main ways, first is the pyro instance, and second is copy to point. After testing the two ways, I decided to use the former instance way, because this way is more helpful to optimize the memory usage and speed up the rendering time.



    Pyro instance 
    Basic Pyro instance guide: https://www.sidefx.com/docs/houdini/pyro/pyroinstancing.html

    Basic pyro instancing
    The first test of fire instance


    Pyro Copytopoint


    Tutorial of Pyro CopyToPoint (by Yung Jie Huang)
    Legacy Pyro - Flames
    The first test of flame copytopoint
    For each loop + time offset (to create a variety of fires)





    3. Troubleshooting - Pyro instance

    Since my terrain is not a flat surface, after testing the Pyro instance for the first time, I found that Pyro just ended up Y0, and it does not fit with my terrain scatter point position. The simple way to solve this problem is to click the Treat Y as “Open” (Pyrosolver - Bounds - Boundary Conditions).







    ③ Week 8 - Smoke & Fire & shading




    1. Flame render and simulation


    During this weekend, I started working with the shape and shading of the fire and mainly created three different shapes of fire source. For the shading, because I’m using Redshift in Houdini for rendering when I try to assign the volume rs material, the flame does not shows up. then I followed a tutorial from YouTube (by Resilient Picture Company), which is to create an RS volume in the shop and assign it to the material part.

    Fire render in Redshift 
    Fire simulation (Pyro instance)
    Three different shapes of fire
    Pyro instance


    Tutorial: Flame material in Redshift by  Resilient Picture Company
    RS Volume in Shop
    Assigning RS Volumn to the top of geo node (material part)



    2. smoke simulation


    First simulation test - smoke

    After the first smoke simulation test, I carefully compared the reference video and I realized that the smoke at the very front of the video was a subtly rotating smoke shape. This is very different from the test of mine.

    Smoke Simulation Test 1
    Reference video
    Smoke diagram


    Try 1 - Custom velocity

    In this approach, I mainly followed the tutorial (courtesy of Theory Accelerated) to create a custom velocity field in volumevop and simulate the motion of the smoke torsion based on the shape of the helix. However, after applying pyro smoke, and adjusting various atrribute, I get results that are very different from the reference video, and I can't achieve the twisting effect in the reference video.

    Tutorial: Custom Velocity Guides (by 
    Theory Accelerated )
    Particle Test 1
    Screenshot1 - pyro sim (too much smoke which hides the motion of smoke rotating)
    Screenshot2 - pyro sim (Despite the twisting effect, however, the smoke became very thin and the twisting effect was not noticeable)


    Try 2 - Volumndeform

    For this time, I have try volumndeform and bend node (twist section) to make the whole smoke have a twist shape. But because the amount of smoke in my reference video is large and at least two distorted rotations are visible. After I tried it, I realized that too much rotation would cause some details inside the smoke to be distorted. 



    Try 3 - Helix animation

    After I went through a few different ways, I tried giving Helix a rotating animation and then applying Pyro afterward, and the result I got was pretty close to the reference video.  Please slide the image below to view the process.
    Reference video

    overall nodes
    Helix animation and setting
    Helix
    Extrude
    scatter
    animation of helix
    pyro solver setting



    ④ Week9 - Smoke & Look Dev 



    For this week, I start working with background smoke and look dev.




    1. Background smoke
    Except for the rotating smoke at the front, I mostly used copy to point to simulate the smoke in the background. For the more distant smoke, I used a simple sphere and a sparse billowy smoke to simulate the smoke.

    Background 1 smoke (copy to point)
    Background 2 smoke (sphere + Sparse billowy smoke)


    2. Look Dev  - Lighting

    Regarding the lighting, I started with one domelight, but after comparing it to the reference video I realized that the lighting was too different, and the smoke in the reference video had a warm/cold contrast difference, so I mainly replaced the HDRI and added distant lights, spot lights and area lights for the sides of the smoke.

    Render: Redshift
    HDRI link: https://polyhaven.com/a/air_museum_playground

    Screenshot of reference video
    Test 1 for lighting (one domelight only)
    Test2 for lighting (2 domelights & 4 distant lights)
    Test3 for lighting (2 domelights, 1 area light, 1 spot light, 5 distant lights)
    Lights diagram
    Light nodes



    After comparing the reference video over and over again, I found a lot of changes that need to be made, for example, the proportional size of the tree needs to be smaller and it should be denser, while the color of the smoke should be more bluish with a darker brown. 

    Local Rendering (redshift: 1920*1080) with all the pyro, 9 lights






    ⑤ Week 10 - Rendering 



    Due to the large size of the file cache (about 500GB for all the pyro simulations together) and the fact that the render farm was very crowded during the end of the quarter, there wasn't enough time to render all the smoke effects, so for the rendered video at this stage I removed the background smoke, some lighting and kept only the predominantly flaming and rotating smoke (also change the division scale), as well as lowering the resolution (960*540).

    Over the summer I plan to reorganize the files and render a high-resolution version with all the smoke effects intact.


    reference video


    Still frame rendering (redshift: 1920*1080) with all the pyro, 9 lights




    Still frame rendering (redshift: 1920*1080) only with front two pyro, and 5 lights





    version1 : redshift: 960*540





    version2: redshift: 1280*720









    Yilin Zhao / Vsfx728 / Houdini / Wildfire