Opened 5 years ago

Last modified 5 years ago

#4077 assigned enhancement

labels with onTop false have silhouette edge rectangles

Reported by: Elaine Meng Owned by: Tom Goddard
Priority: moderate Milestone:
Component: Graphics Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

with labels onTop false and graphics silhouette true, all of the 3D labels have silhouette rectangles around them. Tested in current daily build:
UCSF ChimeraX version: 1.2.dev202012200532 (2020-12-20)

Change History (2)

comment:1 by Tom Goddard, 5 years ago

Component: UnassignedGraphics
Type: defectenhancement

This is a limitation of the silhouette edge implementation. Objects with depth have silhouettes. Using onTop false means the label has a depth. For the same reason surfaces or atoms or other objects that are 100% transparent also show silhouette edges.

What are the feasible remedies for this?

1) The most obvious is don't use "onTop False". The current behavior has always been present and no one has reported it until now very likely because no one uses "onTop false".
2) Possibly code could not draw completely transparent pixels. The silhouette edge would then appear around the label letters. This seems just as bad.
3) Volume image rendering does not show silhouette edges and seems similar. That is done by not writing the depth. The consequence is that multiple transparent layers draw incorrectly. That seems like a worse limitation than the silhouette edges. We probably do not want labels drawn incorrectly with transparent surfaces.

I don't see any way for the current silhouette code to treat labels with depth (ie onTop false) in a special way. I am inclined to treat "onTop false" as a rarely used feature and the limitation that it cannot be given exceptional behavior relative to silhouette edges as unfortunate but something we are stuck with. Some enhanced design of the graphics, for example, allowing per-model silhouettes could remedy this but are complex to implement and I don't think it will be possible with our limited ChimeraX development resources.

in reply to:  2 ; comment:2 by Elaine Meng, 5 years ago

I agree it is a rare case, so no worries.  I just happened upon it while working on a tutorial and thought I should report it.
Note: See TracTickets for help on using tickets.