How can I make an avalanche in Eevee?

Hey there. I’m really struggling to just make a simple avalanche particle effect in EEVEE.

I really need help with this, it’s the final piece of an animation video I’ve spent almost 4 months on, I desperately want to get this project done. I just need to solve this one problem!

I followed this tutorial, sadly it was in CYCLES:

The problem I had with this is that the effect either produced a smoke domain that was completely opaque:

Or it produces these small pathetic whisps of smoke.

These are my settings:

I’m just trying to get some bloody smoke to roll down a mountain :rage:

I then decided to scrap that and try just making some liquid smoke roll down the cliff face. But again similar issues.

  1. The effect is not high fidelity like it is in any of the tutorials, it’s just pathetic whisps of smoke:
  2. Or the smoke just fills up the entire domain like so:

I also cannot get the smoke to appear white which is neccessary, because I want to have a powdered snow like look to the thing.

But apparently with the liquid smoke this is achieved by changing the background to black or something? Because as far as I understand the volumetric shader is colored dependent on it’s backing? Which I can’t do for my scene.

Please any help would be greatly appreciated. If someone has something they know could replicate an avalanche effect in EEVEE that alone would be brilliant.

It doesn’t have to be complicated I just want some white smoke to roll down a cliff face, it literally doesnt have to look realistic the animation I’m making is highly stylized anyway. I just want something that basically resembles snow/powedered snow rolling down a cliff.

Thank you!

You can create simple spheres or planes with textures with transparency and animate thousands of spheres rolling the mountain to create the avalanche.
This will render in eevee.

Or you can use the spheres as particles also.
snow2

Here are the file if you need.
snow.blend (1.2 MB)

Wow holy crap that was a quick reply. Thank you so very much, I will try that approach and see how it goes!

It is possible to do, but this needs quite a bit of knowledge about smoke and materials. This would be a multi-page explanation if you know nothing about those topics.

I don’t know how much you will get from this, but here is the file, for Blender 4.2. You will have to bake the smoke.

Eevee’s volumes don’t react to world lighting, so I had to add some emissive to the material to fake it and get the snow white enough.

Thank you very much, this is incredible. It’s exactly what I was after. It’s fine that it’s a little grey that doesn’t matter it’s perfect.

I’m realizing my computer is so terrible it actually can’t render any of these particle effects. I’m already rendering the footage using SheepIt.

I think im just going to copy your method over to my scene and hope for the best :rofl:. Push out a render on SheepIt and see how it goes.

Is it possible to freeze-frame the avalanche? A scene later on requires me to pause the particle system. I heard this was possible perhaps by using a force field and using that instead of the ‘normal’, then animating the strength property.

Also if I could ask you an incredibly large favor. Is there anyway you can produce an effect that is like a far less dense version of what you have produced.

In the animation I have a moment where I talk about ‘powdered snow shuttling down the cliff face’ prior to the avalanche happening. I wanted an effect that was therefore a little drip and drab of snow seeping down the cliff surface rather than a full on avalanche, before the avalanche you produced.

You might have to re-scale your own scene to fit it to my simulation if you do that. Also, you will notice I made an invisible collision mesh with extra thickness, because the slope that’s used for rendering lets way too much smoke through to be used for collision.

You can freeze a frame of a simulation. Go into the cache folder and find the .VDB files (if there is smoke noise used, find those with the noise, it’s going to be a separate series of files from the main sim). Then, you can import a single frame of this in Blender as a volume object. Well, it’s not exactly a freeze frame, it’s going to be a separate object, but if you place it in the exact same spot as the sim, you could hide one and show the other.

Go in the material editor and reduce the density on the material. You will also need to readjust the emission amount (the multiply node controls it).

Add a second object to emit particles from, give it a second particle emitter with only a few particles. Then, make that second emitter into a smoke emitter, choosing the new particle system as the source just like I have done with my emitter. You can adjust the activity of each smoke source by changing the start/end frames of the particle system and their numbers.

By the way, the smoke itself isn’t a particle effect. The particles are there only to emit the smoke, but it’s not the particles that get rendered, it’s a volumetric simulation that is emitted from the particles.

Thank you so much honestly! Especially with how thorough this reply is. I’ll follow all of that. You have been extremely helpful, god bless.

Don’t hesitate to ask if there is any part of it you can’t get to work. I have done a lot of things to my file that aren’t obvious, like changes in the render settings and meshes with altered visibility.

Okay thank you that’s very kind of you to offer. By the way do you know if it’s possible to somehow pause and unpause, I get your method of importing the mesh as a volumetric but that would only give me a frozen frame, no way to recontinue the effect aftewards.

I basically have a moment that holds on a character being struck from the avalanche then pauses to pan around him, and resumes after he begins moving.

There is a way to pause the simulation. It also involves importing it as a volume object, but in a different way.

1- Bake the simulation as normal.

2- When you are satisfied with the simulation, create a new volume object, then go to the cache’s folder and find the “noise” .vdb files, those are the more detailed version with the smoke’s noise added, so they are the ones you want.

3- Select all the vdb files, then import them. This will import them as an animated sequence. Place that new volume object so it’s in the same spot as the simulation, then put the simulation and all it’s emitters and colliders into a collection that you can hide. It’s a good idea to keep that stuff around as a backup, even if you won’t directly render it.

4- The newly imported vdb won’t render correctly using the same material as the smoke domain. That’s because its attributes are named differently. Duplicate the material you had used for the domain, then change the density attribute’s name so it matches what you imported.

5- Now that you have replaced the simulation with a re-imported sequence, you can alter how that sequence progresses. Go to the object’s volume settings, then animate the “offset” setting to freeze the simulation. If you animate that setting so it decreases by 1 every frame, the animation will stop. It will restart as soon as you stop doing that.

offset

You will also need to increase the “frames” setting, or else the animation will be shortened by the same length it was stopped.

Sorry I apologize I didnt reply back and you made a huge effort. Thank you very much for going through such lengths and being so thorough you have helped me immensely.