3722
How to create transparency effects in Object Graphics
Topic:
It is frequently an issue when displaying 3d graphics that the user wants different objects to be stacked and still maintain a degree of transparency. There are two methods to achieve the effect of transparency in IDL object graphics.
Discussion:
(1) Using the alpha channel to create a texture map that has transparency that can be applied to the object.
(2) Using a stippled fill pattern over the object that leaves part of the pixels transparent, thus allowing part of the behind objects to be seen.
Method 1:
The first method is more complex, but more versatile.
It involves having an image with transparent qualities to texture map over an object, thus creating the effect of transparency.
The normal data array for a truecolor image to be displayed would be (3,m,n). To take advantage of alpha blending, the user must create a (4,m,n) array where the last channel is the alpha blending channel that can effectively hold the transparency value of the object at that location. The user can define a "mask" of transparency values in this channel that will be texture mapped over the object. The BLEND_FUNCTION keyword to IDLgrImage controls how the alpha channel values will be interpreted.
For example, setting BLEND_FUNCTION=[3,4] creates an image in which you can see through the foreground image to the background to the extent defined by the alpha channel values of the foreground image.
An example of how to do this can be found in the article linked below:
Alpha Blending: Creating a Transparent Image Object
Method 2:
The second method involves using the FILL_PATTERN keyword to IDLgrPolygon. The user can specify a stippled fill value for the outer object that should have some transparency and a more opaque value for the behind object that is solid.
In both methods 1 and 2 the realization and stacking order of the objects is very important. Objects must be added to a Project from back to front in order for these effects to work properly.
Additionally, IDLgrVolume objects have an OPACITY keyword that can be set to control their transparency.