2
$\begingroup$

I have an "empty" plane in which I am displaying an image. In Blender 2.80 this object seems to have trouble interacting with transparent objects in the 3D view, although this technique worked in Blender 2.79. In the following example, the entire blue sphere should be visible, as seen in the first image where it has alpha = 1.0. But when alpha < 1, the "empty" image behaves as if its "always in front" setting is activated, but only with the transparent object, not with fully opaque objects.

enter image description here enter image description here

The sphere color is set as sph.diffuse_color = [0.0, 0.3, 0.8, 0.5].
The image is a grayscale tif, loaded into an "empty" plane.

Is there setting I am missing, in order to tell the "empty" image to interact properly with transparent objects in the scene?

Thanks.

$\endgroup$
  • $\begingroup$ If you use empty background, this has additional controls for depth $\endgroup$ – Moog Nov 29 '19 at 18:59
  • $\begingroup$ Thanks Merlin, but I'm not sure I understand what you mean. I need the image to be in a plane object, not be the entire background. $\endgroup$ – Animik Nov 30 '19 at 15:46
  • $\begingroup$ I meant Add -> Empty (Image) > Background, but after some tests I'm not sure that you want an empty here, I can't find a way to make these render. I would use a real plane and map the image as a texture instead. $\endgroup$ – Moog Nov 30 '19 at 17:55
2
$\begingroup$

This looks like a bug related to the "sorting problem". It appears as if image empties are being alpha blended to the color buffer after all regular Alpha Blend objects, so they always appear on top.

Two workarounds:

  • You can switch the blending mode from "Alpha Blend" to "Alpha Hashed". This will give you a really noisy blend, but it gets the transparency right.
  • You can enable the "Import-Export: Import Images as Planes" add-on and add your image using "Add -> Image -> Images as Planes". This adds the image as a regular plane mesh, and it seems to behave correctly even with "Alpha Blend".

Given that image empties can't be rendered anyway, as far as I know, "Images as Planes" is probably the best solution if you actually want the image to be a part of your scene.

$\endgroup$
  • $\begingroup$ I can change the blending mode of the material on the transparent object (which does not change anything on its own). But the empty image does not have a material. Can an empty still have its blending mode changed? I'm updating an addon that is a user interface for exploring 3D meshes as they related to the image data they were constructed from, I don't actually need to render anything. So I was hoping to avoid importing images as planes, as it is slower (or it was in 2.7x), and the delay was noticeable as I allow my users to scroll through a stack of images. Thanks for your help. $\endgroup$ – Animik Nov 29 '19 at 17:24
  • $\begingroup$ You may have to post a .blend file. Changing the blending mode on the sphere alone worked for me, so we probably have some difference in how we set up the scene. $\endgroup$ – K. A. Buhr Nov 29 '19 at 17:27
  • $\begingroup$ Oh, wait, it looks like you are trying to get this to work in "Solid" mode using the Viewport Display color with an alpha. I was looking at "Material Preview" mode with an actual semi-transparent material. I don't think either workaround will work for you in this case. $\endgroup$ – K. A. Buhr Nov 29 '19 at 17:33
  • $\begingroup$ That's too bad, but thanks for trying! I hope somebody else will have some ideas for a fix, as being able to see image data through solid meshes is quite fundamental to the functionality we need. $\endgroup$ – Animik Nov 29 '19 at 17:39

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.