QuteMol - rendering features and visual effects

In this page you can see some of the visual effects featured in QuteMol, aimed at producing clearer, more informative images of molecules.

All the techniques you see here are designed to run in real time. To achieve this QuteMol runs algorithms that relies quite heavily on modern graphic card features, including programmable fragment & vertex shaders, and frame and vertex buffer objects.

Click on any image on this page to see a 1:1 enlargement!
(every image is a snapshot of a real time renderings)

   

To start with, QuteMol follows the "impostor" approach, like many other space-fill molecular visualizer.

Unlike, say, ->RasMol, QuteMol impostors are procedural (computed on the fly for each pixel, not just fixed size image), meaning that they look virtually perfect no matter how much they are enlarged on the screen.

It is well known that Impostors are far more efficient than a standard tessellation (polygonizing atoms), and they look better too. To get a visual comparison, look at ->this image by ->VMD developers, which uses a similar technique (but we use 2 triangles per atom, not 12). Another important characteristic of our impostor is that they are textured all around, making possible the other techniques you see in this page.

Also, we use a similar approach for atom bonds (sticks) too.
 

QuteMol uses many common rendering techniques, including basic Phong and Lambertian lighting, depth-cueing, self shadowing (using the shadow-maps approach), and so on. Plus, it adds a few rendering techniques that quite more advanced, and challenging for real time renderings, adapting them to the molecular-rendering by impostors case.

Real time Ambient Occlusion (A.O.) is a rendering technique that we found particularly useful in order to improve clarity, by improving realism.

With this technique, molecule surface is lighted according to how much light reaches it from any direction (skylight effect), as opposed to the overused, but unrealistic, point light sources. Ambient occlusion factors are computed on the fly in the GPU side. As they are computed they are stored in a specially formatted texture covering all the molecular surface.

You can see just how much scene understandability improves in this way looking at a few side-to-side comparisons.

See also an example using liquorice mode.

   
       
 
   

It is well known that realism is just one of the many way to make a 3D image clear and useful. Illustrative rendering (also known as NPR, Non Photorealistic Rendering) techniques can greatly help.

Just drawing thin borders around atoms, for example, can be very helpful to detect more clearly atom intersections.

In this image, you see the a rendering of borders alone. Of course, that is supposed to be (and usually is) merged in a image cumulating several different visual effects
 
   

Here you can see our depth aware borders, an attempt to bring more information in a visually intuitive way. The line between two atom borders is thicker the more spatially distant the two are along the viewing direction, separating far distances.


(again, the image on the left isolates this rendering contribution, that is supposed to be integrated in a more complex rendering. See examples in the side-to-side comparisons page).

Both thin borders and depth aware borders are very fast to compute: both are done in the same rendering pass used to draw the rest of the molecule.

 
   

Along the same line, we also designed this Depth-aware halo effect. Halos "irradiates" from every atom with a strength indicating depth distance. Depth-aware halos are similar to Depth cueing, but they concentrate their effect locally, and only where needed, re-using the large gradient in contrast every time that is necessary, rather than dispersing it on a global scale. (Another way to see it is that halos are like "depth aware border" above, but they map z-distance over transparency rather than thickness).


(again, the image on the left isolates this rendering contribution, that is supposed to be integrated in a more complex rendering. See examples in the side-to-side comparisons page).

See another example [here], where thanks to the halo effect you can clearly that that particular molecule has a general shape of a torus.

In the example you can see [here], we draw bright halos over a darker rendering, rather than viceversa.

Drawing halos requires a separate rendering pass.

 

When the molecule is cut by the near clipping plane (i.e. part of the molecule is hidden), our fragment based impostor behaves nicely correctly showing the cut atoms as if their intersection took place in their interior as well (unlike any other viewer we known, where in this situation one of the two intersection atoms is shown totally). Also, if ambient occlusion is present, its contribution is adaptively attenuated to roughly compensate for the atoms in front that where formerly occluding light.

   
 


[Qutemol home page]