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:
But when I switch to Rendered Shading view, nothing renders, although as far as I can tell all relevant Eevee settings are on:
If I switch to Cycles, the flame is visible:
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 theFlame
output socket of theVolume Info
node(on which it throws thevsamp0
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.
Volume Info
sockets still throws avsamp0
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 aVolume Info
variable might be left undefined. But, the otherVolume Info
sockets & fire rendering work in Eevee, so it is at least usable) $\endgroup$