Correct Shading of Regularized CSG Solids Using a Depth-Interval Buffer
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-ofproduct 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.
KeywordsDinate Editing Aliasing
Unable to display preview. Download preview PDF.
- Requicha, A. A. G. and Tilove, R. B.: Mathematical foundation of constructive solid geometry: General topology of closed regular sets, Tech. Memo. No. 27a, Production Automation Project, Univ. of Rochester,June 1978. (Available from CPA, 304 Kimball Hall, Cornell University, Ithaca, New York 14853.)Google Scholar
- Requicha, A. A. G. and Voelcker, H. B.: Boolean Operations in Solid Modelling: Boundary Evaluation and Merging Algorithms, Proceedings of the IEEE, Vol. 73, No. 1, January 1985.Google Scholar
- Jansen, F. W.: Pixel-Parallel hidden-surface algorithm for Constructive Solid Geometry, Proceedings Eurographics’86, pp. 29–40, Elseviers Science Publishers, Amsterdam. 1986.Google Scholar
- Jansen, F. W.: CSG hidden-surface algorithms for VLSI hardware systems, in Advances on Graphics Hardware I W. Strasser (ed.), Springer Verlag, 1987.Google Scholar
- Jansen, F. W.: Solid modelling with faceted primitives, Delft University Press, Doctoral Dissertation, Technische Universiteit Delft, The Netherland, September 1987.Google Scholar
- Kedem, G. and Ellis, J. L.: The ray-casting machine, Proc. ICCD84, pp. 533–538, October 1984.Google Scholar
- Kedem, G. and Ellis, J.: The Ray Casting Machine Prototype, International Conference on Parallel Processing for Computer Vision and Display, University of Leeds, UK, January 1988.Google Scholar
- Woodward, C.: Methods for computer-aided design of free-form objects, PhD dissertation, Mathematics and Computer Science Series number 56, Helsinki University of Technology, Finland. 1990.Google Scholar
- Goldfeather, J., Hultquist, J. P. M. and Fuchs, H.: Fast Constructive Solid Geometry Display in the Pixel-Power Graphics System, ACM SIGGRAPH’86 Proc., Computer Graphics, vol. 20, no. 4, August 1986.Google Scholar
- Goldfeather, J., Molnar, S., Turk, G. and Fuchs, H.: Near Real-Time CSG Rendering using Tree Normalization and Geometric Pruning, IEEE Computer Graphics and Applications, vol. 9, no. 3, pp. 20–28. May 1989.Google Scholar
- Epstein, D., Jansen, F. and Rossignac, J.: Z-buffer rendering from CSG: The Trickle Algorithm, IBM Research Report RC15182, IBM Thomas J. Watson Research Center, Yorktown Heights, New York, December 1989.Google Scholar