Page MenuHome

Viewport: Auto-Depth rotation ignore transparent image reference empties
Confirmed, NormalPublicKNOWN ISSUE

Description

System Information
Operating system: Windows-10-10.0.17763-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 442.92

Blender Version
Broken: version: 2.90 (sub 0), branch: master, commit date: 2020-04-23 21:08, hash: rB826f6dd9ee20
Worked: (newest version of Blender that worked as expected)

Short description of error
cant rotate around partially occluded image objects.

Exact steps for others to reproduce the error

open file, make sure rotate around mouse is enabled in preferences. hover mouse over either side images and hold in the mouse wheel, move the mouse, the view will rotate around the mouse. Now do the same for the middle image, the view no longer rotates around the mouse.

Event Timeline

This seems to be related to the image in the center with the "Transparency" option enabled. Can you confirm?
It also does not receive a projection of the 3d cursor.

Correct, although if you move the cube behind so it’s not intersecting the image plane, then it works as normal without changing any of the image objects settings.

Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Apr 29 2020, 9:27 PM

A quick fix would be:

diff --git a/source/blender/draw/engines/overlay/overlay_image.c b/source/blender/draw/engines/overlay/overlay_image.c
index c592f11a855..252bcb4b1f1 100644
--- a/source/blender/draw/engines/overlay/overlay_image.c
+++ b/source/blender/draw/engines/overlay/overlay_image.c
@@ -366,7 +366,8 @@ void OVERLAY_image_empty_cache_populate(OVERLAY_Data *vedata, Object *ob)
 
   const bool show_frame = BKE_object_empty_image_frame_is_visible_in_view3d(ob, rv3d);
   const bool show_image = show_frame && BKE_object_empty_image_data_is_visible_in_view3d(ob, rv3d);
-  const bool use_alpha_blend = (ob->empty_image_flag & OB_EMPTY_IMAGE_USE_ALPHA_BLEND) != 0;
+  const bool use_alpha_blend = !DRW_state_is_depth() &&
+                               (ob->empty_image_flag & OB_EMPTY_IMAGE_USE_ALPHA_BLEND) != 0;
   const bool use_alpha_premult = ima && (ima->alpha_mode == IMA_ALPHA_PREMUL);
 
   if (!show_frame) {

@Germano Cavalcante (mano-wii) wow, they said you were fast, but that's ridiculous! Brilliant.

Clément Foucault (fclem) changed the subtype of this task from "Report" to "Known Issue".Jun 30 2020, 1:40 AM

I would say this is by design. Transparent object should not be occluders. Not even for rotation. I can see some people using image plane as reference and this would get in the way really quickly.

Clément Foucault (fclem) renamed this task from rotate around mouse bug with image objects that are occluded to Viewport: Auto-Depth rotation ignore transparent image reference empties.Jun 30 2020, 1:42 AM