“…Three general approaches have been previously proposed: Dooley and Cohen [11] suggested using a fixed screen-space pattern to modulate the opacity of a transparent surface after projection onto the image plane; Levoy et al [29] used a uniform sampling of finite-width planes along the three orthogonal axes of a 3D dataset to define a volume opacity mask that could be applied as a generic "solid texture" [40] during volume rendering; and Rheingans [43] developed a method for using standard hardware texture-mapping routines to apply a procedurally-defined 2D texture across evenly-distributed points on an arbitrary surface in 3D. In addition, there is significant precedent, particularly in applications that use computer graphics for interactive data display, for representing a continuous transparent or opaque surface by a sparse set of discrete graphical primitives such as points, lines, spheres, or triangle strips [8], [41], [45], [1]. Sometimes intended more as a means of improving rendering efficiency than as a device for improving the comprehensibility of surface shape, it can be argued that the best of these methods serve both purposes well.…”