Opened 6 years ago

Last modified 6 years ago

#2069 assigned enhancement

Two-way depth cueing

Reported by: olibclarke@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Graphics Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-18.6.0-x86_64-i386-64bit
ChimeraX Version: 0.91 (2019-06-13)
Description
Feature request: Two depth cue ramps to acheive center-focused lighting.

Rationale:
Currently, when using depth cueing, depth cue shading increases linearly from start to end. Everything in front of depthcuestart is at maximum brightness. This is undesirable (IMO) when making figures with mesh maps and models, where more pleasing results can be obtained by having maximum brightness at the focus position, with items in both the foreground and background falling off in brightness. 

This helps reduce the appearance of small bits of clipped map/model in the foreground distracting from the overall composition.

This depth cueing model is used in Coot (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2852313/ ; section 3.3).

In ChimeraX, this might be acheived by adding a second depth cueing ramp, which ramps up in brightness (rather than down) from start to end, and which would be off by default.

Cheers
Oli

Log:
> camera ortho

> cofr centerOfView

> volume voxelLimit 100000 showPlane false limitVoxelCount false
voxelLimitForOpen 10000

> alias crosshairs_on log text crosshairs_on: displays crosshairs at center of
rotation and places cofr at center of view; cofr centerofview showpivot 5,0.2

> alias crosshairs_off cofr centerofview showpivot false

> alias cootmode volume style mesh step 1 squaremesh false meshlighting true
twosidedlighting false capfaces false; surface cap false; size stickradius
0.05; ~rib; color gold target a; color byhet; lighting flat; lighting
depthcuestart 0.2 depthcueend 0.7; set silhouettes false; set subdivision 1;
crosshairs_on; color #3333851effff target s; style stick; set bgcolor black

> alias cootmode_white volume style mesh step 1 squaremesh false meshlighting
true twosidedlighting false capfaces false; surface cap false; size
stickradius 0.05; ~rib; color orange target a; color byhet; lighting flat;
lighting depthcuestart 0.2 depthcueend 0.7; set silhouettes false; set
subdivision 1; crosshairs_on; color #00000000cccc target s; style stick; set
bgcolor white

> alias carve surface zone #* nearatoms sel distance $1 maxcomponents 1

> alias uncarve surface unzone #*

> alias focus view cofr false

> alias saturation_down color modify $1 saturation - 10

> alias saturation_up color modify $1 saturation + 10

> alias lightness_up color modify $1 lightness + 5

> alias lightness_down color modify $1 lightness - 5

> alias hue_up color modify $1 hue + 5

> alias hue_down color modify $1 hue - 5

UCSF ChimeraX version: 0.91 (2019-06-13)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open
/Users/oliverclarke/Dropbox/last_frame_rsr_ligands_real_space_refined_ss_annotated.pdb

Chain information for
last_frame_rsr_ligands_real_space_refined_ss_annotated.pdb #1  
---  
Chain | Description  
A B G I | No description available  
C D E K | No description available  
F H J O | No description available  
  

Expected a color or one of 'byatom', 'bychain', 'byelement', 'byhetero',
'bymodel', 'bynucleotide', 'bypolymer', 'fromatoms', or 'random' or a keyword  

> color name invisible 0,0,0,0

Color 'invisible' is 100% transparent, 0% red, 0% green, and 0% blue

  

Expected one of 'default', 'flat', 'full', 'gentle', 'simple', or 'soft' or a
keyword  

> help lighting

> lighting depthCueColor invisible

> select up

Nothing selected  

> color name part_invisible 0,0,0,50

Color 'part_invisible' is 50% transparent, 0% red, 0% green, and 0% blue

  

Expected a collection of one of 'All', 'atoms', 'bonds', 'cartoons',
'pseudobonds', 'ribbons', 'rings', or 'surfaces' or a keyword  

> color #1 part_invisible

> color "cornflower blue"

> color name part_invisible 0,0,0,90

Color 'part_invisible' is 10% transparent, 0% red, 0% green, and 0% blue

  

> color #1 part_invisible

> color name part_invisible 0,0,0,10

Color 'part_invisible' is 90% transparent, 0% red, 0% green, and 0% blue

  

> color #1 part_invisible

> color "cornflower blue"

> close all

> open /Users/oliverclarke/Dropbox/best_new_4cmc_combined_pixcorr.mrc

Opened best_new_4cmc_combined_pixcorr.mrc, grid size 512,512,512, pixel 1.06,
shown at level 0.0133, step 2, values float32  

> open
/Users/oliverclarke/Dropbox/last_frame_rsr_ligands_real_space_refined_ss_annotated.pdb

Chain information for
last_frame_rsr_ligands_real_space_refined_ss_annotated.pdb #2  
---  
Chain | Description  
A B G I | No description available  
C D E K | No description available  
F H J O | No description available  
  

> cootmode

Changed 151612 bond radii  
crosshairs_on: displays crosshairs at center of rotation and places cofr at
center of view  
Changed 148348 atom styles  

> toolshed show "Side View"

> help lighting

> lighting depthCueStart 0.5

> lighting depthCueEnd 0

> lighting depthCueStart 0.5

> lighting depthCueEnd 0.7




OpenGL version: 4.1 ATI-2.9.26
OpenGL renderer: AMD Radeon Pro 580 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.

Change History (5)

comment:1 by Eric Pettersen, 6 years ago

Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionTwo-way depth cueing
Type: defectenhancement

comment:2 by Tom Goddard, 6 years ago

A reasonable idea. You requested it a long time ago, ticket #329.

Depth cue is supposed to convey depth and does that best when dimming is only in back. What you want is not to indicate depth but just to hide stuff in front and in back in a nice way. That is useful too. It will require more user interface. Do you envision having 4 depth parameters front-start, front-end, back-start, back-end to control the ramping of brightness?

While it is nice to see what Coot does well, Coot is designed for a highly specialized task, refining and building models in density, while ChimeraX is intended for 50 other tasks. So it is hard to put all the specialized Coot features in ChimeraX given our limited resources, and the need to make the program simple enough for a broad range of users.

in reply to:  3 ; comment:3 by olibclarke@…, 6 years ago

Hi Tom,

Yes, I would envision four parameters as you describe, with the first two being optional and it otherwise behaving as it does now. Initially I shouldn’t think it would require more UI beyond alterations to the parameters taken by the lighting command?

Absolutely would not suggest porting all of Coot functionality to ChimeraX - it is just that this is an approach to depth cueing that I haven’t seen elsewhere, it helps with visualization of the density and I’d love to be able to use it in the context of a proper molecular graphics program where I can use it for making figures (which one can’t really do with Coot as the graphics are fairly primitive).

Oli


in reply to:  4 ; comment:4 by olibclarke@…, 6 years ago

Also apologies for the duplicate ticket - I knew I had requested it at some point but wasn’t sure whether it was for Chimera or ChimeraX.

I think it is a feature that would enhance visualization of density and therefore appeal to the substantial fraction of users using ChimeraX to make figures and analyze structures deriving from cryoEM and crystallographic data, but I understand that there are a long list of priorities.

Cheers
Oli

in reply to:  5 ; comment:5 by goddard@…, 6 years ago

I think it is interesting.  But it is true we have hundreds of problems to solve in ChimeraX, probably 10-years of work just in the current ChimeraX tickets.  So it takes something really compelling to jump to the front of the line, and I personally don't think this makes it.
Note: See TracTickets for help on using tickets.