0
$\begingroup$

I am rendering out a simple fluid (smoke) simulation, and when I render it out, instead of the smoke's shadow rendering out, the shadow is the voxel blocks that house the smoke simulation (See image 1).
My Texture is simple (see Image 2)
And this isn't an "Adaptive Domain" Problem. The problem happens with "Adaptive Domain" turned on and off. Why is this happening?
Please ask questions for any lack of information given! The Blend file is down below.

enter image description here enter image description here

$\endgroup$
4
  • $\begingroup$ The density of your smoke is very low, so it's mostly an emissive volume. Of course this way shadows are harder to see (above the ground) and thin smoke only has a light shadow. If I get this correct what I'm seeing in the screenshot: do you have a ground plane as shadow catcher for the footage below? If so, if this plane is very close or inside the domain, I could imagine that where plane and smoke meet, there is no shadow because the ground plane gets light from the smoke's emission or there is some other problem with overlapping or crossing faces. Hard to tell without the file. $\endgroup$ May 19, 2022 at 10:42
  • $\begingroup$ @GordonBrinkmann Although the smoke is thin and therefore the shadow more faint, when I turn the density up to 50, the shadow stays in the blocks. And yes, the ground plane is the shadow catcher. Also, I'll upload the file $\endgroup$ May 19, 2022 at 22:23
  • $\begingroup$ I tested your file at my end, and @GordonBrinkmann's solution works: Just move the plane (shadow catcher) down on the Z-axis so it is not intersecting with the domain object, and it works. If you want to scale the shadow catcher plane up a little so it gets more shadow area, you can do that. $\endgroup$ May 30, 2022 at 15:29
  • $\begingroup$ That is the only detail you needed, and it was so simple just trying the solution. I wonder why you didn't even try. The blocky things are because of the intersection, smoke was made out of voxels in the first place. $\endgroup$ May 30, 2022 at 15:33

1 Answer 1

4
$\begingroup$

As I already said in my comment, the problem is that your volume is intersecting with the shadow catcher ground plane. If you move the plane below the smoke or its domain, the plane is no longer "within" the smoke so it catches the shadow completely.

Usually when you have an object with an opaque surface, light cannot pass through it so a shadow catcher touching it or intersecting it will be black where it is supposed to be inside the mesh.

However, a volume material with no opaque surface is treated differently in Blender. It looks like the shadow is only calculated for the surrounding surface, outside the volumetric material.

Here is a comparison, I've given a sphere a simple volumetric material and placed it over a shadow catcher plane so that they intersect (left and middle). On the left is what it looks like normally. In the middle you can see, if I hide the sphere for the camera, there is no shadow on the inside of the volume. On the right I moved the sphere up and there you have the complete shadow. It only shows on areas of the plane which are outside the volume.

volumetric shadow

$\endgroup$
1
  • $\begingroup$ Yes. But when you emit smoke, it simulates in voxels. And then the voxels effect the shadow, not the smoke. That's the problem I'm dealing with right now. $\endgroup$ May 23, 2022 at 23:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .