A convenient interactive design environment requires efficient facilities for shading solid models represented in CSG. Shading techniques based on boundary evaluation or ray casting that require calculations of geometric intersections are too inefficient for interactive graphics when CSG primitives with curved (parametric) surfaces are involved. Projective approaches, where the primitive surfaces are scan-converted using standard hardware-supported graphic functions are preferred. Since not all the points of the faces of a CSG primitive lie on the CSG solid, scan conversion must be combined with a procedure that tests the produced 3D surface-points against the original CSG expression. Point classifications against primitives defined by arbitrary curved boundaries may be performed, without geometric intersections, through depth-comparisons at each pixel. This approach has been implemented for the Pixel-Power machine by researchers at UNC. It deals with complex CSG trees by converting CSG expressions into sum-of-product form and repeatedly scan-converting the primitives of each product. The Trickle algorithm, which considerably reduces the number of scan-conversions in the general case has been developed at IBM Research and presented elsewhere. This paper discusses several recent improvements to the original Trickle algorithm. The overall algorithm has been simplified. The scan-conversion process and the point classification tests have been modified to correctly handle cases where several primitive faces coincide within an arbitrary numerical resolution. These enhancements are not only necessary for on/on cases in regularized Boolean expressions, but also for processing pairs of faces near their common edges. Finally, we point out that a simple two-pass extension of the trickle algorithm using an auxiliary shadow buffer suffices to compute directly from CSG shaded images with shadows.
[1]
Henry Fuchs,et al.
Near real-time CSG rendering using tree normalization and geometric pruning
,
1989,
IEEE Computer Graphics and Applications.
[2]
Robert B. Tilove,et al.
Set Membership Classification: A Unified Approach to Geometric Intersection Problems
,
1980,
IEEE Transactions on Computers.
[3]
Aristides A. G. Requicha,et al.
Mathematical Foundations of Constructive Solid Geometry: General Topology of Closed Regular Sets
,
1978
.
[4]
A.A.G. Requicha,et al.
Boolean operations in solid modeling: Boundary evaluation and merging algorithms
,
1985,
Proceedings of the IEEE.
[5]
Aristides A. G. Requicha,et al.
Depth-Buffering Display Techniques for Constructive Solid Geometry
,
1986,
IEEE Computer Graphics and Applications.
[6]
Jarek Rossignac,et al.
Active zones in CSG for accelerating boundary evaluation, redundancy elimination, interference detection, and shading algorithms
,
1988,
TOGS.
[7]
Henry Fuchs,et al.
Fast constructive-solid geometry display in the pixel-powers graphics system
,
1986,
SIGGRAPH.
[8]
Frederik W. Jansen,et al.
A Pixel-Parallelhidden Surface Algorithm For Constructive Solid Geometry
,
1986,
Eurographics.
[9]
Scott D. Roth,et al.
Ray casting for modeling solids
,
1982,
Comput. Graph. Image Process..
[10]
Frederik W. Jansen,et al.
Solid modelling with faceted primitives
,
1987
.
[11]
Frederik W. Jansen.
CSG Hidden Surface Algorithms for VLSI Hardware Systems
,
1986,
Advances in Computer Graphics Hardware.