In many applications it is useful to display both geometric primitives and volumetric data sets in the same scene. For example, medical data can be rendered volumetrically, with a polygonal prosthesis placed inside it. The embedded geometry may be opaque or transparent.
The Opaque geometric objects are rendered first using depth buffering. The volumetric data slice polygons are then drawn, with depth testing still enabled. Depth buffer updating should be masked off if the slice polygons are being rendered from front to back (for most volumetric operators, data slices are rendered back to front). With depth testing enabled, the pixels of volume planes behind the object aren't rendered, while the planes in front of the object blend it in. The blending of the planes in front of the object gradually obscure it, making it appear embedded in the volume data.
If the object itself should be transparent, it must be rendered along with the data slice polygons a slice at a time. The object is chopped into slabs using user defined clipping planes.The slab thickness corresponds to the spacing between volume data slices. Each slab of object corresponds to one of the data slices. Each slice of the object is rendered and blended with its corresponding data slice polygon, as the polygons are rendered back to front.