3
$\begingroup$

I'm trying to use Quick Effects -> Smoke to start generating a fire simulation, selectively turning off smoke settings. I work primarily in Eevee. The simulation displays properly when I'm in Solid Shading view:

enter image description here

But when I switch to Rendered Shading view, nothing renders, although as far as I can tell all relevant Eevee settings are on:

enter image description here

If I switch to Cycles, the flame is visible:

enter image description here

I have the same problem in each of Blender versions 2.83, 2.83.2, and 2.90, and it occurs whether I use Principled Volume or the custom node setup displayed above. It also occurs if I hit F12 to render, rather than just using the Rendered Shading preview mode.

What should I do to get Eevee to render fire? Is there maybe a setting(s) I'm missing that is breaking fire volumetric shading?

EDIT: I am not sure if it is related, but I often see messages like this in the System Console when manipulating volumetric shaders, particularly when I use something like a Volume Info node:

GPUShader: compile error:
0(10618) : error C1503: undefined variable "vsamp0"
0(10618) : error C1503: undefined variable "vtfm0"

GPUShader: compile error:
0(4026) : error C1503: undefined variable "vsamp0"
0(4026) : error C1503: undefined variable "vtfm0"

These appear to be due to undefined shader variables related to the use of the Density and Color output sockets on the Volume Info node. The Flame output socket on that node does not generate an error (and, I notice that, when I use the custom node setup in Cycles and it appears to render correctly, it is in fact only the Emission shader---driven by the flame output socket---that is rendering; the rest of the node setup appears to have no effect. Maybe Cycles is just handling the failure of the Density and Color attributes more gracefully than Eevee?).

And, more rarely, messages like:

GPUShader: compile error:
0(10599) : error C0000: syntax error, unexpected ',', expecting ')' at token ","

I also often notice that volumetric shader compilation seems to cancel itself unexpectedly (maybe in response to the above errors?).

EDIT2: One further observation: it also seems common to see this spammed throughout the System Console window when attempting a new bake:

Unable to remove directory
Unable to delete file
Unable to delete file
Unable to delete file
Unable to delete file
Unable to delete file
Unable to delete file
Unable to delete file

I'm working in Windows. In case Blender being unable to overwrite files on disk is the problem, I've tried running Blender as Administrator, and I've tried pointing it at a location in which I created a new folder specifically for testing this, but I still saw this same error. I am not very sophisticated with Windows folder/file permissions, but am trying to figure out if there's something further I need to do of this sort that might help.

EDIT3: I was not able to get this working in Windows, so I setup a Ubuntu dual boot and tried it in Ubuntu instead, with Blender 2.83.2. Findings:

  • the simple test .blend I shared pictures of above "works" in Ubuntu: under both Eevee and Cycles, everything except the Flame output socket of the Volume Info node(on which it throws the vsamp0 error and Blender freezes, unlike in Windows, where it would throw the error but Blender would continue, and seemingly just cancel shader compilation)
  • but it still does not work in a much more complex .blend I have been working on for some time. This prompts what looks like a somewhat more informative version of the file/folder errors I mentioned before: Fluid Error -- Cannot open file /c/.../Caches/config/config_0001.uni (full path printed in error message, but I replaced machine-specific details with ...). From this, I take it paths specific to my Windows installation were memorized by the simulation caching, and it is still trying to access that location, which of course is rather hard to find, as I've switched OSes on it; my attempts to force the simulation to work from a different location in the Linux filesystem have not yet worked, but I plan to keep trying, since this seems "close" to functional in Linux (EDIT5: I found that one of the simulations in fact had the /c/... location still listed as its caching folder, so I changed that; Eevee still fails to render in the complex .blend, though)

EDIT4: In case it may be relevant, I'll add that I version control my .blend files with git (but I exclude large file types, like simulation caches), even though it is an unusual use-case for it. I am not sure why this would matter, but maybe there is a difference between most means of transferring a .blend, and pushing/pulling it from git? I would expect that, on opening the .blend after pulling it, any missing cache files would be ignored and new locations assigned etc, but perhaps I'm wrong.

$\endgroup$
  • $\begingroup$ You mentioned various GPU errors - a lot of useful detail. However, have you tried rendering just on CPU? Does that produce different results? $\endgroup$ – Rich Sedman Jul 12 at 12:38
  • $\begingroup$ Is there a way to change between CPU / GPU rendering in Eevee (where the primary problems are)? I've only seen options for changing between the two types in Cycles. As an aside, I have a very much not well understood and deeply unreasonable but functioning "solution": switching to Ubuntu fixed fire rendering for the simple example file in Eevee, and then appending the model from the complex file into a new file fixed fire rendering in Eevee for that more complex model (fire rendering on the complex model in Eevee still fails in the original complex file). $\endgroup$ – NeverConvex Jul 12 at 14:33
  • $\begingroup$ (well, it is not fully fixed by the Ubuntu+append "solution", I suppose; although 3 of the 4 work, one of the Volume Info sockets still throws a vsamp0 error, and I have not been able to determine if there are any simulation settings I can change that might fix that by switching a 0 to a non-0 value or something similar that might plausibly lead to a divide-by-0 error or some other reason a Volume Info variable might be left undefined. But, the other Volume Info sockets & fire rendering work in Eevee, so it is at least usable) $\endgroup$ – NeverConvex Jul 12 at 15:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.