Fire Simulation Showing in Viewport, But not rendering

Trying to get a flamethrower effect. Able to view fire simulation in viewport, but unable to render it. The image shows the viewport display and the render. The emitters have been disabled for show “emitter option.” Tried rendering with both and they just ended up showing the cube that the particles emit from. Altered the clipping distance to see the flame from the camera. Still not able to render. All of the render buttons (as far as I can tell) are set to blue so able to render. The particles and the domain simulation are fully cached on a hardrive. Beyond that, I am at a loss. Blender version is Blender 3.5.1 running from steam.

Welcome to the community!

Did you setup the material? Fire simulations need a volumetric material to render.

I… seem to have solved the main issue. It was a combination of clipping and material. I thought that the flame material needed to be applied to the emitter object. (The thing that particles emit from) Instead I needed to apply it to the simulation’s domain. Rendering it out now just to see. Aside from that, any tips on how to make the flame look less blocky or like a series of lines? Could the scale of the emitter object have any impact on the scale of the emitted particles and thus the material emitted from them?

1 Like

The main settings to avoid blockiness are on the domain.

First, the domain’s resolution. The simulation is made of voxels, a grid of cubes that composes the domain, and the resolution of that grid is the main setting for more quality. Please note that if you double the resolution, you actually get 8x the cells (and bake time) because it doubles in 3 directions.

On top of that, you can also activate the noise feature on the domain. This feature adds even more divisions to the simulation after it has been calculated and introduces and extra layer of fine details on top of the physics.

Also, I see that your domain seems very big. This means that a lot of detail is wasted in unused areas. The domain should be as small as possible to maximize its use.

Does adaptive domain take care of some of that? It takes a bit to calculate though. Is it better to be using adaptive domain or try and size it yourself?

Adaptive domain can help reduce the calculation time, depending on how close to the smoke you allow it to be (the margin setting). If it takes a long time to calculate, you probably have set a large margin.

The main problem with adaptive domain is that it has a flaw: it can fail to recognize very thin smoke, shrink and cut parts of it. At least, that was a problem last I used it.

Is there a way to “forcefully” set a domain object for a simulation? When I make a cube a domain and or use the quick smoke effect. On this Blend file it makes the domain wireframe, but it does not show to voxel size that would be vindictive of a domain object, or show any sort of simulation even in the viewport.

Domains just correspond to any matching simulation object. For instance outflow for fire. If multiple objects had outflow fire and you had a domain with “Gas” it would work for all object with the corresponding fire flow, right? So is there a way to say forcibly match the domain to an individual simulation within Blender?

Sadly, not really. Before you know the size you need, you first have to try simulating it and see what size the smoke will be.

Here is what I would do:

  • First set the size and shape of the domain by hand, to roughly the size you think you will need. It might be a good idea to do it in edit mode, as you can move each side one by one. If you have a camera already placed in the scene for your render, it can help, as you can sometimes make a domain that roughly matches the view. If you have obstacles, such as a floor or walls, make sure you don’t waste a large section of the domain underground. You are allowed to have a rectangle domain to better match the shape of the scene.

  • If you rescaled a domain in object mode, you should apply the scale on the object to make sure the physics work correctly.

  • Then, simulate the smoke in lower resolution than the final and readjust the shape of the domain in edit mode as needed.

  • When you see that it works correctly, then increase the quality and bake the final cache.

That’s weird. This doesn’t happen in a fresh file?
I don’t think I have ever seen this, I would need to take a look at the file to know what’s happening.

The domain keeps on being set but not linked to the “inflow object” making the volume material that you would normally apply to create fire just be applied to the whole box. Basically making it a volume object, rather than a simulation object. I it possible that if you have too many objects in the scene that blender will “give up” on simulating things and just give the domain the volume material instead of attaching it to the particles? It kind of feels like that is what it is doing. I made a simpler test scene in which I copied over just the dragon and reproduced the flame effect. There it worked. But recreating things in the original scene does not end up workings.

There isn’t anything that needs to be linked. If you have an inflow object and it’s inside a domain, the smoke is supposed to happen. There is a way to make a domain use only the objects from a collection you choose, but you have to set it up manually in the domain settings.

The volume material is supposed to go on the domain object. If you are emitting smoke from particles, those particles won’t be rendered and it doesn’t matter what material they have.

Do you have multiple fluid simulations that could interfere with each other?

If not, the only time I have seen a domain turn to solid volume is because of cache problems, or something wrong in the material.