Honestly, I didn’t notice by when PyMOL begins to supports ambient occlusion until I read this paper called “Molecular Graphics: Bridging Structural Biologists and Computer Scientists” at Structure (2020). DOI:https://doi.org/10.1016/j.str.2019.09.001
Ambient or ambient_occlusion used in some software like Qutemole and ChimeraX are very helpful to present molecules, in particular the depth. So I am showing some examples at here using a randomly selected protein called MSG (malate synthase G). The PDB code is 1P7T. It’s a dimeric crystal structure and I will use the whole A-B chains to represent ambient, ambient_occlusion_mode with surface view in PyMOL (version 2.3.2).
commands used at here: ambient, ambient_occlusion_mode, ray, ray_trace_mode

The default rendered surface view is shown above. To make light and shadow more realistic, a command called “ray” is used to render a better presentation.

Sometimes the continuous surface can not present depth and boundary of protein, I often use “ray_trace_mode, 1” (default is 0) to draw a line of target molecule. It helps our eyes to focus on particular highlighted area (if some region is highlighted, not shown in this case).
Alternatively, ambient and ambient_occlusion can emphasize “shadow” and depth of presenting molecules. Here are some examples. The commands PyMOL are “ambient” and “ambient_occlusion”.


The above two figures show the difference of “ambient=0 or =1”. The bottom one can be further combined with “ray_trace_mode, 1” to outline target molecule like:

Last example simply use “set ambient_occlusion_mode, 1” to draw the surface of dimeric MSG crystal structure. Showing below, the center of holes or cavities in such surface views are quite dark. This is very different from default “surface” view (check first example above). ambient_occlusion_mode has 2 more parameters called “ambient_occlusion_smooth” and “ambient_occlusion_scale” to further fine tuning the presentation.
