Senior Thesis - "Embers" - Week 3

Welcome everyone to week 3! It's a small checkpoint week (class 5 of 20 for quarter one).

I don't have much in terms of visual progress. I was mainly researching and testing different pyro techniques. Here's what I have currently:

password: embers

Schools of Pyro:

I should mention as well I had a bit of a breakthrough with the flame shapes and I understand much more the workings of pyro than I did the previous week.

The main thing being using "x" to compensate for "y."

Example: there's a lot of temperature being injected into my sim, so I increased the cooling rate to remove 99% of that temperature every frame... sounds alright, but that was actually the wrong thing to do here.

In the previous iteration (week 2), the fire was very gassed and the flames did not achieve that licking quality. I tried microsolvers, but nothing broke up that fire the way I wanted... until I reduced the cooling rate to 60% and temperature diffusion from 20% to 1% (keeps the temperature field sharp). I also cranked up the buoyancy scale from 0.05 to 0.5.

There's many, many schools of pyro and what I mean by that is there are a lot of ways to achieve your desired result. The goal for me is to find a way that makes sense to me and allows for a range of artistic changes to refine as I go.

Another example: what fields am I injecting into my simulation? Do I actually need to use density? Short answer: no.

This works with both legacy and sparse pyro. In my case of using sparse, I removed the density field because the simulation will produce is own density anyway. I use temperature, burn, and vel (and of course, collision and collisionvel).

Burn is sort of the replacement for fuel in legacy pyro. I have it set to target the flame and divergence fields.

For flame the operation is set to "Maximum," meaning only "add" flame where there is not.

The divergence field is set to "Add" because it is not tracked frame to frame and instead "reset" every frame. Using timestep is turned off for divergence to that when more substeps are added to my simulation, the value isn't divided down to compensate for the extra subframes, it will stay the same (thank you Steven Knipping for that bit of crucial knowledge).

The temperature field obviously targets temperature using the "Pull" operation, meaning when new temperature is being sourced in, accelerate or decelerate the current simulation values to become "this", this fast. I have the acceleration strength set to 20 and deceleration set to 1.

  • Vimeo
  • LinkedIn

© 2021 by Hope Schroers.