COMPUTER DISPLAY OF LINEAR FRACTAL SURFACES JOHN C. HART B.S., Aurora University, 1987 M.S., University of Illinois at Chicago, 1989 THESIS Submitted as partial fulllment of the requirements for the degree of Doctor of Philosophy in Electrical Engineering and Computer Science in the Graduate College of the University of Illinois at Chicago, 1991 Chicago, Illinois To my dear wife, Patty, Who feels our baby's kicks. Her contractions are not Lipschitz. Instead they're Braxton-Hicks. iii ACKNOWLEDGEMENTS First and most importantly, I would like to thank my wife, Patricia A. Hart, for her seless support toward this end. She suered my absence for two long summers and has endured many lonely nights for this document. Therefore I dedicate this dissertation to her, as compensation for the many hours we could have otherwise spent together. In the same spirit I would like to thank the families of Joseph D. & Janice M. Hart, and Roger D. & Joyce M. Olson, for additional support during these years. The members of the dissertation committee were selected for their inuence on the research behind this document. Its chairman: Thomas A. DeFanti, has supported me for the past four years with both salary and equipment. Tom's role as advisor far exceeded the scope of computer graphics. Daniel J. Sandin and Louis H. Kauman introduced me to 3-D fractals. Dan has been a constant companion in the research of fractal visualization algorithms. Lou has always encouraged the use of visualization in mathematics, resorting to pen and ink whenever CRT and pixels failed. Maxine D. Brown has supported this research by communicating its results to more people than I will ever know. The breadth of Maxine's knowledge of visualization helped dene the proper scope of this research. Robert V. Kenyon's courses on computer graphics taught me more than I wanted to know about computer graphics. Only recently did I appreciate that. Since he was rst invited here in 1988, Alan Norton has been a valuable inuence on this research. I interned at the IBM T.J. Watson Research Center during the Summer of 1989, during which time, Alan imparted the unpublished subtleties of fractal rendering. I would also like to thank the sta and students of the Electronic Visualization Laboratory, for useful conversations and support, specically: Craig Barnes, Sumit Das, Gordon Lescinsky, Gary Lindhal, Randy Hudson and Irv Moy. I would also like to thank the (Art)n iv lab at the Illinois Institute of Technology for promoting this work through PHSColograms. My internship at AT&T Pixel Machines during the Summer of 1990 happened at a particularly depressing episode of their history. I am grateful for Steve Bourne's support of my internship there during such a critical time. There I enjoyed very informative conversations with Kamran Manoocheri, Jennifer Inman, Pete Segal and John Spicer at AT&T Pixel Machines, and with Don Mitchell and guests: John Amanatides and Paul Heckbert, at AT&T Bell Labs. I would also like to thank Frank & Lethe Lescinsky for housing me that summer. Many other researchers in fractal geometry have been quite helpful, for which I would like to acknowledge: Daryl Hepting, Arnaud Jacquin, Benoit Mandelbrot, Ken Musgrave, Przemyslaw Prusinkewicz, Laurie Reuter, Dietmar Saupe, Richard Voss and Edward Vrscay. JCH v PREFACE The dissertation title \Computer Display of Linear Fractal Surfaces" is based on the overused \Computer Display of Curved Surfaces" which is found in the titles of many early works in computer graphics, in particular, the Ph.D. dissertations of J. Blinn and E Catmull. It is a satirical response to the overwhelming tendency in computer graphics to assume local smoothness of surfaces. Fractal geometry provides us with many examples of surfaces where this assumption fails. This failure has provided the author with a large set of open problems in computer graphics, for which this dissertation addresses and solves. This dissertation was written using the AMS-LaTEX document processing system. Its format meets the requirements of the University of Illinois at Chicago Graduate College Thesis Manual. The 2-D illustrations were created with Silicon Graphics Inc. IRIS-4D workstations, some using their product: \showcase." The 3-D illustrations were created on an AT&T Pixel Machine 964dX. vi TABLE OF CONTENTS I INTRODUCTION 1 1 OVERVIEW 2 FRACTALS IN COMPUTER GRAPHICS 3 5 2.1 From Visualization to Image Synthesis : : : : : : : : 2.2 Categorizing Fractals : : : : : : : : : : : : : : : : : : 2.2.1 Random Fractals in Computer Graphics : : : 2.2.2 Deterministic Fractals in Computer Graphics : 2.2.3 Linear Fractals in Computer Graphics : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : II ANALYSIS 5 6 6 8 8 11 3 ITERATED FUNCTION SYSTEMS 3.1 Lipschitz Functions, Contractions and Similtudes : : : : : : : : 3.1.1 The Lipschitz Property : : : : : : : : : : : : : : : : : : : 3.1.2 Contractions : : : : : : : : : : : : : : : : : : : : : : : : : 3.1.3 The Contraction Mapping Principle : : : : : : : : : : : : 3.1.4 Similtudes : : : : : : : : : : : : : : : : : : : : : : : : : : 3.2 The Hausdor Metric : : : : : : : : : : : : : : : : : : : : : : : : 3.2.1 The Distance From a Point To a Set : : : : : : : : : : : 3.2.2 The Distance Between Two Sets: The Hausdor Metric : 3.2.3 The Thickening of a Set : : : : : : : : : : : : : : : : : : 3.2.4 The Complete Metric Space of Compact Subsets : : : : : 3.3 The Hutchinson Operator : : : : : : : : : : : : : : : : : : : : : 3.3.1 Denition : : : : : : : : : : : : : : : : : : : : : : : : : : 3.3.2 Hutchinson's Lemma : : : : : : : : : : : : : : : : : : : : 3.4 Denition of Iterated Function System : : : : : : : : : : : : : : 3.5 The Fundamental Theorem of Iterated Function Systems : : : : 3.6 The Open-Set Condition versus Overlapping Construction : : : vii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 14 14 14 15 16 17 17 17 17 19 21 22 22 23 24 27 3.7 Disconnectedness : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 3.7.1 Disjoint Images of the Attractor : : : : : : : : : : : : : : : : : : : : : 28 3.7.2 Sum of Lipschitz Constants : : : : : : : : : : : : : : : : : : : : : : : 29 4 RECURRENT ITERATED FUNCTION SYSTEMS 4.1 Graph Theory : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.1.1 Denition : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.1.2 Cycles : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.1.3 Strongly versus Weakly Connected Digraphs : : : : : : : : : 4.1.4 Condensation : : : : : : : : : : : : : : : : : : : : : : : : : : 4.2 Set N -tuples : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.3 The Recurrent Hausdor Metric : : : : : : : : : : : : : : : : : : : : 4.4 The Recurrent Hutchinson Operator : : : : : : : : : : : : : : : : : 4.5 Denition : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.6 The Fundamental Theorem of Recurrent Iterated Function Systems 5 WHAT IT MEANS TO BE A FRACTAL 5.1 Denitions of Fractal : : : : : : : : : : : : : : : : 5.2 Hausdor Dimension : : : : : : : : : : : : : : : : 5.2.1 Denition : : : : : : : : : : : : : : : : : : 5.2.2 Properties : : : : : : : : : : : : : : : : : : 5.3 Box-Counting Dimension : : : : : : : : : : : : : : 5.3.1 Denition : : : : : : : : : : : : : : : : : : 5.3.2 Relationship with Hausdor Dimension : : 5.4 Self-Similarity Dimension : : : : : : : : : : : : : : 5.5 Density Bounds and the Decomposition Theorem 5.6 Locally Fractal Sets : : : : : : : : : : : : : : : : : 5.6.1 The Carrot Leaf : : : : : : : : : : : : : : : 5.6.2 Locally Fractal : : : : : : : : : : : : : : : 5.6.3 The Devil's Staircase : : : : : : : : : : : : 5.6.4 The Twindragon : : : : : : : : : : : : : : 6 LINEAR FRACTALS 6.1 6.2 6.3 6.4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Linear Maps and the Jacobian Matrix : : : : : : : : : : : Ane Maps and Homogeneous Coordinates : : : : : : : Linear Fractals : : : : : : : : : : : : : : : : : : : : : : : Dimension Computations for Linear Fractals : : : : : : : 6.4.1 The Hausdor Dimension of IFS Attractors : : : 6.4.2 The Box-Counting Dimension of RIFS Attractors. viii : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 32 32 32 33 33 34 35 35 38 40 45 45 46 47 48 49 50 50 51 53 54 54 56 57 58 61 61 62 64 64 64 66 III MODELING 67 7 MODELING WITH LINEAR FRACTALS 69 7.1 Explicit versus Implicit Models : 7.2 The RIFS Model : : : : : : : : : 7.2.1 The Explicit RIFS Model 7.2.2 The Implicit RIFS Model 7.3 The L-System Model : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 69 70 70 71 72 8 THE COLLAGE THEOREM 75 9 INTERACTIVE MODELING 79 8.1 Statement and Proof : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 76 8.2 Recurrent Collages : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 77 9.1 Textual Specication by Map Composition : : : : : : : : : : : : : : : : : : : 80 9.2 Graphical Specication by Map Composition : : : : : : : : : : : : : : : : : : 81 9.3 Graphical Specication by Shape Transformation : : : : : : : : : : : : : : : 81 10 ALGORITHMIC MODELING 10.1 The Method of Moments : : : : : : : : : : : : : : : 10.1.1 A Parameterized Iterated Function System : 10.1.2 Matching Moments Analytically : : : : : : : 10.1.3 Matching Moments Procedurally : : : : : : 10.2 Block Coding : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 83 84 84 85 86 IV RENDERING 87 11 LINEAR FRACTALS: WHERE CLASSICAL RENDERING FAILS 89 11.1 Occlusion and the Innitely Detailed : : : : : : : : : : : : 11.1.1 The Hidden-Surface Problem : : : : : : : : : : : : 11.1.2 Ray-Fractal Intersection : : : : : : : : : : : : : : : 11.1.3 Volume Rendering and Geometric Measure Theory 11.2 Shading Without Surface Normals : : : : : : : : : : : : : : 11.2.1 Surface Normal Approximations : : : : : : : : : : : 11.2.2 Shading Module Approximations : : : : : : : : : : 11.3 Sampling Innite Frequencies : : : : : : : : : : : : : : : : 11.3.1 The Rasterization Integral : : : : : : : : : : : : : : 11.3.2 Integration : : : : : : : : : : : : : : : : : : : : : : 11.3.3 Area Sampling Techniques : : : : : : : : : : : : : : ix : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 89 90 91 93 94 94 95 96 96 97 98 12 RAY-LINEAR FRACTAL INTERSECTION 12.1 Denitions : : : : : : : : : : : : : : : : : : : : : 12.1.1 Heaps : : : : : : : : : : : : : : : : : : : 12.1.2 Rays : : : : : : : : : : : : : : : : : : : : 12.2 Bounding Volumes and Hierarchies : : : : : : : 12.3 Ray-Hierarchy Intersection : : : : : : : : : : : : 12.4 Object Instancing : : : : : : : : : : : : : : : : : 12.5 Ray-Instance Intersection : : : : : : : : : : : : : 12.6 Cyclic Hierarchies: A Model for Linear Fractals 12.7 Ray-Linear Fractal Intersection : : : : : : : : : 12.7.1 The Bounding Volume Theorem : : : : : 12.7.2 Analysis : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 101 101 101 102 102 104 104 105 107 108 110 111 13 FAST RAY-LINEAR FRACTAL INTERSECTION 115 14 INITIAL BOUNDING VOLUME CONSTRUCTION 119 15 THE SIZE OF A PIXEL 123 13.1 A Locally Orthogonal Approximation to Perspective : : : : : : : : : : : : : : 116 13.2 Projected Recurrent Iterated Function Systems : : : : : : : : : : : : : : : : 117 13.3 Ray Intersection via Point Inclusion : : : : : : : : : : : : : : : : : : : : : : : 117 14.1 An Iterative Method : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 120 14.2 Computational Geometric Methods : : : : : : : : : : : : : : : : : : : : : : : 121 15.1 Eye-Ray Formulation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 123 15.2 Light-Ray Formulation : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 125 15.3 Reection/Refraction-Ray Formulations : : : : : : : : : : : : : : : : : : : : 126 16 THE LIPSCHITZ CONSTANT OF AFFINE MAPS 16.1 Estimating the Lipschitz Constant : 16.1.1 A Lower Bound : : : : : : : 16.1.2 An Upper Bound : : : : : : 16.2 Computing the Lipschitz Constant 16.2.1 Polar Decomposition : : : : 16.2.2 Computing Eigenvalues : : : 17 HIERARCHICAL SHADING 17.1 17.2 17.3 17.4 Formulation : : : : : Diuse Illumination : Denition : : : : : : Weighting Methods : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : x 129 129 129 130 130 130 131 133 133 134 134 135 17.4.1 Constant Weighting : 17.4.2 Low-Pass Weighting 17.4.3 High-Pass Weighting 17.5 Analysis : : : : : : : : : : : 17.6 Evaluation : : : : : : : : : : 18 LOCAL COVERS 18.1 18.2 18.3 18.4 Covers : : : : : : : : : : : : Local Covers : : : : : : : : : Evaluation : : : : : : : : : : Extensions and Applications : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : V CONCLUSION 135 136 136 137 139 141 141 143 145 146 149 19 IMPLEMENTATION 20 EXHIBITION 151 153 20.1 The Five Non-Platonic Non-Solids : : : : : : : : : : : : : : : : : : : : : : : : 153 20.2 Fractal Forest : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 155 21 FURTHER RESEARCH A METRIC SPACE ESSENTIALS B DOCUMENTATION B.1 The Extruded Sierpinski's Gasket : : : B.2 Natural Models : : : : : : : : : : : : : B.2.1 Grass : : : : : : : : : : : : : : B.2.2 Elm Tree : : : : : : : : : : : : B.2.3 Pine Tree : : : : : : : : : : : : B.3 The Five Non-Platonic Non-Solids : : : B.3.1 Sierpinski's Tetrahedron : : : : B.3.2 Sierpinski's Octahedron : : : : B.3.3 Menger's Sponge : : : : : : : : B.3.4 Sierpinski's Icosahedron : : : : B.3.5 Von Koch's Snowake-a-hedron VITA : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 157 161 165 165 166 167 168 171 173 173 174 175 179 181 195 xi xii List of Figures : : : : : : 18 20 22 25 26 28 4.1 The complete digraph of four vertices and the corresponding digraph where the same vertex cannot be visited twice in a row. : : : : : : : : : : : : : : : 4.2 A recurrent Hutchinson operator applied to a square. : : : : : : : : : : : : : 4.3 The fractal pound sign. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4.4 The 3-D fractal pound sign. : : : : : : : : : : : : : : : : : : : : : : : : : : : 36 37 41 42 3.1 3.2 3.3 3.4 3.5 3.6 The Hausdor metric. : : : : : : : : : : : : : : : : : : : : : : : : : The thickening of a set by its Hausdor distance from another set. : A Hutchinson operator applied to various initial sets. : : : : : : : : Sierpinski's gasket. : : : : : : : : : : : : : : : : : : : : : : : : : : : Sierpinski's tetrahedron. : : : : : : : : : : : : : : : : : : : : : : : : The open-set property of the Cantor set and Sierpinski's gasket. : : : : : : : : : : : : : : : : : : : : : : : : : : 5.1 The \carrot leaf" attractor and the set of its branching limit points. : : : : : 55 5.2 The Devil's staircase and the set of its increments. : : : : : : : : : : : : : : : 57 5.3 The twindragon. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 59 7.1 Turtle interpretations of four words generated by an L-system. : : : : : : : : 74 12.1 A tree topology for the bounding volume hierarchy of a low-level approximation of Sierpinski's gasket. : : : : : : : : : : : : : : : : : : : : : : : : : : : : 103 xiii 12.2 An object-instancing topology for the bounding volume hierarchy of a lowlevel approximation of Sierpinski's gasket. : : : : : : : : : : : : : : : : : : : 12.3 A cyclic topology for the bounding volume hierarchy of Sierpinski's gasket. : 12.4 Procedural bounding volumes instanced during ray-fractal intersection. : : : 12.5 Hierarchy of bounding volumes for Sierpinski's tetrahedron. : : : : : : : : : : 106 108 109 113 15.1 Pixel size geometry. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124 15.2 Light ray pixel size geometry. : : : : : : : : : : : : : : : : : : : : : : : : : : 126 17.1 Shading weight functions. : : : : : : : : : : : : : : 17.2 Extruded Sierpinski's gaskets shaded by constant, shading modules. : : : : : : : : : : : : : : : : : : : 17.3 Surface normal distributions. : : : : : : : : : : : : : :::::::: low-pass and :::::::: :::::::: : : : : : : 136 high-pass : : : : : : 138 : : : : : : 139 18.1 Detail of antialiased rasterization using local covers. : : : : : : : : : : : : : : 145 20.1 The ve non-Platonic non-solids. : : : : : : : : : : : : : : : : : : : : : : : : 154 20.2 The fractal forest. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 156 xiv SUMMARY Historically, computer graphics algorithms have been optimized for locally smooth surfaces. These methods fail when the surface is very rough or, in particular, fractal. This dissertation outlines the shortcomings of current computer graphics techniques for rendering fractal shapes. It then proceeds in developing and describing new ecient techniques for rendering a subset of fractal surfaces called linear fractals. The dissertation is separated into three sections. The rst of these, Analysis, provides a mathematical framework for linear fractals. It begins with a formal treatment of iterated function systems, followed with a parallel discourse on recurrent iterated function systems. The iterated function system, along with its recurrent generalization, provides a fundamental theoretical model for linear fractals. This part's third chapter compares and contrasts dierent denitions of the adjective \fractal." It concludes with a new denition, that of \locally fractal," which is justied with several examples. A discussion of linear and ane maps, the denition of linear fractal, and a summary of methods for measuring the dimension of linear fractals concludes the Analysis part of this dissertation. This dissertation's second part, Modeling, describes techniques for creating linear fractals. It begins with a comparison of implicit and explicit models, showing, algorithmically, how the recurrent iterated function system model can be treated as both. The next chapter discusses the collage theorem as a philosophy for modeling linear fractals. The third chapter details three interactive methods for using the collage theorem to model linear fractals, whereas the nal chapter discusses current methods for automatically modeling objects as linear fractals, determining the recurrent iterated function system computationally. The third part | the main part | of this dissertation, Rendering, describes methods for displaying the linear fractal described by a recurrent iterated function system. It begins with an outline of current methods, showing their shortcomings when applied to fractals in xv general. The next four chapters of this part are devoted to describing methods for determining occlusion | solving the hidden surface problem. Ray tracing is the technique employed for this end, and ecient methods for nding the intersection of a ray with a linear fractal are developed. This includes determining the necessary level of detail by deriving the size of a pixel in object space, and computing an initial set that optimally contains the linear fractal. Next, a shading method is developed, designed to allow the viewer to perceive fractal surface orientation, though not intended to be analytically correct. Finally, a chapter on the antialiased rasterization of linear fractal silhouettes, often fractals themselves, concludes this part of the dissertation. A conclusion exhibiting the results of these methods, and suggesting further research follows. Two appendices, one reviewing basic metric space theory, the other documenting the recurrent iterated function system codes used to generate the illustrations that decorate this dissertation, are found at the end of this dissertation. xvi LIST OF ABBREVIATIONS 8 For all. ; The empty set fg: [; t; \ ; 2-D, 3-D (a; b); [a; b] A; A; @A Union, disjoint union, intersection. Subset, (note: A A) superset. Two-dimensional, three-dimensional. The open interval fx : a < x < bg; the closed interval fx : a x bg: The closure, interior, and boundary of A: AnB The points in A that are not also in B: A+ The thickening of A by the ball of radius : a; A; A; A; A Br (x) The point a, the set A; the N -tuple of sets A; the collection of sets A; the space A : The closed ball of radius r centered at x: C The set of nonempty compact subsets of space. C The complex plane. card Number of elements in a set. xvii CFG Context-free grammar. CSG Constructive solid geometry. fBm Fractional Brownian motion. FFT Fast-Fourier transform. Gv ; Ge IFS Vertices and edges of digraph G: Iterated function system. L-system Deterministic Lindenmeyer parallel context free grammar. M T ; M ,1 The transpose, and inverse, of matrix M: MFLOPS Million oating-point operations per second. MIPS Million instructions per second. P () The power set (collection of all subsets) of a set. ; The real numbers, n-dimensional Euclidean space with the implied distance metric. R Rn R(o; ~d) The ray extending from o in the direction of ~d: RIFS Recurrent iterated function system. Ur (x) The open ball of radius r centered at x: xviii vi; (vi; vj ) The ith vertex and the edge from ith to j th vertex of G: w(); w A contraction, a family of contractions. w1 w2 The composition w1(w2()): w i x;~x; xi The i-fold composition of w: Homogeneous point, homogeneous vector, ith coordinate of point/vector x: xix Part I INTRODUCTION 1 Chapter 1 OVERVIEW This dissertation covers many topics. Its main contribution is in the rendering of linear fractal sets, in Part IV. It also provides a detailed treatment of iterated function systems and their recurrent extensions, and fractal geometry, in Part II. Part III, included for continuity, describes the various methods for using the mathematical structures from Part II to model objects, so they may be rendered by the methods in Part IV. The specic goals of this dissertation are outlined as follows. Part II develops the linear fractal model from a rm basis in topology and geometry. Chapter 3 introduces iterated function systems using the simplest results of set theory and metric spaces. Chapter 4 examines the recurrent iterated function system model, exposing subtleties. It is a parallel to Chapter 3. Chapter 5 properly denes \fractal," so that it embodies properties one associates with fractal sets. Finally, Chapter 6 claries the denition of a linear fractal. Part III describes various techniques for modeling linear fractals, begining with an overview in Chapter 7. Chapter 8 characterizes the collage theorem philosophy of object modeling Chapter 9 documents interactive systems for modeling linear fractals. Finally, Chapter 10 reports recent breakthroughs in the automatic modeling of linear fractals. 3 Part IV begins by explaining the unique problems associated with rendering fractals in Chapter 11, which are solved in the rest of the chapters. Chapters 12, 13, 14, 15 and 16 together derive an ecient ray-linear fractal intersection method for hidden surface determination Chapter 17 simulate the shading of linear fractal surfaces, thereby portraying surface orientation. Finally, Chapter 18 reduces aliasing from rasterization with an ecient area sampling method, thereby eliminating the \jaggies." 4 Chapter 2 FRACTALS IN COMPUTER GRAPHICS Fractals and computer graphics have historically enjoyed a symbiotic relationship, linking two relatively distinct areas of computer graphics: visualization and image synthesis. 2.1 From Visualization to Image Synthesis Initially, a new fractal model is formulated and computer graphics techniques are then used to understand it better. The \visualization" of fractal structures has greatly increased their popularity and study. B. Mandelbrot's rst book [Mandelbrot, 1977] describes, by way of concise visual analogy (initiator/generator pairs), the essence of fractal geometry. This one volume caused a resurgence of interest in this forgotten area of mathematics, directly inspiring the authorship of [Hutchinson, 1981] and [Falconer, 1985], to name a few. One rarely nds a paper on fractal geometry that lacks detailed computer-generated gures. As fractal models become better understood, through visualization, they become easier to control. Controllable fractal models are widely used for \image synthesis," simulating 5 textures and forms that vary from the natural phenomena one encounters everyday to the novel constructions of mathematics. The symbiosis continues: when new fractal models are discovered, they nd applications in computer graphics. As computer graphics becomes better equipped to render these models, these and other fractals become easier to visualize, study and control. 2.2 Categorizing Fractals Fractal models may be separated into two families: random and deterministic, based on their construction. The generation of both kinds of fractals may depend on streams of random numbers; the distinction is based on the inuence these random numbers have on the shape. Altering the stream of random numbers will change the shape of a random fractal but will not aect the shape of a deterministic fractal. 2.2.1 Random Fractals in Computer Graphics Random fractals are used for the simulation of natural phenomena. The basic random fractal model is a generalization of Brownian motion called \fractional Brownian motion" (abbreviated: fBm) [Mandelbrot & Ness, 1968]. Early researchers observed a resemblence between the graphs of fractional Brownian motion (fBm) and mountain silhouettes [Mandelbrot, 1982b], suggesting that fBm would be a useful tool for the image synthesis of various kinds of terrain. Soon, R. Voss was using fBm to create images of mountains, coastlines and clouds. Working in the frequency domain, he would construct a 1=f frequency distribution. Then, using a fast-Fourier transform (FFT), this noise was transformed from the frequency domain onto a 2-D grid of altitudes, called a height eld. These 3-D points were then polygonized, assigned realistic colors denoting altitude, shaded and scan-converted (rasterized, removing 6 hidden surfaces) to create an image of the terrain [Voss, 1988]. Shortly thereafter, A. Fournier and D. Fussel, simultaneously with but independent of L. Carpenter, devised a linear time algorithm of generating fractal mountains that was faster than the FFT method [Fournier et al., 1982]. Their new method recursively subdividing each polygon into four smaller polygons, displacing the altitude of new vertices. B. Mandelbrot severely criticized this method for its ignorance of the statistical properties of fBm and \creased" appearance [Mandelbrot, 1982a]. None the worse for wear, it still receives wide use due to its simplicity and speed. J. Kajiya, and later C. Bouville, developed ecient ray-tracing algorithms for rendering such recursively subdivided fractal terrains by creating a bounding volume hierarchy. Kajiya used \cheesecake" extents (extruded triangles) to bound all possible subdivisions of a triangle [Kajiya, 1983]. Bouville achieved a tighter bound using ellipsoids [Bouville, 1985]. G. Gardner created clouds and foliage using fractally textured ellipsoids. There, random fractal textures not only aected color but also opacity. Like Voss, Gardner's textures were created by Fourier methods, though it seems Gardner was concerned more with the appearance, and less with the statistical properties, of the texture [Gardner, 1984]. G. Miller used a context-sensitive subdivision scheme to reduce the \creasing" eects of previous subdivision methods. He also devised an ecient ray-tracing method, capitalizing on the height-eld nature of these terrain models [Miller, 1986]. K. Musgrave, with C. Kolb, created terrain models using more advanced basis functions, such as the noise functions specied in [Perlin, 1985]. Like [Miller, 1986], they also treated terrains as a height eld, developing a fast rendering algorithm called \grid tracing" [Musgrave et al., 1989]. 7 2.2.2 Deterministic Fractals in Computer Graphics Early illustrations of 3-D deterministic fractals were generated at coarse resolutions, conveying the basic rules of construction; pictures of the nal limit set were left to the viewer's imagination. One of the rst treatments of the special problems of rendering fractals was by A. Norton in 1982. His method of generating deterministic fractals, called \boundary tracking," was an early implementation of volume visualization. Boundary tracking generates a xed-resolution voxel approximation of a fractal set. It runs in object space, precisely O(nd ) space, where d is the box-counting dimension of the object. A z-buer was used for hidden surface removal. The gradient of the z-buer was used to simulate tangent planes along the surface, whose normal vector was used to diusely shade the set [Norton, 1982; Norton, 1989b]. J. Holbrook studied deterministic fractals using a brute force O(n3) computation. He also used an O(N ) point enumeration technique to create a point cloud approximation, though they were so sparse he characterized them as \starelds" [Holbrook, 1983; Holbrook, 1987]. The point enumeration technique was developed further by L. Kauman and D. Sandin. Shading and other depth cues were added to give the point cloud the perception of a 3-D surface. Unfortunately, the point clouds had large gaps that were dicult to ll in with this method [Hart, 1989; Sandin et al., 1990; Hart et al., 1990]. Later, a ray-tracing method was developed to eciently render deterministic fractals. This method ran in image space and little more than image time, so close-up renderings of fractal surfaces took only slightly longer than far-away renderings [Hart, 1989; Hart et al., 1989]. 2.2.3 Linear Fractals in Computer Graphics Linear fractals are a subset of deterministic fractals. They have the property that their construction rules are linear functions. 8 In 1984, A. R. Smith used formal languages to create linear fractal models he called \graftals" [Smith, 1984]. Graftals are also known as L-systems. Later, in 1988, P. Prusinkiewicz and others used L-systems to model many sophisticated botanical structures [Prusinkiewicz et al., 1988; Prusinkiewicz & Hanan, 1989; Prusinkiewicz & Lindenmayer, 1990]. In 1985, iterated function systems were introduced to the computer graphics community, by one of their inventors: S. Demko, where they were used in 2-D for texturing and shape synthesis [Demko et al., 1985]. The other inventor: M. Barnsley followed this up with by showing the power of iterated function systems as an image synthesis tool [Barnsley et al., 1988]. There he alluded to their use in image compression but these methods have only recently been revealed [Jaquin, 1991]. The iterated function system model is commonly used in 2-D, sometimes as art [Lescinski, 1991]. Extensions to 3-D are mentioned in [Foley et al., 1990] but they suggest the use of L-systems instead. The following quote, from [Demko et al., 1985], calls for the development of graphics algorithms for 3-D iterated function systems: [Two-dimensional linear fractals] represent the simplest application of [iterated function systems]. For real objects, they depict only a kind of silhouette, but this in no way represents the limits of the technique. The extension of our methods to three-dimensional objects is the most important next step. It wasn't until very recently, in [Hart & DeFanti, 1991], that computer graphics algorithms were developed specically for modeling and rendering 3-D iterated function systems. Such algorithms are the subject of this dissertation. 9 10 Part II ANALYSIS 11 Chapter 3 ITERATED FUNCTION SYSTEMS The term \iterated function system" (abbreviated: IFS) was coined in [Barnsley & Demko, 1985] to describe a general framework of dynamics. However, most of the results about the IFS model were presented in [Hutchinson, 1981]. None of the theorems or proofs in this chapter are based on original ideas. However, the wording, layout and techniques used to make these theorems and their proofs coherent within a single chapter is new. Two examples: First, the proof of Theorem 3.4 is based entirely on the second half of the proof of the Blaschke selection theorem found in [Falconer, 1985]. Compare this short proof to the ve part, two page proof of Theorem 2.7.1 in [Barnsley, 1988]. Second, the denition of \overlapping construction" from [Barnsley, 1988] only applies to connected sets and requires a dicult code space argument. Here, its denition is extended and uses only the simple terminology of metric spaces. The term \iterated function system" is dened far from the beginning of the chapter. This placement makes it easier to explain why this denition may dier from denitions by other authors. Immediately following it is the proof that every IFS species a unique set, called its \attractor." This theorem is titled the \Fundamental Theorem of Iterated Function Systems," for it is the attractors that make iterated function systems interesting. 13 3.1 Lipschitz Functions, Contractions and Similtudes A map is a function from one space into another. Most maps in this discussion take a metric space into itself. The category of map properties dened in this section describe the relationship of the distances between two points before and after a map is applied. 3.1.1 The Lipschitz Property A map is \Lipschitz" when the ratio of the distances of the images of two points to that of the original two points is bounded by a constant. In other words, the images of points under a Lipschitz map can only get so far from each other, depending on how close they were before. Denition 3.1 A function w satises the Lipschitz condition on a metric space (X;d) if and only if there exists a nite non-negative s such that d(w(x); w(y)) sd(x; y) (1) for all x; y 2 X: The minimum value s such that (1) is true is called the Lipschitz constant of w and is dened (2) Lipw = sup d(wd(x(x;); wy)(y)) : X x;y2 3.1.2 Contractions Contractions are Lipschitz functions, with Lipschitz constant less than one. They bring points closer. Denition 3.2 A map w from metric space (X;d) to itself is a contraction if and only if d(w(x); w(y)) < d(x; y) 14 (3) for all x; y 2 X: In this context the Lipschitz constant is commonly called the contractivity factor of the map. 3.1.3 The Contraction Mapping Principle The following result regarding contractions, the Contraction Mapping Principle, is a useful tool for existence proofs. It is an old result, with respect to the rest of this chapter, that can be found in any number of texts ([Kaplansky, 1977] for example). We will use it later to prove the Fundamental Theorem of Iterated Function Systems. Theorem 3.1 (Contraction Mapping Principle) Let (X; d) be a complete metric space and let w : X ! X be a contraction on X: Then w has a unique xed point in X: Proof: To show that at least one xed point exists, pick any point x 2 X and iterate w on it, creating the orbit x0 = x; x1 = w(x); x2 = w w(x); : : : : (4) (5) (6) The distances between successive points in this orbit can be characterized from (1) as d(xi+1; xi) sd(xi; xi,1): (7) where s = Lipw: This gives, by induction, d(xi+1; xi) sid(x1; x0): Thus fxig is a Cauchy sequence and converges in a complete metric space. 15 (8) Let x 2 X be the limit point of the sequence. The point x is xed under w since w(x) = w(ilim x) !1 i = ilim x !1 i+1 = x: (9) (10) (11) Now, suppose there were at least two distinct xed points x; y 2 X: Then d(w(x); w(y)) = d(x; y): (12) By (3), the map w cannot be a contraction. Thus, there can only be one xed point of w: 2 The following corollary is obvious from the previous theorem. It is explicitly declared here since it implies an important consequence of the Fundamental Theorem of Iterated Function Systems. Corollary 3.2 Let w; X be as in Theorem 3.1. Then all points in X converge to the same xed point under iteration of w: Proof: This was shown for a specic x in the rst half of the previous proof. Since this x was arbitrarily chosen, all points in X converge to a xed point of w for which the second half of the proof shows there to be only one. 2 3.1.4 Similtudes Finally, if equality holds for (1) then the map is called a similtude. Denition 3.3 A map w from a metric space (X; d) to itself is a similtude if and only if there exists a nite non-negative s such that d(w(x); w(y)) = sd(x; y) (13) for all x; y 2 X: Similtudes not only change the size of a set uniformly, but rotate, reect and translate as well. The image of a set under a similtude is called a similarity. 16 3.2 The Hausdor Metric The Hausdor metric is a useful tool in analyzing the IFS model. It measures the distance between two sets. For its denition, we will need the distance from a point to a set. 3.2.1 The Distance From a Point To a Set The following function can be found in many metric space texts such as [Kaplansky, 1977]. It denes the distance from a point to a set as the distance from the point to it closest neighbor in the set. Denition 3.4 The distance d(x; A) between the point x 2 X and set A X in the metric space (X; d) is given by d(x; A) = yinf d(x; y): 2A (14) 3.2.2 The Distance Between Two Sets: The Hausdor Metric The following distance function for pairs of sets, the Hausdor metric, was found useful in [Hutchinson, 1981], to prove the Fundamental Theorem of Iterated Function Systems. Denition 3.5 The Hausdor metric h measures the distance between sets A; B X as h(A; B ) = supfd(x; B ); d(y; A)jx 2 A; y 2 B g: (15) farthest from any point in B is found. Then the point y 2 B farthest from any point in A is found. The larger of these two maximal distances determines the Hausdor distance between A and B: 3.2.3 The Thickening of a Set The Hausdor distance metric can be dicult to comprehend at rst. The following denition and theorem make the Hausdor distance easier to visualize. 17 A x d(y,A) d(x,B) y B Figure 3.1: The Hausdor metric between A and B: We can \thicken" a set by including its surrounding points. Denition 3.6 The thickening of a set A by is the set A + = fx : d(x; A) g (16) This is equivalent to a convolution of the set by a closed ball of radius (as it is sometimes dened). The Hausdor distance is given in terms of the smallest such thickening of one set that contains the other and vice-versa [Barnsley, 1988]. In some texts, such as [Falconer, 1985], this is how Hausdor distance is dened. Theorem 3.3 For any two subsets A; B of metric space (X;d) : Proof: Let h(A; B ) = inf f : A B + ; B A + g: (17) B = sup d(x; B ): (18) x2A 18 Then B is the smallest value such that A B + B for if B were any smaller, then some point in A would be farther from B than B and so, would not be in its thickened version. Similarly, let A = sup d(y; A): (19) y2B Then A is likewise the smallest value such that B A + A: Looking at their maximum, we see = maxfA; B g = maxfsup d(x; B ); sup d(y; A)g x2A y2B = h(A; B ): (20) (21) (22) Hence the smallest value such that both A B + and B A + is precisely the Hausdor distance of A and B: 2 In Figure 3.1, the Hausdor metric was determined by d(x; B ): In Figure 3.2, the set B is thickened by h(A; B ): This thickening necessarily includes A by Theorem 3.3. Notice the dierence in use of d(x; B ) between Figures 3.1 and 3.2. 3.2.4 The Complete Metric Space of Compact Subsets One could construct a space whose \points" are sets from some other space. Then the Hausdor distance could be used to make this space a metric space. One possible space is P (Rn); the set of all subsets of Rn: However, the space (P (Rn); h) is not a metric space, for h(A; A) = 0 for all A: Since A6= A for all but two sets in Rn; h is not a valid metric on this space. A subspace of P (Rn) is C ; the collection of non-empty compact subsets of Rn: Now (C ; h) is a valid metric space since h meets the requirements for a metric on C : Furthermore, we have the following classic result. 19 B+ε A x d(x,B) B Figure 3.2: Set B; thickened by the minimal value = d(x; B ) = h(A; B ); so that B + contains A: Theorem 3.4 The metric space (C ; h); where C is the collection of all non-empty compact sets of Rn and h is the Hausdor metric, is complete. This short proof is based on the second half of the proof of the Blaschke selection theorem in [Falconer, 1985]. Proof: Let fKi g be a Cauchy sequence of compact sets Ki 2 C : That is, given an > 0 there exists an N such that for any i; j > N; h(Ki ; Kj ) < : 20 (23) Let K= 1 [ 1 \ j =1 i=j Ki (24) which, like the Ki, is non-empty and, since it is the intersection of a decreasing sequence of compact sets, is compact. Given an > 0 we have by (23) that there exists a j such that 1 [ Ki Kj + (25) i=j and thus K Kj + (26) and we are halfway there. Let x 2 Kj ; which, by (23), implies x 2 Ki + for all i j: Hence, if k j we have 1 ! [ x2 Ki + : (27) For each k there exists at least one point i=k yk 2 1 [ i=k Ki (28) such that jyk , xj : This forms a sequence fyk g of points from a compact space, with a subsequence necessarily converging to a point y; with jy , xj : 1 [ 1 \ y2 Ki = K (29) thus x 2 K + and so k=1 i=k Kj K + ; (30) which, with (26) and Lemma 3.3, means that fKi g ! K in the Hausdor metric. 2 3.3 The Hutchinson Operator The Hutchinson operation applies a nite collection of maps to a set. The result is the union of the images of the original set under the maps in the collection. 21 3.3.1 Denition Denition 3.7 The Hutchinson operator of a nite set of maps fwigNi=1 on a set A is written w(A) and is dened [ w(A) = wi(A): (31) i=1:::N Suppose we have a collection of three similtudes of the form wi(x) = x +2 ai ; (i = 1; 2; 3) (32) which scales sets by one-half, then translates the set by ai=2: The images of various sets under the Hutchinson operator of this collection are shown in Figure 3.3. w w w w Figure 3.3: A Hutchinson operator applied to various initial sets. 3.3.2 Hutchinson's Lemma The Hutchinson operator will be a convenient shorthand device for later proofs. It is also a contraction on the metric space of non-empty compact subsets. 22 Theorem 3.5 (Hutchinson's Lemma) Let w be a nite collection of contractions w : Rn ! Rn with Lipschitz constants Lipw < 1 Then the Hutchinson operator w : C ! C is a contraction on the metric space (C ; h): Proof: First, w is continuous; it takes compact sets to compact sets. Second, for any A; B 2 C ; 0 1 [ [ h(w(A); w(B )) = h @ wi(A); wj (B )A i=1:::N j =1:::N h(wi(A); wi(B )) where (33) i=1sup:::N sh(A; B ) (34) (35) s = i=1 max Lipwi :::N (36) is the maximum Lipschitz constant of the contractions of w. Since s 2 [0; 1); w is a contraction on (C ; h): 2 This proof is also valid for countable collections of maps, so long as the Lipschitz constants of its maps are bounded well away from one. In other words, this requires a limit contractivity < 1 where sup Lipwi (37) i=1:::1 3.4 Denition of Iterated Function System Denitions of IFS vary. The most general descriptions list the metric space, a nite set of maps and a corresponding set of probabilities. For the sake of simplicity and clarity, the following abridged version will suce for our purposes. Denition 3.8 An iterated function system is a nite collection w = fwigNi=1 of contractions wi : Rn ! Rn: 23 This dissertation focuses on the geometry described by an IFS. To this end, the probabilities often associated with an IFS, which aect the distribution of points enumerated by the dynamical system an IFS describes, do not alter the resulting shape these points describe. Hence, the probabilities will not be used in the context of this dissertation. Some authors do not require the maps of an IFS to be contractive. In the terms of these authors, the IFS dened in Denition 3.8 would be called \hyperbolic" [Barnsley & Demko, 1985]. We will be concentrating on linear maps (Chapter 6). If any map is not contractive in an IFS of linear maps, then the unique attractor of the IFS, as dened in the next section, will be the entire metric space | an undesirable result indeed. 3.5 The Fundamental Theorem of Iterated Function Systems As mentioned in the previous section, an IFS describes a unique set: its attractor. The attractor is invariant under the Hutchinson operator of the IFS and is very often fractal. The following theorem, fundamental to the study of iterated function systems, asserts that, for any IFS, such a set always exists. It rst appeared in [Hutchinson, 1981]. Its proof is relatively trivial given the earlier theorems of this chapter. Theorem 3.6 (Fundamental Theorem of Iterated Function Systems) For any IFS w = fwigNi=1 there exists a unique non-empty compact set A 2 Rn; the invariant attractor of the IFS, such that A = w(A): (38) Proof: The Hutchinson operator, w; is a contraction (Theorem 3.5) on the complete metric space (C ; h) (Theorem 3.4). Hence w has a unique invariant xed point A 2 C (Theorem 3.1). 2 24 The unique xed point of the Hutchinson operator of (32) is called \Sierpinski's gasket" [Mandelbrot, 1982b]. This attractor is shown in in Figure 3.4. w Figure 3.4: Sierpinski's gasket. The 3-D version of this attractor is called \Sierpinski's tetrahedron" and is shown in Figure 3.5, rendered using the techniques from Part IV. The following corollary explains the name \attractor," and can be found in [Hutchinson, 1981]. The unique form of its proof is due to the author. Corollary 3.7 Let w be an IFS with attractor A; and let B be any bounded non-empty set in Rn: Then lim wi(B ) = A: i!1 (39) Since B is bounded, there exists a compact set B + B: Since B is non-empty, there exists a compact set B , B: By Corollary 3.2 and Theorem 3.6, we get the following loop implying equality, Proof: A ilim wi(B , ) ilim wi(B ) ilim wi(B +) A:2 !1 !1 !1 25 (40) Figure 3.5: Sierpinski's tetrahedron. 26 3.6 The Open-Set Condition versus Overlapping Construction One property of an IFS, dened in [Hutchinson, 1981], is the open-set property. It determines the uniqueness of the points in the attractor. Denition 3.9 An IFS w = fwigNi=1 meets the open-set condition if and only if there exists an open set U 2 Rn such that (a) w(U ) U and (b) wi (U ) \ wj (U ) = ; when i 6= j: Iterated function systems with this property are often easier to analyze. Topological properties are simpler to compute on such attractors. Furthermore, many rendering methods are most ecient on attractors of iterated function systems with the open-set property. An open-set IFS does not necessarily produce a disconnected attractor, such as the Cantor set in Figure 3.6 (left, black). In [Barnsley, 1988], IFS attractors that meet the open-set condition but are still connected are called \just-touching." Sierpinski's gasket is shown in Figure 3.6 to be open-set. It is an example of a just-touching attractor. The overlapping construction of an attractor is the converse of the open set property. In [Barnsley, 1988], overlapping construction was dened only for connected attractors. This new denition extends the overlapping property to disconnected attractors, such as the overlapping Cantor set from [Falconer, 1987]. Denition 3.10 The attractor A 2 Rn of an IFS w = fwigNi=1 is of overlapping construction if and only if w does not satisfy the open-set property. 27 U w(U) A Figure 3.6: The Cantor set (left, black) and Sierpinski's gasket (middle, black) surrounded by open sets (light gray) which contain their images under the Hutchinson operator (dark gray). A legend appears on the right. 3.7 Disconnectedness The following two theorems on disconnected attractors, and their proofs, are found in [Hutchinson, 1981]. They are good examples of pre-visualization | the ability to see certain topological properties of an attractor by inspection of its IFS. 3.7.1 Disjoint Images of the Attractor Often one can determine if the attractor of an IFS is connected by a quick inspection of its contractions. If the contractions map the attractor into distinct components, then the attractor is disconnected. Theorem 3.8 Let w = fwigNi=1 be an IFS with attractor A Rn such that A= N G i=1 wi(A): 28 (41) Then A is totally disconnected. Proof: Let x; y be any two distinct points in A: By (41), x and y are either in the same component x; y 2 wi(A) or in dierent components x 2 wi(A); y 2 wj (A); i = 6 j: The rst case shows x and y to be in disconnected components so we concentrate on repeated occurences of the second case under iteration. Let d = jx , yj: Furthermore, suppose x and y are both members of the same component wi wi2 wi1 (A): But the diameter of this component is diamwi wi2 wi1 (A) si si2 si1 (42) k k k which can be made arbitrarily small. Eventually this diameter will be less than jx , yj; excluding one of them from the connected component. Thus, x and y do not belong to the same connected component. Since x and y are arbitrary members of A; the set is totally disconnected. 2 3.7.2 Sum of Lipschitz Constants Furthermore, disconnected attractors arise when the contractivity factors of an IFS sum to less than one. Theorem 3.9 Let w = fwigNi=1 be an IFS with attractor A such that N X i=1 si < 1 (43) where si is the contractivity factor of wi : Then A is totally disconnected. Proof: From (43), we see that the sum of the diameters of the components is less than the diameter of the sum of components. Symbolically, diam(A) > diam(A) N X i=1 29 si = N X i=1 diam(wi(A)): (44) Let diamn(A) = N X N X i1 =1 i2 =1 diam(A) = N X diam(wi1 wi2 wi (A)) in =1 N N XX n N X i1 =1 i2 =1 in =1 N !n X diam(A) si i=1 si1 si2 : : : si n (45) (46) (47) be the sum of the diameters of the components of the attractor. Equation (47) can get arbitrarily small given a suciently large n: Let x; y be two distinct points in A: Let n be large enough that diamn(A) < jx , yj: Then all of the components of the attractor, laid end to end, would still not be enough to connect point x to point y: Since this is true for all x; y 2 A; A is totally disconnected. 2 30 Chapter 4 RECURRENT ITERATED FUNCTION SYSTEMS The recurrent iterated function system (abbreviated: RIFS) model is an enhancement of the IFS model. Like the IFS model, a RIFS contains a nite set of contractions, but also restricts the composition of these maps. This enhancement greatly increases the power of this model, allowing more sets to be created using fewer maps. Recurrent sets were rst discussed in [Dekking, 1982] where an L-system model was described (see Chapter 7). The rst thorough treatment of the RIFS model for their generation appears in [Barnsley et al., 1989]. Several others have concurrently investigated this model under the adjective \recurrent" [Cabrelli et al., 1991] and its aliases \Markov" [Womack, 1989], \controlled" [Prusinkiewicz & Lindenmayer, 1990], \language restricted" [Prusinkiewicz & Hammel, 1991] and \hierarchical" [Peitgen et al., 1991]. The subtle distinctions between each of these models is described in this chapter shortly after we dene RIFS. Nonetheless, these models describe the very same kind of restriction on map composition, which will be denoted using graph theory. 31 4.1 Graph Theory The RIFS model requires a specication of allowable map compositions. A relation digraph1 whose nodes correspond to maps and directed edges correspond to allowable compositions suces and appears to be the most general description for restrictions of two map compositions. As such, we proceed with the denition of a digraph, diering slightly from [Deo, 1972]. 4.1.1 Denition Graphs are described here as an ordered pair of sets. The rst is the set of vertices, the second, the set of edges. Edges are denoted as ordered pairs of vertices. Denition 4.1 A digraph G is a set of N vertices Gv = fvigNi=1 and a set of edges Ge which are ordered pairs (vi; vj ); 1 i; j N where (vi; vj ) 2 Ge implies G contains a directed edge from vi to vj : Since Ge is a set, the same edge cannot appear twice in G: Thus the cardinality of Ge is at most the cardinality of Gv squared. The number of edges into a vertex is called the \in-degree" of the vertex. Similarly, the number of edges out of a vertex is called the \out-degree" of the vertex. 4.1.2 Cycles The following denition will help to dene several properties of digraphs. Denition 4.2 A directed (undirected) path of vertices vi1 ; vi2 ; : : : ; vi connects vertex vi1 to vi if and only if for each pair of neighboring vertices vi ; vi +1 the edge (vi ; vi +1 ) 2 Ge (or the edge (vi +1 ; vi ) 2 Ge ): k j k j 1 j A digraph is a directed graph. 32 j j j A cycle of edges is simply a path from a vertex to itself. Denition 4.3 Digraph G contains a (directed, undirected) cycle if and only if there exists a vertex vi 2 Gv such that there exists a (directed, undirected) path of vertices in Gv connecting vertex vi to itself. The ambiguous term cycle will imply directed cycle in this and following chapters. A cycle may be as simple as the edge (vi; vi): An \acyclic" digraph contains no cycles. 4.1.3 Strongly versus Weakly Connected Digraphs We will need the following denitions for digraph connectedness, which agrees with [Deo, 1972]. Denition 4.4 A digraph G is (strongly, weakly)-connected if and only if every pair of vertices vi ; vj 2 Gv is connected by a (directed, undirected) path of vertices. We follow the convention, implied from this denition, that strongly-connected implies weakly-connected, which diers from [Deo, 1972]. Hence, a weakly-connected digraph may or may not be strongly-connected too. If digraph G is weakly connected, then the cardinality of Ge is at least one less than the cardinality of Gv : If G is strongly connected, then the cardinality of Ge is at least the cardinality of Gv : A strongly-connected digraph necessarily contains a cycle. A strictly weakly-connected digraph necessarily contains no cycle. 4.1.4 Condensation Condensation \collapses" digraphs into simpler representative digraphs [Deo, 1972]. 33 Denition 4.5 Let G = (Gv ; Ge ) be a digraph. Then the condensation of G is a digraph where each vertex corresponds to a unique maximal strongly-connected subgraph of G and each edge represents a set of edges from one maximal strongly-connected component of G to another. As noted in [Deo, 1972], the condensation of any strongly-connected digraph is a digraph containing a single vertex and no edges. Also, the condensation of a digraph contains no circuit. 4.2 Set N -tuples The recurrent versions of the standard IFS analysis tools operate on N -tuples of sets. These will be denoted in bold as A = (A1; A2; : : :; AN ): (1) A set N -tuple A of n-dimensional sets Ai belongs to the n N dimensional space (Rn)N : Moreover, functions on these sets in this space are denoted with a superscripted N (i.e. w ! wN ). One can think of (Rn)N as N copies of Rn overlayed on top of each other. A set A R2 is better understood by drawing each of its N parts Ai on a separate clear sheet. Then the set A can be visualized in the space (R2)N by overlaying all N transparent sheets [Barnsley et al., 1989]. The subset relation in (Rn)N is dened as the logical \and" of the subset relation of its components. Denition 4.6 Let A = (A1; A2; : : :; AN ) and B = (B1; B2; : : :; BN ): Then A B if and only if Ai Bi for all i = 1 : : : N: Notice that if A B then [iAi [iBi: 34 4.3 The Recurrent Hausdor Metric The extension of the Hausdor distance metric, as originally dened in [Barnsley et al., 1989], combines the individual Hausdor distances of the component sets using the chessboard metric. Denition 4.7 The recurrent Hausdor metric hN measures the distance between two subsets A = (A1; A2; : : : ; AN ) and B = (B1 ; B2; : : : ; BN ) of (Rn)N as hN (A; B) = i=1 max h(Ai; Bi): :::N (2) As in the last chapter, we will construct a metric space of compact sets using the Hausdor metric as a distance metric. Here, a set A (Rn)N is compact if and only if every one of its parts Ai is compact in Rn: 4.4 The Recurrent Hutchinson Operator The recurrent Hutchinson operator, as rst developed in [Barnsley et al., 1989] is a generalization of the standard Hutchinson operator. It creates a new N -tuple as the selective union of images of sets from the original N -tuple. Denition 4.8 Let (fwigNi=1; G) be an RIFS. Then the recurrent Hutchinson operator wN : (Rn)N ! (Rn)N is dened wN (A) = (w1(A); w2 (A); : : :; wN (A)) (3) where A = (A1; A2; : : :; AN ) 2 (Rn)N and wj ((A)) = [ fi:(vi;vj )2Ge g 35 wj (Ai): (4) For example, consider the following four maps (5) wi(x) = x + (21; 1) where i = 1 : : : 4; taking all combinations of (1; 1): Each of these maps takes the closed square [,1; 1] [,1; 1] to one of its quadrants. 1 2 1 2 3 4 3 4 Figure 4.1: The complete digraph of four vertices and the corresponding digraph where the same vertex cannot be visited twice in a row. Impose a restriction on the composition of these four maps, using the digraph in Figure 4.1 (right). In the latter case, the same map cannot be used twice in a row. The recurrent Hutchinson operation takes each one of four images of the square, reduces it by one-half, and places in the four quadrants of the original square less the image of the quadrant they are replacing. Figure 4.2 shows this generation sequence. In Figure 4.2, the initial set is a square. One iteration of wN produces the same square when the digraph in Figure 4.1 (left) is used, but produces only the shaded regions when the digraph in Figure 4.1 (right) is used. The empty boxes in Figure 4.2 denote the sections of the images under each of the maps that would appear under the standard Hutchinson operator, but do not appear under the recurrent Hutchinson operator. As before, the recurrent Hutchinson operator is a contraction. However, this proof will need the following result. Its proof uses thickenings, but is otherwise based on the version 36 N N w N w w Figure 4.2: A recurrent Hutchinson operator applied to a square. that appears in [Barnsley et al., 1989]. Lemma 4.1 For collections A = fAigNi=1; B = fBigNi=1; where Ai; Bi are subsets of metric space (X; d); [ h( i=1:::N Proof: Let Ai; [ j =1:::N = h( Then [ i=1:::N For each 1 i N we have (6) i=1:::N [ i=1:::N Ai Ai and specically Bj ) sup h(Ai; Bi): Ai; [ [ j =1:::N [ j =1:::N Bi): (7) Bj + ; (8) j =1:::N Bj + (9) Ai Bi + B (10) i where B is minimal. Still, B : Likewise, for each i there is a corresponding A : For each i the maximum thickening radius matches or exceeds the original thickening radius i i i maxfA ; B g i 37 i (11) as does its maximum over i: The proof is complete once the reader realizes that the lefthand side of (11) is the Hausdor distance between Ai and Bi and the right-hand side is the Hausdor distance between the union of Ai and the union of Bi: 2 This argument is also valid for the maximum Hausdor distance over countable collections of sets. We may now state and prove a recurrent version of Hutchinson's Lemma. Theorem 4.2 Let wN be the recurrent Hutchinson operator of RIFS (fwigNi=1; G): Then wN is a contraction on the metric space (C N ; hN ): Proof: Let A = (A1; A2; : : :; AN ); B = (B1; B2; : : : ; BN ) 2 (Rn)N : Consider the following chain of inequalities hN (wN (A); wN (B)) = jmax h(wj (A); wj (B)) =1:::N i;jmax h(wj (Ai); wj (Bi)) =1:::N i;jmax s h(Ai; Bi) =1:::N j s i=1 max h(Ai; Bi) :::N = shN (A; B) (12) (13) (14) (15) (16) s = i=1 max Lipwi: :::N (17) where Since s < 1; wN is a contraction on (C N ; hN ): 2 4.5 Denition As before, we have postponed denition the denition of RIFS so the reader will better understand its dierences with other's denitions. 38 Denition 4.9 A recurrent iterated function system is a nite set of contractions fwigNi=1 from Rn into itself, along with an N -vertex weakly-connected digraph G = (Gv ; Ge ) containing some directed cycle from every vertex vi 2 Gv back to itself. The digraph G is used to restrict map compositions. The iteration sequence wj wi is allowed if and only if a directed edge from vertex vi to vertex vj exists in G: In order for the Chaos Game (Chapter 9) to work on an RIFS, it must be strongly connected. The rendering techniques developed in later chapters will work on any weaklyconnected RIFS. It is the connectedness of the digraph that dierentiates the many dierent names for this IFS enhancement. In [Barnsley et al., 1989], the term \recurrent," as applied to a rowstochastic matrix that described the digraph, implied the digraph was strongly connected, though they are careful to mention that (w; G) is a RIFS \whether or not [the row-stochastic matrix of G] is technically recurrent [i.e. G is strongly connected]." In [Womack, 1989], a RIFS was termed a \Markov iterated function system." A Markov IFS also used a stronglyconnected digraph, also described by a row-stochastic matrix. In [Reuter, 1987], a sunower IFS attractor was distrubuted into a eld of sunowers using a second IFS. In [Peitgen et al., 1991], this kind of RIFS is known as a \hierarchical iterated function system" which seems to imply a RIFS with a strictly weakly-connected digraph controlling map compositions. Hierarchical attractors have one IFS attractor at one level, then switch to another IFS at lower levels of detail. In [Prusinkiewicz & Lindenmayer, 1990], a RIFS was called a \controlled iterated function system." Such an IFS was enhanced by a weakly-connected \control" graph. In [Prusinkiewicz & Hammel, 1991], a RIFS was described as a \language-restricted iterated function system." Here, the weakly-connected digraph G was described by a nite-state automaton where all nodes were \terminal." 39 4.6 The Fundamental Theorem of Recurrent Iterated Function Systems As before, we consider it of fundamental importance that a unique set be associated with an RIFS. The following theorem and proof are based on [Barnsley et al., 1989]. Theorem 4.3 For any RIFS (fwigNi=1; G) there exists a unique N -tuple A 2 (Rn)N of non- empty compact sets such that A = wN (A): (18) Proof: As in the proof of Theorem 3.6, since (C N ; hN ) is complete (the nite product of complete spaces: Theorem 76 of [Kaplansky, 1977]) and wN is a contraction on (C N ; hN ); the Contraction Mapping Principle implies that wN posesses a unique xed point in (C N ; hN ): 2 The attractor of a RIFS is not an N -tuple, for we want to deal in an n-dimensional space, not an n N -dimensional space. Thus, we have, from [Barnsley et al., 1989], the attractor of a RIFS. Denition 4.10 Let A = (A1; A2; : : :; AN ) be a set such that it is invariant under the recurrent Hutchinson operator of a RIFS (w; G); wN (A) = A: (19) Then the attractor A of the RIFS is given by A= [ i=1:::N Ai : (20) The attractor of the IFS dened by the maps (5) and the digraph in Figure 4.1 (left) has the closed square [,1; 1] [,1; 1] for an attractor. Imposing a restriction on the IFS of this 40 Figure 4.3: The fractal pound sign. simple attractor can create a much more interesting set. Using Figure 4.1 (right) creates a RIFS whose attractor is shown in Figure 4.3. The focus of this dissertation is on the rendering of such attractors in 3-D. The fractal pound sign can be extended into 3-D as an RIFS whose maps take the cube: [,1; 1] [,1; 1] [,1; 1] into its eight octants, and whose digraph does not allow the same map to be applied twice in a row. The resulting attractor in 3-D is shown in Figure 4.4. Finally, we have the useful result that any initial set N -tuple will iterate to the attractor of an RIFS. Corollary 4.4 Let (w; G) and A be as in the previous theorem and let B be an N -tuple of non-empty bounded sets. Then nlim !1(w N )n (B) = A: 41 (21) Figure 4.4: The 3-D fractal pound sign. 42 Proof: Since each component of B is bounded, there exists a compact set B + Bi for all Bi 2 B: Let B+ = (B;+ B +; : : :; B +): (22) Since each component of B is non-empty, there exists a compact set Bi, Bi for all Bi 2 B: Let B, = (B1,; B2,; : : :; BN, ): (23) Then, by Corollary 3.2 and Theorem 4.3, A ilim (wN )i(B,) ilim (wN )i(B) ilim (wN )i(B+ ) A: !1 !1 !1 As in the last chapter, they are all equal. 2 43 (24) 44 Chapter 5 WHAT IT MEANS TO BE A FRACTAL One of the most controversial areas of computer graphics in recent years is fractal geometry, characterized here as the study of forms of excessive dimension. Its progenitor, B. Mandelbrot, coined the word \fractal" publicly in 1975 to describe the recurring patterns across scale he had observed in natural phenomena. 5.1 Denitions of Fractal One of the controversies of fractal geometry is the denition of fractal itself. The original denition compares a sets real Hausdor dimension with it integral topological dimension [Mandelbrot, 1982b]. Denition 5.1 (The Original Denition) A set A is fractal if its Hausdor dimension is strictly greater than its topological dimension. Formally, this is an implication, not a denition, since the \only if" part is not included. It shows suciency, not necessity, for a set to be fractal. There are many sets that fall in the 45 so-called \gray area" of fractal geometry that fail to meet the requirements of this denition but are still recognized as fractal. Currently, it is generally accepted that the \fractal" property needs no strict denition. The term \fractal" now simply refers to some kind of symmetry across scale. One fundamental property of fractals is that they have detail at all magnications. When this detail repeats, either exactly or statistically, the object posesses a symmetry across scale and is understood to be fractal. When this detail is asymetric across scale, then the object is probably better classied as a \multifractal" [Falconer, 1990]. Regardless of any controversies in the denition of fractal, it is still quite important to keep the Hausdor dimension in mind when studying fractal sets, as shown most explicitly by the recent writings of K. Falconer, which inspired many of the chapters of this part of the dissertation. Falconer's rst book on the subject [Falconer, 1985], the so called \last book of Besicovich," the word \fractal" only appears in the preface, though the majority of the book is devoted to a thorough study of the topological properties of fractals. The main lesson of this book and its later rewriting [Falconer, 1990] is the importance of Hausdor measure and dimension regardless of the current state of fractal geometry. Except for the nal section, this chapter is simply selections from [Falconer, 1985] and [Falconer, 1990]. The nal section, Section 5.6, examines some counterexamples in fractal geometry: sets accepted as fractal but with equal Hausdor and topological dimensions. The contradictions that arise from these counterexamples are settled with the proposal of a new denition of fractal | a new view of \what it means to be a fractal." 5.2 Hausdor Dimension The Hausdor dimension is a generalization of the topological dimension from integers to real numbers. It is based on the Hausdor measure, which is itself, a generalization of the 46 integral-dimensioned Lebesgue measure. 5.2.1 Denition The rst step is the denition of a -cover, which is a collection of sets that separate a set into - or smaller-sized sections. Denition 5.2 A collection U of sets U Rn is a -cover of A Rn if and only if A (U is a cover) and [ U 2U U; 0 < diam(U ) ; 8U 2 U (1) (2) (the diameter of every element of U is smaller than ). The reader may recall the term \cover" from the denition of a compact set as one for which a nite open cover exists (Denition A.7). -covers alter this concept by allowing innite covering sets, but of constrained size. Notice that any bounded set has a nite -cover for any > 0: Thus -covers are used to show geometric, not topological, properties. An \outer measure" is a positive real function on sets that is null on empty sets, smaller on subsets than on the whole. Furthermore, the outer measure of a union of sets is less than or equal to the sum of the outer measures of the individual sets. The Hausdor measure is an outer measure. Denition 5.3 The d-dimensional Hausdor measure Hd (A) of set A is Hd (A) = lim inf !0 where fUig is a countable delta-cover of A: 47 1 X i=1 diam(Ui )d (3) The Hausdor measure is similar to the Lebesgue measure (which is the basis of the integral) in that it is the sum of the sizes (to the dth power) of innitesmal sets that, together, cover the set A: When d = 1; the Hausdor measure is proportional to the length, d = 2 to area and d = 3 to volume. Hence, the Hausdor measure is an extension of length, area and volume to real dimensions. In fact, some formulations of Hausdor measure include a constant multiple so the n-dimensional Hausdor measure equals the n-dimensional Lebesgue measure Ld (i.e. length, area, volume) for non-negative integers n: Now, the length of a ball is innite and the volume of a line segment is zero. Likewise, the d-dimensional Hausdor measure of an e-dimensional solid will be innite if d < e and zero if d > e: When d = e the Hausdor measure may be zero, positive or innite. This critical value d = e of the Hausdor measure on A is called the Hausdor(-Besicovich) dimension of A: Denition 5.4 The Hausdor dimension of set A is Notice that also dim A = supfd : Hd (A) = 1g: (4) dim A = inf fd : Hd (A) = 0g: (5) 5.2.2 Properties The Hausdor dimension posesses several properties that are useful in its estimation. The rst is that the dimension remains invariant under scaling. Theorem 5.1 Let A Rn and s > 0: Then Hd (sA) = sdHd (A) where sA is the pointwise scaling of A by s: 48 (6) Proof: Let U be a -cover of A: Then X Hds (sA) diam(sUi)d U U X = sd diam(Ui)d (7) (9) i Ui U d s Hd (A) (8) which, when taken to the limit as ! 0; gives us Hd(sA) sd Hd(A): (10) As so elegantly put in [Falconer, 1990], the other side is found simply by scaling sA by a factor of 1=s: 2 Another property is that the dimension of the union is the maximum of the dimensions. In fact, this is true for the union of countably many sets. Theorem 5.2 Let A be a countable collection of sets Ai Rn: Then dim Proof: Let [ Ai 2A Ai = sup dim Ai: Ai 2A A= [ : (11) (12) Ai 2A First, since Ai A for all i; then Hd (Ai) Hd(A) for all dimensions d: Thus dim Ai dim A for all i: Second, let d > dim Ai for all i: Then Hd(Ai) = 0 for all i; so Hd (A) = 0: Hence dim A supA 2A Ai: 2 i 5.3 Box-Counting Dimension When one sees the term \fractal dimension," more often than not, it is a reference to the box-counting dimension. The box-counting dimension is used in physics and other sciences because it can be easily computed on any kind of data. 49 5.3.1 Denition The box-counting dimension is similar to the Hausdor dimension in that it is found by covering a set with tiny \boxes" | actually any shape will do. Denition 5.5 The box-counting dimension dimB of a set A is given by dim A = lim log cardU B log 1 where U is the -cover of A of minimal cardinality. !0 (13) One can compute the box-counting dimension of any set by using grids of various resolutions. Plotting the number of grid points the set intersects versus the resolution of the grid on a log-log grid will produce a line. If this line is straight then the box-counting dimension is the slope of this line [Mandelbrot, 1982b]. 5.3.2 Relationship with Hausdor Dimension The box counting dimension of a set is always greater than or equal to the Hausdor dimension of the set. They agree on well behaved sets. Theorem 5.3 Let A Rn: Then dimB A dim A: Proof: From the denitions of Hausdor measure and box counting dimension we get the following inequality inf 1 X i=1 diamd(Ui) jVjd (14) for Ui is an element of -cover U and the inmum is over all such -covers, and V is a -cover of minimal cardinality. The 's are the same, only the conditions of the covers have changed. The exponent d on both sides is the Hausdor dimension of A: Taking the limit as ! 0 gives us the Hausdor measure on the left hand side of (14). Theorem 5.1 insures that, by scaling, we can make the Hausdor measure of a set arbitrarily 50 large without aecting its dimension. So, without loss of generality and for the sake of convenience, assume the Hausdor measure of A is greater than one. Taking the log of both sides then gives us log jVj + d log > 0; (15) which means log jVj d; (16) , log which can be easily rewritten into the desired result. 2 One not-so-well-behaved set that demonstrates the problems of the box-counting dimension if shown in the following example (from [Falconer, 1990]). Example 5.1 The countable set A = f1; 21 ; 13 ; : : : ; 0g has box-counting dimension 12 : Proof: Let U be a -cover of A: Then a dierent set from U is needed to cover each of the i , 1 points: 1; 21 ; : : :; i,11 of A; where = 1i , i +1 1 = i(i +1 1) : (17) Thus, the minimum number of sets of diameter needed to cover A is i and we have log jU j = log i (18) log 1 log i(i + 1) for minimal -cover U : Taking the limit as i ! 1 causes ! 0 (17), and (18) converges to 12 : 2 Clearly, countable sets have null Hausdor dimension. Ordinarily, the box-counting dimension is otherwise quite useful. 5.4 Self-Similarity Dimension The self-similarity dimension of a set is usually derived from its construction. 51 Denition 5.6 If A is the attractor of an IFS satisfying the open set condition and with Lipschitz constants si; i = 1 : : : N; then its self-similarity dimension dimS A is given by the solution d of N X 1 = sdi: (19) i=1 Notice that if all similarities share the same Lipschitz constant s then the self-similarity dimension is simply N: dimS = log (20) log 1 s Furthermore, if A is the attractor of an IFS of similtudes satisfying the open set condition, then the self-similarity dimension agrees with the Hausdor dimension. Additionally, the Hausdor measure of A is positive and bounded. Theorem 5.4 Let A be the attractor of an IFS of similtudes fwigNi=1 satisfying the open set condition. Then where d = dimS A: Specically 0 < Hd (A) < 1; (21) dim A = dimS A: (22) Proof: Let si = Lipwi for each similtude of the IFS and let d > 0 be such that N X By repeated use of Theorem 3.6 we get [ A= i=1 1i1 ;i2 ;:::;ik N sdi = 1: (23) wi1 wi2 wi (A): (24) k Each of the k-fold compositions wi1 wi2 wi has Lipschitz constant at most si1 si2 si : Thus X X X X diam(wi1 wi (A))d diam(A)d (si1 : : : si )d (25) k ik =1:::N i1 =1:::N k k ik =1:::N 52 i1 =1:::N k 0 = diam(A)d @ = diam(A)d: X i1 =1:::N 1 0 X sdi1 A @ ik =1:::N 1 sdik A(26) (27) Let > 0: Then k can be made suciently large so diam(A) maxi=1:::N ski : Then Hd (A) diam(A)d which implies Hd (A) diam(A)d as ! 0: The other half of the proof, Hd (A) > 0; is signicantly more involved, and is beyond the scope of this chapter. It can be found in Section 8.3 of [Falconer, 1985]. 2 5.5 Density Bounds and the Decomposition Theorem This reiteration of [Falconer, 1985] concludes with a brief mention of density bounds. Denition 5.7 The density of a d-dimensional set A Rn at a point x 2 A is given by the upper and lower bounds Dd (A; x) = limr!0 H (A(2\r)Bs r (x)) ; d Dd (A; x) = limr!0 H (A(2\r)Bs r (x)) : d (28) (29) Set points where Dd = Dd = 1 are called regular; the other points are called irregular. A regular set is one that is regular at almost all (with respect to Hd) points. Otherwise it is an irregular set. Manifolds are regular sets whereas fractals are irregular sets. However, there are some irregular sets that may not be considered fractal. This is due to the denition of irregular as that which is not regular. This author believes that many of the problems with the denition of fractal can be solved by not dening fractal as that which is not Euclidean but by dening fractals more strictly and allowing sets to be both non-Euclidean and non-fractal. The Decomposition Theorem, from [Falconer, 1985], states that a set's regular (Euclidean) parts and irregular (fractal) parts can be treated separately. 53 Theorem 5.5 Let A be a subset of Rn such that dim A = d: Then the set of regular points in A form a regular set and the set of irregular points in A form an irregular set. Proof: : : : is beyond the scope of this chapter. See Chapter 2 of [Falconer, 1985]. 2 5.6 Locally Fractal Sets We conclude this chapter with some personal views justied with examples. Mandelbrot's original denition was a good one, but it fails on certain sets, and requires adjustment. Fractal are \sets with detail at every level of magnication," though not all such sets are fractal; as mentioned at the beginning of this chapter, some are better classied as multifractal, others are completely unstructured. We will attempt to form this statement into a new denition of fractal. 5.6.1 The Carrot Leaf Let us start with the carrot leaf. It is a tree-like attractor: a stem with smaller carrot leaves extending from it. It is shown here in Figure 5.1. Consider the straight line segments comprising its stem and, in fact, every visible branch of the carrot leaf. Magnifying any of these branches will not produce any more detail beyond some nite factor. Intuitively, this object does not seem fractal. In this case, intuition is supported by a mathematical argument. Example 5.2 Let A be the carrot leaf attractor. Then dim A = 1: In particular, the carrot leaf is not fractal under the old denition. Proof: Let B0 be the trunk of the carrot leaf and let B1 and B2 be the main branches, and so on. Let B be the countable union of all such branches Bi. Since the branches are line 54 Figure 5.1: The \carrot leaf" attractor (left) and the set of its branching limit points (right). segments, dim B = sup dim Bi = 1: i (30) Let C be the limit points of branching structure B as illustrated in Figure 12.1. The set C is totally disconnected (visually conrmed by Theorem 3.8 and Figure 12.1) implying dim C < 1: (31) Since the carrot leaf consists of the (disjoint) union of its branching structure and its limit points A=BtC (32) we have dim A = maxfdim B; dim C g = 1 55 (33) and the carrot leaf is not necessarily fractal under Denition 5.1. 2 What we have done in this proof is separate the fractal part of the carrot leaf from the Euclidean part. One could say the carrot leaf is fractal only at its branch tips. In [Mandelbrot, 1982b], the branches were called a residue and such shapes whose fractal part's dimension is inferior to its topological part's were termed \subfractals." This argument does not redeem Denition 5.1, for if the branches were lengthened so they intersected other branches, the resulting \fractal part" would be connected, with Hausdor dimension greater than one, subsuming the Euclidean part and passing the original denition of fractal. 5.6.2 Locally Fractal Clearly Denition 5.1 is the problem. The following denition of a fractal property called \locally fractal" is a step toward the proper denition of the property of fractal. Denition 5.8 A set A Rn is locally fractal at point x if and only if Dd(A; x) 6= Dd(A; x): (34) Set A is locally fractal if and only if it is locally fractal at all of its points. This would be the denition of irregular except for one important point. A set is irregular if at least one point is irregular whereas a set is locally fractal only if all of its points are irregular. \Locally fractal" is more exclusive than \irregular." For the following chapters, fractals are hereby dened as sets that are locally fractal. This reects its author's view of \what it means to be a fractal." It does not necessarily agree with denitions by other authors. 56 5.6.3 The Devil's Staircase Dene an accumulation function A() as ; x] \ B ) ; A(x; B ) = card([0 cardB (35) where B is any set in R: Here cardinality is used in the loose sense, as the quotient of innities is not well dened. In this case we are more concerned with the percentage of points in B less than or equal to x: One could graph the accumulation function A versus x for the Cantor set C: Let D R2 be the graph of A(x; C ): The set D is called the Devil's staircase [Mandelbrot, 1982b] and is shown in Figure 5.2. Figure 5.2: The Devil's staircase (left) and the set of its increments (right). As reported in [Mandelbrot, 1982b], the Devil's staircase is rectiable. In fact, its of length two. It is level at each of the countably many plateaus, corresponding to the gaps in 57 the Cantor set. The points where the graph changes levels are called its increments, which correspond one-to-one with the uncountable points of the Cantor set. As before, this set is not necessarily fractal by Denition 5.1. The argument is essentially the same as the proof of Example 5.2. Example 5.3 Let A R2 be the devil's staircase. Then dim A = 1 Proof: The horizontal intervals Hi in A correspond to the gaps of the Cantor set. Let [ H = Hi : i In A there are countably many such Hi so dim H = sup dim Hi = 1 i (36) (37) The remaining parts of A are a \skewed" Cantor set C whose dimension remains less than one (as shown in Figure 5.2). Hence we have giving A = H t C; (38) dim A = maxfdim H; dim C g = 1 (39) and the devils staircase is not necessarily fractal under Denition 5.1. 2 5.6.4 The Twindragon The twindragon is a fractal shape that purportedly arose from a study of recursion [Mandelbrot, 1982b]. It is the \just-touching" union of smaller similarities, as shown in Figure 5.3. The twindragon is interesting because it can tile the plane, with a fractal border separating the tiles. The twindragon is also not necessarily fractal under Denition 5.1. There is a subtle dierence in this argument. 58 Figure 5.3: The twindragon. Example 5.4 Let A R2 be the twindragon. Then dim A = 2: Proof: The interior A of the twindragon is open and non-empty. Its border @A is closed and in A: Thus, A =A t@A: (40) The interior A is open and bounded so contains and is contained in a ball with positive nite 2-dimensional Hausdor measure. Thus, dim A= 2: The dimension of @A cannot exceed the dimension of the plane it is embedded in, so dim @A 2: Hence, dim A = maxfdim A; dim @Ag = 2 (41) and the twindragon is not necessarily fractal under Denition 5.1. 2 59 In fact, any set with non-empty interior is likewise not necessarily fractal under Denition 5.1. However, if it is locally fractal at its boundary points, then separating its boundary from its interior will produce a properly fractal set. 60 Chapter 6 LINEAR FRACTALS Linear fractals are the product of RIFS's of ane maps. Such maps are used extensively in the area of computer graphics. This chapter begins by introducing linear and ane maps, and homogeneous coordinates, most of which can be found in [Foley et al., 1990]1 . The next sections dene linear fractals and show how they form naturally from cyclic object instancing, which is original work. Finally, this chapter concludes with a summary of recent work on the dimension of linear fractals. 6.1 Linear Maps and the Jacobian Matrix Linear maps cause many of the shape deformations that begin with the letter "s" (scaling, stretching, squashing, skewing, shearing and spinning). The following denition is similar to those in many texts (such as [Foley et al., 1990]). Denition 6.1 A map T : Rn ! Rn is linear if and only if T (sx + y) = sT (x) + T (y) (1) As in [Foley et al., 1990], column vectors (which are popular in linear algebra) are now used, instead of row vectors, which are used here and in earlier texts. 1 61 where x; y 2 Rn; s 2 R and sx = (sx1; sx2; : : :; sxn ): Denition 6.1 has dened the two major properties of linear functions at once. The rst is w(sx) = sw(x); the second, w(x + y) = w(x) + w(y): Linear algebra indicates the use of matrices to specify transformations. Let M be an n n matrix of real constants. Then xM is a linear transformation of point x 2 Rn: The Jacobian matrix of any n-dimensional map w(x) = (w1(x); w2(x); : : : ; wn(x)) is the matrix J (w) dened as i Ji;j = @w (2) @x : j The linear transformation matrix M is the Jacobian of the linear transformation T (), as shown in [Barr, 1984]. 6.2 Ane Maps and Homogeneous Coordinates Translation is not a linear function. Let y be a translation vector. Then, for s 2 R in general, (sx) + y 6= s(x + y): (3) An ane map is a linear transformation followed by a translation. Denition 6.2 A map w : Rn ! Rn is ane if and only if w(x) T (x) + y (4) where T () is a linear map and the translation parameter y 2 Rn is independent of the function variable x 2 Rn: The Jacobian matrix of an ane function is the same as for its linear part. Thus, the Jacobian matrix does not suciently describe an ane function. Matrices may still be used to uniquely describe ane functions, but we rst must use homogeneous coordinates. 62 Denition 6.3 The homogeneous coordinate system of Rn is the space Rn+1 along with the equivalence relation (!x1; !x2; : : : ; !xn; !) ($x1; $x2; : : : ; $xn; $) (5) for all !; $ 2 R n f0g: A point p = (p1 ; p2; p3) is represented homogeneously as p = (p1=!; p2 =!; p3=!; !) = (p1; p2; p3; 1): (6) (7) As the homogeneous coordinate ! ! 0 the other coordinates approach innity. A homogeneous values with null ! coordinate is a \point at innity." These innity points still have direction, so we will use them to denote vectors. A vector v = (v1; v2; v3) is represented homogeneously as v~ = (v1; v2; v3; 0): (8) Hence, points and vectors are distinct in the homogeneous coordinate system. Addition and subtraction of vectors acts like it should. Any number of vectors may be added to a point to create a new point; addition of two points is not dened. Points may be subtracted to create a vector, but only after they have been normalized such that their last coordinate (!) agrees. Homogeneously, one can specify an ane map T +y~ by a simple extension to the Jacobian of its linear part. Let M be an (n + 1) (n + 1) matrix constructed 2 3 J ( T ) 0 75 M = 64 (9) ~y 1 where 0 is the column vector (0; 0; 0)T : Then the following is true T (x) + ~y = xM: 63 (10) 6.3 Linear Fractals Fractal sets created from RIFS's of contractive ane transformations are called linear fractals. Denition 6.4 A set A Rn is linear fractal if and only if it is (locally) fractal and it is the attractor of a RIFS of ane contractions. This denition depends greatly on one's personal denition of \fractal." Here local fractal is used though others may dene fractals dierently. 6.4 Dimension Computations for Linear Fractals The Hausdor dimension of an attractor of an IFS of similtudes with the open set property is simply its self-similarity dimension. When the similtudes of an IFS on R overlap, [Falconer, 1987] shows that the Hausdor dimension still equals the self-similarity dimension almost all the time. For a general IFS of ane transformations on Rn; computing the Hausdor dimension of its attractor is quite complicated. 6.4.1 The Hausdor Dimension of IFS Attractors Let B = Br=1(0) Rn be the n-dimensional unit ball at the origin. Then its image under a non-singular linear transformation T (B ) is an n-dimensional (hyper-)ellipsoid with n principle axes. The length along each principle axis from the origin to the ellipsoid's surface denes each singular value of T: Notice the maximum singular value is equal to the Lipschitz constant of the linear map. Thus, the singular values of a non-singular contraction all lie within the open interval (0; 1): 64 Denition 6.5 Let T : Rn ! Rn be a linear contraction. Denote its chain of singular values as 0 < s1 s2 sn < 1: (11) Then for any dimension 0 d n dene the singular value function as d,dde d (T ) = s1s2 sdde,1s1+ dde (12) d(T ) = (s1s2 sn ) : (13) and for d > n as d n The singular value function can then be used to dene a dimension based on the ane maps of an IFS. Denition 6.6 Let fTi + yigNi=1 be an IFS of n-dimensional ane transformations. Then the following dimension is dened d(T1; : : :; TN ) = inf fd : X i=1:::N d(Ti) < 1g: (14) For lack of a name, we will term this value the Falconer dimension. Furthermore, the following theorem shows that this dimension d(T1; : : : ; TN ) is almost always equal to the Hausdor dimension of the attractor of the IFS when d(T1; : : : ; TN ) is less than n; the dimension of the embedding space. Otherwise the attractor's dimension is clamped at n: Theorem 6.1 Let A be the attractor of an IFS fTi + yigNi=1 of n-dimensional ane transformations such that LipTi < 13 : Then for almost all yi 2 Rn (with respect to the (n N )dimensional Lebesgue measure) dim A = minfn; d(T1; : : : ; TN )g: 65 (15) Proof: : : : is found in [Falconer, 1988]. 2 Furthermore, when the attractor of an IFS meets the criterion of the preceding theorem, then the following theorem states that computing the Hausdor dimension of the attractor is a simple as computing its box-counting dimension. Theorem 6.2 Let A be the attractor of an IFS fTi + yigNi=1 of n-dimensional ane transformations such that Then dim A = minfn; d(T1; : : : ; TN )g: (16) dimB A = dim A: (17) Proof: : : : is found in [Falconer, 1988]. 2 6.4.2 The Box-Counting Dimension of RIFS Attractors. Very little work has been done on the Hausdor dimension of an RIFS attractor. One recent result, from [Barnsley et al., 1989], is a formula for the box-counting dimension of a RIFS attractor. However, since this result is not clearly related to the Hausdor dimension, and much dierent nomenclature is used in their theorem and proof, we refer the reader to [Barnsley et al., 1989] for further information on this result. 66 Part III MODELING 67 Chapter 7 MODELING WITH LINEAR FRACTALS Often models capitalize on redundancies to make object specication simpler. Polygons are used because they concisely describe a compact planar set of points. All of the points in a polygon can be derived from a list of the polygon's vertices so polygons are commonly specied this way. Cyclical textures, such as a checkerboard, are redundant across space and so require only the modeling of a single section along with a description of how to copy it to make the rest of the pattern. Fractals too have redundancies, though not across space but across scale. A checkerboard, extended innitely, will cycle forever as one traverses its surface. A linear fractal will likewise cycle forever, as one zooms into its surface. 7.1 Explicit versus Implicit Models Explicit models have enjoyed a long-standing popularity in computer graphics. Describing an object by enumerating points on its surface is a very natural way of modeling and lends itself 69 easily to interactive specication. Explicit models are also very exible, directly allowing local and global alterations. Implicit models have gained popularity in recent years. Specication of very detailed shapes is often easier when done implicitly, by describing them as loci. Such models do not require the modeler to manipulate each local part of the model. Instead they require the specication of some condition for the points to meet. One may model the unit circle at the origin using one of two methods. The explicit function f () = (cos ; sin ); (1) models the circle as the image of the interval [0; 2) whereas the implicit function f (x; y) = x2 + y2 , 1 (2) models the circle as a zeroset. In the rst example, the circle is described parametrically whereas in the second, it is described as a locus. The explicit model (1) has the advantage of point enumeration | it is easy to draw a picture of the circle by plotting the image of a nite subset of input points. The implicit model (2) has the advantage of testing | it is easy to check if a particular point is inside, on or outside the circle. 7.2 The RIFS Model The RIFS model is both an explicit and an implicit model. Both algorithms have drawbacks: the explicit method does not work on all RIFS models whereas the implicit RIFS model requires augmentation to the RIFS digraph. 7.2.1 The Explicit RIFS Model Treated explicitly, the RIFS models an attractor using the Chaos Game [Barnsley et al., 1988]. The Chaos Game is based on a theorem that states that the xed points of randomly 70 chosen maps are dense in the attractor (Theorem 3.1.3(i) in [Hutchinson, 1981]). The Chaos Games enumerates points; the RIFS here is treated as an explicit model. Algorithm 7.1 (Chaos Game) Let (w; G) be an RIFS with a strongly-connected digraph G: Then the attractor of the RIFS is approximated by 1. 2. 2.1. 2.2. 2.3. 2.4. 2. Let x be any initial point and let vi be any vertex in Gv : Initialize k = 1 and do the following forever : : : Pick, at random, an integer j 2 1 : : : N such that (vi; vj ) 2 Ge : Let x = wj (x): If k > 43 then plot x: Let i = j and increment k: End \do." The Chaos Game generates a point cloud. This point cloud may appear more dense in places and sparser in others. This can be remedied by setting the probabilities that an n-dimensional map is randomly chosen based on the Lipschitz constant of that map taken to the nth power [Barnsley et al., 1988]. As rigorously shown in [Barnsley et al., 1989], the Chaos Game does not work on a RIFS with a weakly-connected digraph. This is because a point can get trapped in a section of the digraph, never reaching some of the vertices in the digraph, thereby leaving much of the RIFS attractor unplotted. 7.2.2 The Implicit RIFS Model The RIFS model may also be treated as an implicit model, though this requires the construction of a set B that contains the RIFS attractor. If the attractor of an RIFS is unknown, then a method described in Chapter 14 automatically generates a bounding set. A new digraph G0; created by adding a single vertex v0 to G; simplies the implicit generation algorithm. Let C be the condensation of G: Then, for every vertex of C (corresponding to a strongly connected component of G) with in-degree of zero, add an edge to G0e from v0 to 71 every vertex in the strongly-connected component of G0 corresponding to the zero in-degree vertex in C: The result is a \start vertex" v0: Algorithm 7.2 Let (w; G0) be an RIFS with attractor A Rn and let B0 Rn be any non-empty set of nite diameter that contains A: Let B be an empty stack of tuples of the type (B; i) where B Rn and i is an integer from 1 to N: 1. 2. 3. 3.1. 3.2. 3.2.1. 3.2.2. 3.2. 3. Let i = 0: If x 2 B0 then push B0 onto B: While B is not empty : : : Pop B; let (B; i) be the popped tuple. For each fj : (vi; vj ) 2 G0e g : : : Let Bj = wj (B ): If x 2 Bj then push (Bj ; j ) onto stack B: End \For." End \While." If the preceding algorithm nishes, then x 62 A: The implicit algorithm shows point exclusion is decidable but point inclusion is likely undecidable, a result similar to [Penrose, 1989]. 7.3 The L-System Model Grammar-based models have always been a popular choice for modeling linear fractals [Smith, 1984; Prusinkiewicz et al., 1988]. An L-system1 is a deterministic parallel context-free grammar. Parallel means the production rules are not applied right-to-left nor left-to-right but in parallel | all at once. An L-system consists of an initial string and a set of production rules of the form A!B 1 Specically, a D0L-system. 72 (3) where A is a single uppercase character and B is a string of one or more uppercase and/or lowercase characters. An uppercase character denotes a production rule whereas a lowercase character denotes a character in the nal word this L-system is describing. In this context, most \words" will be innitely long. The set of all words an L-system describes is called its language. For example, the L-system described by a starting symbol A and production rules A ! BcAcB B ! AdBdA (4) (5) produces innitely long words characterized as the limit of the sequence A; BcAcB; AdBdAcBcAcBcAdBdA; BcAcBdAdBdAdBcAcBcAdBdAcBcAcBcAdBdAcBcAcBdAdBdAdBcAcB;: : : (6) This sequence seems organized, though this terse representation hides its true meaning. Turtle geometry [Abelson & diSessa, 1982] is used to visualize the words in an L-system's language. In this context, a turtle is a small robot holding a pen. This turtle can perform several operations with the pen. We will restrict the turtle to the three operations. Let c and d cause the turtle to draw a xed length straight line segment and then cause the turtle to turn 60 to the left and right, respectively. Then four elements in the sequence (6) corresponds to the graphs in Figure 7.1. Now the limit word is obvious | it is Sierpinski's gasket. Larger character sets are usually used, with such advanced turtle actions as pushing and popping the current state of the turtle [Smith, 1984]. In [Prusinkiewicz & Lindenmayer, 1990], more sophisticated 3-D turtle operations are dened, some with optional parameters. Of particular interest is Chapter 8 of [Prusinkiewicz & Lindenmayer, 1990], which shows how any L-system can be reduced to a RIFS. In most applications, L-system models are evolved to xed levels, where they terminate with Euclidean primitives. For these two rea73 Figure 7.1: Turtle interpretations of four words generated by an L-system. sons, this dissertation concentrates specically on the RIFS model of linear fractals, without any loss of generality. 74 Chapter 8 THE COLLAGE THEOREM The collage theorem [Barnsley et al., 1986] states that if one can approximate a shape by eciently covering it with a nite number of smaller transformed self-replicas, then the attractor of the IFS dened by these transformations provides an even closer approximation of the original shape. The collage theorem is more than just a theoretical result on recurrent iterated function systems, it is a philosophy for modeling. When given a shape to model, the modeler ponders the object and examines its components, looking for similarities. For each component the modeler must recall, from a library of distortions, dierent ways the object can be deformed into it. If none perform satisfactorily, then either the object must be subdivided dierently or the component itself must be subdivided into smaller pieces. A little experience with the collage theorem helps one to see shapes in an entirely new way: a square is four smaller squares sharing a corner; a tree is a trunk with smaller trees extending from it. The collage theorem's main drawback is the need of intuition to nd the best collage. This has impeded algorithmic solutions to the inverse problem using the collage theorem. Some solutions have ventured into the eld of articial intelligence, an area many geometric 75 modelers seem unfamiliar with. 8.1 Statement and Proof The collage theorem is stated here similar to its original statement in [Barnsley et al., 1986]. It is actually just a simple corollary to Theorem 3.5, but its mere statement creates a powerful tool in the control of fractal shapes. Theorem 8.1 (The Collage Theorem) Let B 2 Rn and let w = fwigNi=1 be an IFS with attractor A and contractivity factor s: Then (1) h(A; B ) h(B;1 ,w(sB )) : Proof: Consider the following chain of bounds n X n h(B; w (B )) h(w(i,1)(B ); wi(B )) (2) i=1 n X si,1h(B; w(B )) i=1 n 1 , s 1 , s h(B; w(B )): (3) (4) We have the right-hand side of (2) by the triangle inequality on the Hausdor metric; (2) implies (3) by Theorem 3.5; (3) implies (4) by some simple but tricky algebra. Taking the limit of both sides as n ! 1 gives (5) h(A; B ) h(B;1 ,w(sB )) : since wn (B ) ! A (Corollary 3.7) and sn ! 0 as n ! 1 (since s < 1). 2 The Hausdor distance is used to measure the error between the target set and the attractor. As this value goes to zero, the IFS attractor converges to the target set. The quality of the IFS approximation depends on the contractivity of its maps. An IFS does such a good job at removing the error of the collage because the error in the global approximation is reduced in its smaller component approximations. 76 8.2 Recurrent Collages The recurrent collage theorem, and its proof, appear originally in [Barnsley et al., 1989]. Once the correct tools are in place, its statement and proof are simple extensions of the ordinary collage theorem. Theorem 8.2 (The Recurrent Collage Theorem) Let B 2 (Rn)N and let (w = fwigNi=1; G) be a RIFS of with attractor A and contractivity factor s: Then N N hN (A; B) h (B1; ,w s (B)) : (6) Proof: hN (B; (wN )n(B)) Taking the limit as n ! 1 gives n X (h(wN )(i,1)(B ); (wN )i(B )) i=1 n X si,1 hN (B; wN (B)) i=1 n 11,,ss hN (B; wN (B)): N hN (A; B) h(B1; w, s(B)) (7) (8) (9) (10) in the same manner as in the previous proof. 2 Though it is more powerful, it is also signicantly more dicult to model with the recurrent collage theorem. One must not only be able to describe a set out of smaller copies, one must be able to describe a set using portions of smaller copies. Hierarchical methods seem more intuitive. One may model a tree with an RIFS by using one IFS to generate the main branching structure, another for the leaves, and a third for the bark. These three IFS models may then be incorporated hierarchically into a single weakly-connected RIFS model. The multifractal observations of many natural phenomena [Shroeder, 1991] seem to imply the hierarchically-constructed RIFS models will be a useful tool in modeling nature. 77 78 Chapter 9 INTERACTIVE MODELING As mentioned in the last chapter, modeling with the Collage Theorem is usually an interactive process. This chapter discusses three dierent methods implemented by the author to model a linear fractal by interactively specifying the ane maps of an iterated function system. The rst method was to compose the IFS by a textual modeling language developed by the author. Here the results were realistically rendered (by an algorithm described later) so the interactive response time was lengthy, typically ve minutes. The other methods composed the ane maps of an IFS interactively in real time. One method was to specify the parameters of a particular ane transformation interactively with a mouse. The other was to apply free-form linear deformations to an object to specify an ane transformation. An informal study was performed on these latter two methods as an exercise in computerhuman interaction. Its results were not conclusive enough to warrant any one technique over the other. They were useful, however, in ne-tuning these systems. 79 9.1 Textual Specication by Map Composition One direct method for describing an ane map is to specify its components, such as scaling in a direction, rotation about an axis and translation to a new location. An ecient exact way to get this information is to make the user type in the commands directly. As expected, this technique leaves a lot to intuition. As found in many modeling languages, a current homogeneous ane transformation matrix was maintained in constructing each map of the IFS. The current matrix was initialized to the unit 4 4 matrix, corresponding to a null ane transformation. The following forms of ane transformations were allowed: Scale: x; y; z: Component scaling, independently for each axis. Rotate: axis; : Rotation by degrees about an axis according to the left-handed coordinate system. Translate: x; y; z: Translation along a vector. Matrix: m1;1; : : :; m1;3; m2;1; : : :; m4;3: A catch-all, handling skews, shears or any other strange ane transformation. This method was used in a slow interactive visualization loop where the ane maps were composed in a modeling le and a small picture of the resulting attractor was rendered in a few minutes. Most of the actual modeling performed in this manner was done in the user's head or taken from a book on the user's shelf. The most successful application of this method was to ne tune the IFS model, checking its nal results after each change of the IFS parameters. 80 9.2 Graphical Specication by Map Composition To speed up the interactive visualization loop, one can display a sample of the map visually as a \before and after" set. A tetrahedron was used to show the results of an ane map1. An ambiguity arises when the tetrahedron is positioned such that one of its \after" vertices is closer to another \before" vertex than the original \before" vertex. This is xed by one of two solutions. One solution is to connect before and after vertices by a specially indicated line. The other is to indicate each of the four vertices of a tetrahedron uniquely, say by assigning them four distinct hues. To aid in interactivity, each canonical transformation can be entered through a continuous input device, such as a mouse. Then the resulting transformation can be displayed in real time while the user adjusts it to meet some criterion. The attractor of the IFS was displayed immediately after each complete transformation adjustment. The attractor was generated using the Chaos Game (Algorithm 7.1) and displayed in real time as a point cloud. This point cloud could rotate if desired to aid in perceiving it in 3-D. 9.3 Graphical Specication by Shape Transformation Alternatively, one may specify an ane map in Rn by specifying two sets of n + 1 points X = fx1; x2; : : :; xn+1g and Y = fy1; y2; : : :; yn+1g: In 3-D; X and Y are tetrahedra. Using the mouse, the modeler grabs a vertex of a tetrahedron, moves it parallel to the image plane in the viewing window the mouse is currently in, and places the vertex in its new location. Then the vertices of the two tetrahedra are used to evaluate the ane transformation from the master tetrahedron to the instance tetrahedron. This technique is similar to much of the software currently available to design 2-D iterated function systems. The author is unaware of any such previously written software for 3-D iterated function systems. 1 81 This ane transformation matrix M is found by solving the linear system xiM = yi (1) for all xi 2 X and yi 2 Y: This produces three systems of four linear equations with four unknowns which can be solved symbolically by any number of current math packages. The resulting equations are then used, in real time, to dynamically generate the ane transformation as the tetrahedra are modied. 82 Chapter 10 ALGORITHMIC MODELING Even the simplest kinds of shape transformations require several parameters to be fully described. Hence, the parameter space of iterated function systems is quite large, since every parameter of every transformation adds a new dimension to this space. Searching this parameter space exhaustively is much too time consuming to be useful. Instead, more ecient methods have been developed to nd the parameters of a linear fractal model that species a desired set. The rest of this chapter will concentrate on using the Method of Moments, a popular parameter solving method. The methods described hereafter originated in [Barnsley & Demko, 1985] but have been explored much more vigorously in [Vrscay & Roehrig, 1989; Vrscay, 1991]. 10.1 The Method of Moments The Method of Moments requires a large number of moments to accurately determine the proper parameters. The power moments of a set oer a countably large number of moments for which to solve. 83 Denition 10.1 Let A Rn: Then the power moments gi1 ;i2;:::;i of A are dened as gi1 ;i2;:::;i = n n Z xi1 xi2 xinn dA: A 1 2 (1) R The moment g0;0;:::;0 = A dA = 1 for all A: Given two sets A and B; with moments g; h; it is not too dicult to see that if gi1 ;i2;:::;i = hi1;i2;:::;i for all sequences i1; i2; : : : ; in then A = B: If a large number of moments match between two sets, then they are likely similar, though there is no guarantee of this. The Method of Moments estimates parameters of a model by computing the moment of the model's result explicitly, deriving the equations for the moments of the model's results in terms of its parameters, and then inverting these equations to solve for the parameters in terms of moments. n n 10.1.1 A Parameterized Iterated Function System The rest of this chapter will deal with an IFS parameterized as wi(x) = six + ai (2) where si; ai and x are points in either R or C : The moments of such an IFS1 are produced recursively by the recurrence equation Pm mg 1 PN sm,j aj m,j (3) gm = j=1 j 1 PNN i=1m i i : s 1, N i=1 i 10.1.2 Matching Moments Analytically Section 3.3 of [Barnsley & Demko, 1985] solves for the complex IFS parameters si; ai for the twindragon. Their method is analytic, and they assume a priori that the IFS contains two maps, s1 = s2; and a1 = ,a2: 1 Assuming a uniform measure. 84 As prescribed by the Method of Moments, the moments of the twindragon are computed explicitly by summing xn over the number of pixels the twindragon covers. The moment g0 = 1; by denition. The odd moments g1; g3; : : : vanish since the twindragon is symmetric about the origin. Thus, one needs two moments, say g2 and g4; to solve for the two parameters s1 and a1: They obtain analytically, from (3), the solution s 0:064 , 0:594i: Though it diers slightly from the actual parameter s = i=2; the approximated attractor barely resembles the original (compare Figures 11 and 12 in [Barnsley & Demko, 1985]). Better approximations can be made by explicitly computing the moments on a ner grid. 10.1.3 Matching Moments Procedurally The previous example matched moments analytically by computing inverse equations. When the number of parameters increases, by allowing a larger number of contractions of a more general type, the moment equations increase in degree, requiring root-nding methods to solve for the parameters. Let (R2)N be the parameter space of tuples p = ((s1; a1); : : :; (sN ; aN )): (4) The norm (magnitude) jpj of a tuple p 2 (R2)N is given by M X jpj = gi (p , Gi) (5) i=1 where M is the number of moments considered and the Gi are the explicitly measured moments of the target set. As M ! 1 the norm of the parameters that create the target set will necessarily vanish. Furthermore, the norm is smooth with respect to the parameters. Specically, its gradient may be computed in closed form. Thus [Vrscay & Roehrig, 1989] proposes a gradient search for parameters of zero norm. The unfortunate drawback to gradient searches, and other local searches, are that they get 85 stuck at local minima. Improvements such as simulated annealing and genetic algorithms appear to be better suited for such searches, the latter shown to be quite eective for the inverse problem [Cabrelli et al., 1991]. 10.2 Block Coding No review of automatic IFS generation would be complete without mention of its applications to image compression. Perhaps the most successful implementation of such an algorithm is [Jaquin, 1991]. This method, a fractal block-coding scheme, does not operate on sets of points in R2: Instead, it operates on blocks of images. As such, the methods described in this dissertation are unrelated to this method. Those interested in this application of iterated function systems should read [Jaquin, 1991]. 86 Part IV RENDERING 87 Chapter 11 LINEAR FRACTALS: WHERE CLASSICAL RENDERING FAILS Fractals are dicult shapes to render; their innite detail hampers occlusion computation, lacks surface normals and aliases at all sampling resolutions. This chapter outlines current rendering techniques and demonstrates their shortcomings regarding linear fractals. The following chapters contain the main contributions of this dissertation: overcoming the problems of rendering linear fractals. 11.1 Occlusion and the Innitely Detailed Occlusion is, by far, the most powerful 3-D cue and is the basis of most modern rendering methods. Occlusion computations for fractals are exceptionally dicult due to the extreme detail of their surfaces. The diculty of determining fractal occlusion is perhaps the main reason so many have limited themselves to 2-D for investigating fractal sets. 89 11.1.1 The Hidden-Surface Problem The hidden-surface problem (determining occlusion) is a classic problem whose solution is fundamental in 3-D computer graphics. A large number of solutions to this problem are summarized in [Sutherland et al., 1974], where they were categorized as object-space or image-space1 algorithms. Object-space methods determine hidden surfaces to machine resolution whereas imagespace methods determine hidden surfaces to screen resolution. The innite detail of a fractal surface will likely contain an extreme number of occlusions, suggesting the use of image-space algorithms [Hart, 1989]. Two image-space methods for removing hidden surfaces are z-buering and ray casting. The z-buer method has been used in other fractal rendering algorithms and is described here for completeness. The hidden surface method used in the fractal rendering algorithms described herein will be ray casting. Z -buering One uses a z-buer to eliminate hidden surfaces by plotting every primitive of a scene. Each pixel maintains a minimum distance (z-value). When a primitive projects onto the pixel, the distance from the eye to the point on the primitive that maps to the pixel is measured. If and only if this distance is less than the minimum, then the minimum is updated and the pixel receives the primitive's color [Catmull, 1975]. A z-buer method solved the hidden-surface problem for fractals in [Norton, 1982; Norton, 1989b]. Although the z-buer method is image-space, it is object-time | it requires a complete pass through all of the primitives in an object database. As the resolution increases, such as in a close-up, the computation time increases draa third \list-priority" category was used for algorithms with elements of both image- and object-space algorithms. 1 90 matically. This was experienced in the creation of [Norton & Melton, 1988], where it was overcome by improving the resolution locally, a priori | only in the areas they knew would be closely inspected. Ray Casting Rays in ray casting originate at the eye point and pass through the centers of pixels on the image plane. For each pixel's ray, the object that intersects that ray closest to its origin is the object visible through that pixel [Appel, 1968]. Ray casting is an image-space algorithm since the number of rays is proportional to the image resolution. Ray casting is also an image-time algorithm in that its computation time depends more on image resolution than on object database size. Hence, when rendering close-ups of fractal sets, the amount of computation time should not increase as dramatically as it would using object-time methods. Ray tracing extends ray casting by casting secondary rays at the point of intersection [Whitted, 1980]. Rays cast from the intersection point to the light source determine the shadows cast upon the intersection point. Rays cast o the object as a ricochet of the original ray determine the image a shiny surface reects. Rays cast through the object simulate transparency, and when their direction is properly adjusted, they exhibit refraction eects. In short, ray tracing provides a simple model for illumination. 11.1.2 Ray-Fractal Intersection Ray tracing depends greatly on the ability to eciently compute the intersection of a ray with an object. The eciency of a ray-object intersection computation depends largely on the internal representation of the object. Linear fractals may be represented by many standard computer graphics models. One, in particular, permits an ecient ray intersection. 91 Linear Fractals as CSG Models Commonly, the rst intersection of a ray with an object is determined from a nite set of ray-object intersections. For example, when evaluating the intersection of a ray with a CSG constructed object2, one computes the intersection of the ray with every primitive in the construction, then merges these intersections together via a Roth diagram [Roth, 1982]. When the object is fractal, one must nd the rst of a continuum of discrete intersections with the object. When formulated this way, ray intersection is intractable. Linear Fractals as Implicit Surfaces Another method for determining ray intersection is the use of iterative methods which converge on the ray-object intersection closest to the ray origin. Such methods have been developed and successfully used, in general, to ray trace general arbitrary implicit and explicit surfaces [Kajiya, 1982; Hanrahan, 1983; Toth, 1985; Kalra & Barr, 1989]. These techniques rely on root nding methods, such as Newton's method, which rely on the derivative of the function that denes the object. When this function denes a fractal surface, its derivative is no longer dened and these methods fail. If the implicit function underestimates the distance from any point to the object, then one can create a sequence that converges to the rst ray-object intersection [Hart et al., 1989]. Such a distance function was devised for linear fractals in [Hepting et al., 1990; Hepting, 1991]. Thus, linear fractals may be rendered using this distance estimate, though not in optimal time. Linear Fractals as Recursive Hierarchies A more ecient method for ray intersection is developed in Chapter 12. There, linear fractals are dened as the natural result of a cyclic object hierarchy. A few minor enhancements 2 An object constructed using union, intersection and complement operations on other objects 92 augment the standard ray-hierarchy intersection method, creating an ecient ray-fractal intersection algorithm. 11.1.3 Volume Rendering and Geometric Measure Theory Iterative methods produce approximate solutions, since one cannot wait forever for an innite series to converge. This error is mandatory if certain sets are to be rendered at all, as pointed out in the next example. A paper on rendering fur [Kajiya & Kay, 1989] introduced the delicate relationship between volume rendering3 and geometric measure theory: : : : consider the rendering of a single plane surface via a volume density. Assume the surface is stored into a volume density so that it bisects the cube. The optical depth of the surface is so high that it simulates an opaque surface. : : : For the transparency calculation, even though the optical depth parameter is set very high, the line integral of the density in the exponent will be vanishingly small. This is because the surface is innitely thin, the the line integral will pierce the surface at only a single point. This yields an integral of 0. A similar problem occurs in the brightness calculation. : : : Thus the transparency and brightness for this surface will both be zero | an invisible surface! One expects such a problem when measuring a 2-D set with a 3-D measure. This problem arises with any set of dimension less than three. One solution to this problem is to thicken the set4, making it measurable in 3-D. If A is It is important to understand the context of the following quote which describes a shortcoming of modeling an object as an array of volume densities. Volume rendering is denitely not limited to this paradigm as [Kajiya & Kay, 1989] quite clearly demonstrates. 4 As noted by D. Sandin, proper treatment of the wave properties of light makes such immeasurable objects visible. The wavelengths of light thicken the rays of light, which is a viable alternative to thickening the set. 3 93 a set to be rendered, then render the set A + : The next step is to determine the magnitude of : If is too large then the rendering may incorrectly portray the topological properties of the set; it may appear heavier or more connected than it really is. Conversely, if is too small then the rendering might appear dust-like, again incorrectly portraying connectedness. In Chapter 15, we determine the best for properly portraying topological properties at a given resolution. 11.2 Shading Without Surface Normals Recalling calculus, the derivative of a function f : R ! R is dened f (x + h) , f (x) : (1) f 0(x) = hlim !0 h Functions that produce fractal curves lack a derivative because a limiting sequence of slopes does not converge. Rather, this sequence becomes periodic as h decreases since fractals are symmetric across scale. The tangent of a fractal surface is similarly undened, though several approximations have been devised. 11.2.1 Surface Normal Approximations In [Norton, 1982], local tangent planes of points on the surface of a fractal were approximated by the gradient of the z-buer. Though its results were quite eective, as seen in the illustrations in [Norton, 1982; Norton, 1989b] and the animations [Norton & Melton, 1988; Norton, 1989a], this method is inappropriate for ray tracing, which requires no z-buer. If the surface is generated to a xed resolution, at which point it is approximated by primitives, then the surface normal of the primitive used to approximate the surface may be used. This method was used by the fractal terrain papers [Kajiya, 1983; Bouville, 1985]. When the fractals are constructed to high levels of detail, this method will likely cause aliasing. 94 In [Hart et al., 1989], the gradient of a distance estimate function provided a decent approximate surface normal. Such distance estimates exist for linear fractals [Hepting et al., 1990; Hepting, 1991] but are relatively expensive to compute. 11.2.2 Shading Module Approximations A shading module is a procedure, rather than parameters, associated with an object that computes the shading of its surfaces [Cook et al., 1984]. Shading modules are more powerful and exible than simple shading parameters, and are used to allow novel surface shading eects in a standard rendering package. The extra power and exibility of shading modules is quite useful when rendering highly detailed objects. A single surface normal inadequately represents the orientation of a highly detailed surface. Instead, shading modules better portray tiny details. Both [Kajiya & Kay, 1989] and [Thompson, 1991] identify and oer solutions to the problem of rendering highly detailed objects. Both solutions approximate complex intricate geometries with a single primitive. Texels In [Kajiya & Kay, 1989], highly detailed objects are modeled volumetrically. The standard volume model was enhanced by replacing the simplistic density model [Kajiya, 1983] with a sophisticated shading module at each voxel. Such improved voxels are called \texels." This shading module approximates some highly detailed sub-voxel geometry, the rendering of which is precomputed and now represented by the voxel. Amalgams In [Thompson, 1991], shading modules are associated with bounding volumes. Such improved bounding volumes are called \amalgams." These shading modules approximate their 95 contents by precomputing the reected light of their sub-geometries in various discrete directions. Hierarchical Shading Chapter 17 shades linear fractal surfaces by partially illuminating its bounding volume hierarchy. It is not intended to produce an accurate depiction of the shading of a fractal surface. Instead, this kind of shading aids in the perception of surface orientation while inhibiting aliases. 11.3 Sampling Innite Frequencies The silhouette of a fractal surface is often a fractal itself [Falconer, 1985]. When rendering such a surface, one must remove both aliases from shading artifacts as well as those from rasterization. Hierarchical shading (Chapter 17) inhibits shading aliases. Rasterization aliases, on the other hand, must be reduced by other means. 11.3.1 The Rasterization Integral We adapt a rasterization integral from [Norton et al., 1982] for use in the ray-tracing paradigm. The rasterization integral over arbitrarily shaped pixel P; assuming a uniform measure, is Z I (R(p))dp (2) P where R(p) is a ray extending from the eye through point p 2 P in the image plane and I (R(p)) is the resulting intensity found by tracing ray R(p): Rasterization is just a specic form of integration. 96 11.3.2 Integration When one reconstructs a signal from information gathered by sampling a frequency too infrequently, the result is a completely dierent signal than the original. This problem is called \aliasing." Aliasing due to improper rasterization appears as staircasing and moires in still images, and as crawling and twinkling in animations. It results when the integral (2) is not approximated adequately. Point Sampling Techniques One method of integration is the Rectangular Rule, where samples of the function are taken at xed intervals within the domain of integration. A box is created for each sample of width equal to the distance to the next sample and height equal to the function value at the sample point in the domain. The integral is approximated by the sum of the areas of these boxes. Adaptive sampling is a method where neighboring samples that produce drastically diering function values are rened by taking additional samples between them [Whitted, 1980]. Stochastic sampling | a \Monte Carlo" method of integration | approximates the integral using randomly placed samples. This kind of sampling is just as prone to alias as over sampling. The advantage of stochastic sampling is the aliases are less perceptible to the human eye. Displacing samples from an initial grid in random directions is called \jittering," and causes aliases to appear as noise [Cook, 1986]. Constraining random samples to be at least some minimum distance from each other produces a Poisson-disk distribution, which mimics the organization of receptors in mammalian retinas, and improves on the perception of aliases as unstructured noise [Mitchell, 1987]. By the Sampling Theorem, the number of samples required to accurately measure a signal must be at least twice the highest frequency of the signal (the Nyquist limit) [Shannon, 1949]. When integral (2) is approximated using the Rectangular Rule, the number of samples should be at least twice the highest frequency of the function. 97 The innite detail of linear fractals insures that the Nyquist limit cannot be reached by nitely many point samples. Hence, all of the above point sampling techniques are prone to alias on fractal images. As more samples are taken, aliases are pushed into higher frequencies, where they can be eliminated by a low pass lter [Mitchell, 1987]. The main drawback to such over-sampling schemes in ray tracing is the high cost of multiple ray intersection computations. 11.3.3 Area Sampling Techniques Area samples are ecient, requiring one sample per pixel. This one sample, however, will be more dicult to compute than a simple point sample. Taking area samples defeats the Nyquist limit problem for linear fractals since an area sample represents a continuum of point samples. In [Catmull, 1978], the integral (2) was solved analytically by measuring the area of the projection of polygons onto the portion of the image plane bounded by a pixel. In [Heckbert & Hanrahan, 1984], this method was used to create a hybrid ray-tracing/scan-conversion algorithm called beam tracing. This method capitalizes on projection properties of polygons and is not well suited for rasterizing linear fractals. One can approximate an area sample on the image plane by intersecting a cone with the object database instead of a ray. By thickening the ray into a cone that passes through a majority of the pixel area, the cone's intersections with objects will better approximate their projections onto the image plane [Amanatides, 1984]. The amount of the cone's visibility that an object obscures determines the percentage that object contributes to its pixel's illumination. The main drawback of \cone tracing" is the high computational expense of intersecting a cone with an object database. This high computational expense limits cone tracing to simple geometric primitives, preventing it from being an eective antialiasing mechanism for rasterizing linear fractals. 98 An alternative to thickening the ray is thickening the objects. The method of \covers" thickens the object instead of the ray [Thomas et al., 1989]. It is described in detail in Chapter 18. Like cone tracing, the covers method also limited to simple geometric primitives. However, Chapter 18 derives a new method for the antialiased rasterization of linear fractals, a variation on the covers idea called \local covers." 99 100 Chapter 12 RAY-LINEAR FRACTAL INTERSECTION As mentioned in the last chapter, ray tracing algorithms depend greatly on the accuracy and eciency of ray intersection computations. In this chapter, an ecient ray-linear fractal intersection method is developed that approximates the intersection point to an accuracy sucient for rasterization. 12.1 Denitions We begin by dening some basic tools of ray tracing. 12.1.1 Heaps First, a heap is a tree organized such that each node's index is smaller than the indices of its children. Hence, the node with minimal index is found at the top of the heap. Denition 12.1 A weakly-connected digraph H of weighted vertices is a heap if and only if it contains no undirected cycles (it is a tree) and any edge from a vertex v1 to a vertex v2 101 implies w(v1) > w(v2): A heap is used to eciently nd the closest intersection (with respect to the ray origin) of a ray with a continually updated set of objects. 12.1.2 Rays A ray is one-half of a line. It is anchored at an origin and extends innitely in a single direction. Denition 12.2 A ray R(o; ~d) with homogeneous origin o and direction ~d is dened R(o; ~d) = fo + t~d; 8t 0g: (1) Rays are parameterized by the value t: A ray intersection point may be recorded by the parameter t where the intersection happens. When the direction component ~d is of unit length, t is the distance along the ray. The parameter of the rst ray intersection is given by the following denition. Denition 12.3 The rst ray intersection distance t0 of ray R(o; ~d) with set B is dened t0(R(o; ~d); B ) = inf ft : o + t~d 2 B; t > 0g: (2) The function t0() is always positive. This is so secondary rays (used for shadowing, reection and refraction) do not immediately intersect the surface they are cast from. 12.2 Bounding Volumes and Hierarchies This chapter builds upon the methods of [Rubin & Whitted, 1980]. These methods eciently compute the intersection of a ray with a database of objects by a divide-and-conquer method. 102 The object database is partitioned, using simple geometric primitives, called \bounding volumes," to delineate spatially distinct regions. Spheres are common bounding volumes; their intersection with rays are readily computable. Oriented bounding boxes easily bound sets given their coordinate extremes, with the added benet of ecient ray-intersection computations. Some bounding volumes contain smaller bounding volumes, creating a hierarchy. Such bounding volume hierarchies can be specied by digraphs. Each vertex in the digraph corresponds to an element in the hierarchy whereas a directed edge, say from vertex v1 to v2; implies that v2 is directly beneath v1 in the hierarchy. Let the vertices denote bounding volumes and edges denote a containment relation. A low-level approximation to Sierpinski's gasket can be represented by the tree and resulting image shown in Figure 12.1. Figure 12.1: A tree topology (left) for the bounding volume hierarchy of a low-level approximation of Sierpinski's gasket (right). Each vertex in Fig. 12.1 (left) represents the absolute position, orientation and size of a bounding volume or a primitive. The edges organize these elements into a hierarchy. 103 12.3 Ray-Hierarchy Intersection Here ray intersection parses the bounding volume tree in depth rst order, considering closer intersections before farther ones. Algorithm 12.3 Let B be a set of bounding volume hierarchies and primitives. Let R(o; b) be a ray and H be an empty heap. Then the rst intersection with R(o; ~d) and a primitive in B is computed by the following steps: 1. For each bounding volume or primitive B 2 B : : : 1.1. If R(o; ~d) intersects B then add (t0(R(o; ~d); B ); B ) to heap H: 1. 2. 2.1. 2.2. 2.3. 2.3.1. 2.3. 2. End \For." While heap H is not empty : : : Remove the minimal tuple (t0; B ) from the top of heap H: If B is a primitive then return t0: Otherwise for each object Bi beneath B in the hierarchy : : : If R(o; ~d) intersects Bi then add (t0(R(o; ~d); Bi); Bi) to heap H: End \For." End \While." Well organized trees contain fewer bounding volumes than primitives. Ordinarily, the number of ray intersection computations nominally exceeds the logarithm of the number of primitives, though in the extreme case, it can be as much as twice the number of primitives. 12.4 Object Instancing An instance is an anely distorted copy of an object. Instancing saves space since only one \master" object database need be stored, with a 4 4 matrix representing each instance of it. Furthermore, by building instances of instances, large \elds" of similar objects may be created where the actual number of instances is only a logarithm of the number of objects appearing in the scene. 104 Object instancing was rst described in [Sutherland, 1963] where it was used with hierarchical display lists. Object instancing was rst adapted for ray tracing in [Rubin & Whitted, 1980] as a method of reducing the size of object databases. Their technique allowed the city of Pittsburgh (38,000 primitives) to be rendered eciently using little memory by storing only 600 actual primitives. Procedurally generated parallelepipeds were used as bounding volumes in [Kay & Kajiya, 1986]. They exhibited a forest of trees (over 110,000 primitives) surrounding a cement pond. In [Snyder & Barr, 1987], oriented boxes bounded objects. The authors traded space for time by using a 3-D grids structure to reduce ray intersection computations. Using these techniques they rendered a carpet (125,000 primitives), a forest (2 billion primitives) and the still unsurpassed \eld of grass" (over 400 billion primitives). Object instancing removes redundant vertices from the hierarchy by allowing bounding volumes and primitives to have more than one parent. The resulting hierarchy is no longer a tree; it is an acyclic digraph. Figure 12.2 shows the approximation of Sierpinski's gasket specied by the positioning, orientation and size of only seven bounding volumes and one primitive. Here, only the top vertex species a bounding volume in absolute coordinates, the other vertices each specify only a bounding volume's or primitive's relative change in placement and shape with respect to its parent in the hierarchy. 12.5 Ray-Instance Intersection Each instance of a master object is produced by applying an ane transformation to each of its points. This can be quite tedious and memory consumptive. Each of the vertices of an instanced polyhedron must be computed from the master polyhedron, and stored for ray intersection. An sphere instanced as an ellipsoid requires a costly ray-quadric intersection computation. 105 Figure 12.2: An object-instancing topology (left) for the bounding volume hierarchy of a low-level approximation of Sierpinski's gasket (right). It is more ecient to apply the inverse ane transformation to the ray. The ane image of a ray consists of one point and one direction. Let M be an ane transformation matrix that takes master object B0 to B1: Then the intersection t0(R(o; ~d); B1) is found by intersecting the ray R(o1 ; ~d1) = R(oM ,1 ; ~dM ,1 ) (3) with the master object B0: Note the direction component ~d1 is probably not a unit vector. Nevertheless, o + t0(R(o; ~d); B1)~d = M (o1 + t0(R(o1 ; ~d1); B )~d1) (4) where B1 = fxM : x 2 B g: In particular, t0(R(o1; ~d1); B ) = t0(R(o; ~d); MB ): (5) Thus the t0 values one gets from algebraic ray intersection are comparable, regardless of the instancing transformations. 106 12.6 Cyclic Hierarchies: A Model for Linear Fractals Of particular interest in [Rubin & Whitted, 1980] was their treatment of bi-parametric surfaces. Using convex hull and subdivision properties, they were able to procedurally create a hierarchy of bounding boxes during ray intersection. At a xed terminal level of the hierarchy, these bounding boxes were treated as \point" primitives. Object instancing of fractal objects was suggested in [Fournier et al., 1982] though it was rst used in [Kajiya, 1983]. There procedural \cheesecake extents" (extruded triangles) hierarchically bounded a fractal mountain. A later improvement used bounding ellipsoids [Bouville, 1985]. One ray-traced fractal mountain mesh containing 262,144 primitives was shown in [Kajiya, 1983]. Most recently, object instancing was used in an animation of a multitude of robots cycling along a plane-lling curve [Amanatides & Mitchell, 1989]. Also, D. Hepting and D. Mitchell have modeled linear fractal shapes using tiny spheres but their ray-tracing programs (C. Kolb's \rayshade" and D. Mitchell's \FX"), though optimal for many other shapes, limited the renderable resolution of these linear fractal models. The main restriction to object instancing is that the hierarchy cannot contain a loop. If a loop occurs, then some rays will intersect bounding volumes forever, never reaching a primitive. Notice that the graph in Fig. 12.3 has no primitives. The primitives for Sierpinski's gasket are points, the limit of the bounding volume hierarchy as it converges to an uncountably innite set of bounding volumes of zero diameter. Hence, the primitives of a cyclic digraph are the bounding volumes themselves. 107 Figure 12.3: A cyclic topology (left) for the bounding volume hierarchy of Sierpinski's gasket (right). 12.7 Ray-Linear Fractal Intersection We can use the ray-instance algorithm to intersect a ray with a linear fractal. The only necessary alteration is the bounding volume hierarchy must be terminated at some nite level, resulting in tractable ray intersection. Algorithm 12.4 Let each element of B consist of an RIFS (w; G); a bounding volume B such that B contains the attractor of the RIFS. Let R(o; b) be a ray and H be an empty heap. Then the rst intersection with R(o; ~d) and an attractor from B is approximated by the following steps: 1. 1.1. 1.2. 1. 2. 2.1. 2.2. 2.3. For each RIFS (w; G) : : : Let o1 = oM ,1 and ~d1 = ~dM ,1: If R(o1 ; d~ 1) intersects B then add (t0(R(o1; d~ 1); B ); B; M ,1) to heap H: End \For." While heap H is not empty : : : Remove the minimal triple (t0; B; M ,1) from the top of heap H: If B is a primitive then return t0: Or if diam(M (B )) p(t0) then return t0: 108 2.4. 2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4. 2. Otherwise for each valid ane contraction wi 2 w : : : Let Wi be the homogeneous transform matrix representing the ane contraction wi: Let Mi,1 = M ,1 Wi,1 Let oi = oMi,1 and ~di = ~dMi,1: If R(oi; ~di) intersects B then add (t0(R(o; d~ ); B ); B; Mi,1) to heap H: End \For." End \While." Figure 12.4: Procedural bounding volumes instanced during ray-fractal intersection. In Figure 12.4 one ray and many instanced bounding volumes are shown. In reality, there is only one bounding volume and many instanced rays. The algorithm nishes when a primitive | a suciently small bounding volume | is intersected. Always subdividing the closest intersecting bounding volume guarantees that the rst intersection found is the closest to the ray origin. 109 12.7.1 The Bounding Volume Theorem Algorithm 12.4 depends greatly on the bounding volume hierarchy created by the RIFS. The Bounding Volume Theorem asserts the validity and eectiveness of this hierarchy. Theorem 12.1 (Bounding Volume Theorem) Let (w; G) be an RIFS with invariant set A = (A1; A2; : : :; AN ) = wN (A) (6) and let B A be a bounding set N -tuple of A: Let B = (B1; B2; : : : ; BN ) = wN (B) (7) denote the image of B under the recurrent Hutchinson operator. Then A B and hN (A; B) shN (A; B): (8) Proof: The premise A B implies wN (A) wN (B) = B (9) by simple set theory. Invariance of A under wN gives us A B : In the following chain, hN (A; B) = hN (wN (A); wN (B)) shN (A; B) (10) (11) (12) we have equality (10) by invariance of A and denition of B : From this, the recurrent version of Hutchinson's lemma (Theorem 4.2) implies (11), where s = i=1 max Lipwi: :::N 2 110 (13) When creating a bounding volume hierarchy, simple sets, rather than set N -tuples, are used. The initial bounding volume corresponds to the initial vertex of the RIFS digraph (as specied in Chapter 7). Then, in the heap, each bounding volume must also contain the index of the most recently applied map from the RIFS. This information is used to nd a \valid" map from the RIFS (as required in step 2.4 in Algorithm 12.4). As such, set N -tuples are incorporated into the standard instancing paradigm. Figure 12.5 shows the bounding volume hierarchy for Sierpinski's tetrahedron. Only the top bounding volume is specied, the rest are generated automatically from the IFS and are valid and ecient by the bounding volume theorem. 12.7.2 Analysis For the RIFS model, the diameter of the bounding volumes at each level n of the hierarchy is given by the left-hand side, and bounded from above by the right-hand side, of diamwi wi ,1 wi1 (B0) sn diamB0: n n (14) Thus the hierarchy traversal depth n is lower-bounded by p(t) n; (15) log diam B0 which is a variation on results derived in [Reuter, 1987; Hepting, 1991] for rendering 2-D linear fractals. The bounding volume hierarchy produced by the RIFS is more ecient when neighboring bounding volumes in the hierarchy do not intersect often. Ideally, the RIFS should have the open-set property with the initial bounding volume set to the closure of open set. Some attractors require overlapping constructions to be modeled eciently. Other constructions may have the open-set property but with a complex open set, such as the twindragon, which posesses the open-set property with the open set equal to its interior. In general, it is better to use the simplest, smallest initial bounding volume available. s 111 The most ecient bounding volumes are the canonical primitives such as the unit ball centered at the origin, or a likewise dened cone, cylinder, box. For such initial bounding volumes, sometimes the attractor must be anely deformed and translated to the origin to snuggly t inside the canonical primitive. Such attractors may be thought of as canonical attractors, which may then be transformed back into their intended form by an instancing operation. 112 Figure 12.5: Hierarchy of bounding volumes for Sierpinski's tetrahedron. 113 114 Chapter 13 FAST RAY-LINEAR FRACTAL INTERSECTION Suppose an RIFS (w; G) meets the following conditions: (a) Every map wi 2 w is an ane map of the form 2 66 1 0 66 0 2 wi(x) = x 66 66 0 0 4 a1 a2 0 0 3 a3 3 07 7 0 777 7 0 77 5 1 (1) and (b) the RIFS satises the open-set condition. This chapter shows that nding the rst ray intersection with the 3-D attractor of such a RIFS is equivalent to deciding if a point is in the attractor of a 2-D version of the RIFS. 115 13.1 A Locally Orthogonal Approximation to Perspective For each pixel in the image plane, let R(o; d) be a ray originating at the eyepoint extending through the center of the pixel. Mapping the results of each ray trace onto the resulting pixel comprises a perspective projection into the image plane. Given each ray R(o; d); construct the following homogeneous 44 transformation matrix: 2 32 32 3 1 0 0 0 d 0 d 0 1 0 0 0 3 1 66 76 76 77 66 0 1 0 0 777 666 0 1 0 0 777 666 0 qd21 + d23 d 0 777 2 6 7 6 7 6 q 2 2 7 (2) M =6 66 0 0 1 0 777 666 ,d1 0 d3 0 777 666 0 ,d2 d1 + d3 0 775 4 54 54 ,o1 ,o2 ,o3 1 0 0 0 1 0 0 0 1 which transforms R(o; d) to the z-axis by translating the ray's origin to the space's origin, rotates the ray into the y-z plane, and nally rotates the ray into the z-axis [Foley et al., 1990]. The orthogonal projection : R3 ! R2 is dened by the transformation matrix 2 3 1 0 0 0 66 7 66 0 1 0 0 777 7 = 66 (3) 66 0 0 0 0 777 4 5 0 0 0 1 which zeros the third coordinate of any vector its applied to. The application xM ; 8x 2 R(o; ~d) (4) maps the entire ray into the homogeneous 3-D origin: R(o; d) 7,M! (0; 0; 0; 1): (5) Thus the 3-D ray is projected to a single point, the origin, in 2-D. As far as the ray is concerned, this orthogonal projection is equivalent to a perspective projection. 116 13.2 Projected Recurrent Iterated Function Systems Consider an RIFS (w; G) consisting of maps composed only of translations and uniform scales. Let A R3 be its attractor and let R(A) 2 R2 be its orthogonal projection onto a plane perpendicular to ray R: Furthermore, let Wi be the homogeneous 4 4 transformation matrix equivalent of ane RIFS contraction wi: Then one can construct a new 2-D RIFS consisting of maps denoted by the transformation matrices (Wi) = M ,1 WiM (6) which takes each point, maps it back to the original space, applies map w to it, maps it back to the orthogonal space, and then zeros out its third coordinate. Since Wi is of the form sx + a; where s 2 R and a 2 R3; losing the third coordinate does not aect the resulting projected attractor. Let A be the attractor of this IFS. Then (A) = A ; the orthogonal projection of the attractor is the attractor of the orthogonal projection of the RIFS. 13.3 Ray Intersection via Point Inclusion Let U be an open set satisfying the open set property of the 3-D RIFS and let U be its orthogonal projection. If the attractor is connected then A 6 U; though for all attractors A U: Therefore, let B = U be the bounding volume of A : Furthermore, sort the RIFS maps such that i j implies that d(o; wi(B )) d(o; wj (B )): The ray R(o; d) projects to a point r 2 R2: Thus ray intersection problem is reduced to point inclusion. If r 2 A then ray R(o; d) intersects attractor A: One can determine point inclusion by applying the maps of (w) to B : If one of the mappings excludes r; then it is culled. Otherwise, the mappings are continually applied in 117 a depth-rst manner, with priority on sorted order, until a mapping's contractivity factor is such that it reduces B to pixel scale, or point r is culled from all such composed mappings. The ordering of the RIFS maps insures that bounding volumes occluding other bounding volumes will be searched rst. The open-set condition insures that no point from a further bounding volume will occlude points from a nearer one. Hence, the rst located hit will be the hit closest to the ray origin. 118 Chapter 14 INITIAL BOUNDING VOLUME CONSTRUCTION Both ray-fractal intersection algorithms require an initial bounding volume B that contains the attractor of the RIFS. When one models an object as a linear fractal using the Collage Theorem, the bounding volume of the original object often suces as the bounding volume of the linear fractal. When exploring the parameter space of linear fractals, one often has no a priori knowledge the shape or scale of the resulting attractor; one is required to bound an unknown object. In short, visualization of a linear fractal, in general, requires the algorithmic construction of an initial bounding volume. The following discussions focus on the IFS model. Since the attractor of an RIFS (w; G) is embedded in the attractor of the IFS w; the bounding volume of the attractor of the IFS also bounds the attractor of the RIFS, though perhaps not to the desired precision. 119 14.1 An Iterative Method Let A be the attractor of an IFS w: One can infer from Corollary 3.7 that if a bounding volume B has the property B w(B ) (1) then B A: Given any initial set B0; repeated application of the Hutchinson operator will produce (by Corollary 3.7) the attractor. But the attractor is not a desirable bounding volume. Instead we have the following algorithm. Algorithm 14.5 Let w be an IFS with attractor A: Let B0 be any ball Br0 (x0); r0 > 0; x0 2 Rn and let Bi = Br (xi) be a sequence of balls of minimal radius ri such that i Br (xi) w(Br ,1 (xi,1)) i i (2) with xi 2 Rn dependent on ri : In other words, each Bi is a ball whose diameter equals the diameter of the image of Bi,1 under the Hutchinson operator. When centered properly, Bi contains w(Bi,1: The sequence fBi g converges to the limit B = ilim B (x ); !1 r i i (3) and, furthermore, A B: It seems one should be able to state this algorithm as a theorem and prove it. Unfortunately, the tools required for proof are very geometric in nature and beyond the scope of this dissertation1. 1 and the abilities of its author. 120 14.2 Computational Geometric Methods The problem of nding a minimum bounding disk for a 2-D set is called the \Minimum Enclosing Circle Problem" [Preparata & Shamos, 1985]. Computation geometry concentrates on nite sets; the amount of time their solution takes to compute a set's smallest enclosing circle is a strictly increasing function of the number of points in the set. Unfortunately, fractals have uncountablely many points. This hurdle is overcome by approximating the attractor with a nite set. One such set consists of the xed points of nitely-many nite-length map compositions [Dubuc & Elqortobi, 1990]. First, let A be the set of xed points of nite map compositions (of minimal length) that take A to a set of diameter no larger than : Denition 14.1 Let w = fwigNi=1 be an IFS. A point x 2 A if and only if there exists a sequence i1; i2; : : :; ik such that x = wi1;i2;:::;i (x) (4) k and diam(wi1;i2;:::;i ,1;i (A)) < diam(wi1;i2;:::;i ,1 (A)) k k k (5) Second, we restate the following theorem from [Dubuc & Elqortobi, 1990]. Theorem 14.1 Let A be the attractor of IFS w = fwig: Then h(A; A) : (6) Thus, for the purpose of nding an optimal bounding ball, we approximate the uncountable set A with the nite set A: Now, given a nite set, any number of methods may be used to nd a bounding ball. Two algorithms (O(N log N ) and optimal O(N )) are given in [Preparata & Shamos, 1985] for the 2-D case. Both rely on Voronoi diagrams, whose complexity increases exponentially 121 with dimension. Rather than develop the sophisticated tools of computational geometry in 3-D, we instead choose an approximation which suces for this purpose. The approximation, from [Ritter, 1990], runs in O(N ) time and claims to approximate the minimum bounding ball within 5%. Algorithm 14.6 Let A be the nite set approximation of attractor A; consisting of N points in Rn: Then an approximate minimum bounding ball Br (o) can be found by the following steps. 1. 2. 3. 4. 4.1. 4.1.1. 4.1.2. 4.1.3. 4.1. 4. For each coordinate i = 1 : : : n dene the two points x+(i) and x,(i) as x+(i) = maxx2A xi and x,(i) = minx2A xi: Let (x+; x,) be the pair (x+(i); x,(i)) of largest distance jx+(i) , x,(i)j: Let o = x++2 x, and r = jx+,2 x, j : For x 2 A : : : If jx , oj > r then : : : Let = r+jx2,oj : Let o = o + r(jxx,,ooj) : Let r = : End \If." End \For." 122 Chapter 15 THE SIZE OF A PIXEL The ray-fractal intersection algorithm needs to know the size of a pixel to determine if a bounding volume is to be treated as a primitive or not. Perspective distortion dictates that the diameter of an object's projection is proportional to its distance from the viewpoint. Hence, the size of a pixel is a linear function of the distance from the viewpoint to the ray-object intersection. The idea of measuring the size of a pixel has appeared in numerous papers, though it wasn't until [Barr, 1986] that it was derived rigorously. We continue in that tradition with original results: bounding the [Barr, 1986] approximation and deriving similar results for shadows and planar reections. 15.1 Eye-Ray Formulation The horizontal extent of a pixel projected a distance t from the ray origin was originally approximated in [Barr, 1986] as 2 p(t) 2 sin (1) Nh t; 123 where is the eld-of-view and Nh is the horizontal resolution. The frame buer is assumed one unit from the ray origin. Eq. (1) is actually the maximum horizontal extent of any pixel from the middle scan-line. The horizontal size of a pixel from any scan line is bounded by 2 tan 2 Nh cos12 2 + 1 t tan2 2 2 A2 2 p(t) 2 tan N t h (2) (illustrated in Fig. 15.1), where A is the aspect ratio (A = NN if the pixels are square.) h v max p(t) min p(t) Nv 1 Nh Ro Figure 15.1: Pixel size geometry. The exact size of a pixel at each pixel coordinate can be determined but, except for large viewing screens or head mounted displays where the eld-of-view is large, it is usually much better to keep the size of a pixel constant for xed t: 124 15.2 Light-Ray Formulation If shadow rays are cast from the light source to the surfaces, then the size of a pixel can be used as a \closeness criterion" to determine if light rays reach the intersection point on the surface [Barr, 1986]. If the shadow rays are cast from the surface to the light source, then the ray's origin Ro can be translated by p in the ray's direction Rd to avoid immediate self-intersection. The eye-ray formulation of pixel size does not apply to light rays. Two cases, where the resolutions of a fractal's shadow and the shadowed surface dier, illustrate this point. (1) A distant light source illuminates a linear fractal, shadowing a closely inspected surface. Light rays cast from the light source to the surface will produce shadows of lower resolution than the surface while light rays cast from the surface to the light source will produce shadows of higher resolution than the surface. (2) A light source illuminates a nearby linear fractal, shadowing a distant surface inspected from a viewpoint farther than the light|fractal distance but closer than the fractal| surface distance. Rays cast from the light source to the surface will produce a shadow of higher resolution than the surface. Conversely, rays cast from the surface to the light source create a shadow of lower resolution than the surface. The light-ray pixel size is derived by setting the size of a pixel to zero at the light source and to the eye-ray pixel size at the surface. Let te be the distance from the eye to the surface and tl be the distance from the surface to the light. If the rays are cast from the light source to the surface then the size of a pixel pl (t) at distance t from the light source, as shown in Fig. 15.2, is given by pl(t) = p(tte ) t: (3) l If the rays are cast from the surface to the light source, then the size of a pixel at distance t from the surface is pl (t) = p(tte) (tl , t): (4) l 125 tl te p(te ) pl (tl ) Figure 15.2: Light ray pixel size geometry. 15.3 Reection/Refraction-Ray Formulations Planar reection causes a new ray to be generated. Thus, the formula for the size of a pixel from this new ray origin almost always diers from the previous formula. The reected size of a pixel is computed using a new viewpoint E1 found by reecting the original viewpoint, denoted as E0, across the plane P = (a; b; c; d)T . Let N = (a; b; c)T be the unit normal vector of plane P and let x = Ro + tRd be the point that ray R intersects plane P: The new viewpoint is then E1 = E0 , 2jN (E0 , x)jN: (5) Then the reected size of a pixel is given by pr (t) = jRp(,te )E j (t + jRo , E1j); o 1 126 (6) where Ro is the origin of the reection ray and p(te) is the size of a pixel at the previous ray-plane intersection point Ro. Reection and refraction from curved surfaces can change the size of a pixel dramatically. A ray tracing microscope, constructed out of refractive solids, is alluded to in [Barr, 1986]. Even though this magnifying glass would increase the sampling resolution of the magnied object, the size of a pixel would not be dramatically decreased and the sub-pixel primitives would be magnied and become visible. 127 128 Chapter 16 THE LIPSCHITZ CONSTANT OF AFFINE MAPS 16.1 Estimating the Lipschitz Constant Since the diameter of a bounding volume is tested against the diameter of a pixel, in most cases, an estimate of the bounding volume's diameter suces. These estimates are much easier and faster to compute than the actual value for the Lipschitz constant of an ane map. 16.1.1 A Lower Bound The lower bound of the Lipschitz constant of the composition of ane maps (whose Lipschitz constants are know a priori)1 is the product of the Lipschitz constants of the individual maps Lipw1 w2 wk k Y i=1 Lipwi: (1) Often ane transformations are constructed from parameterized canonical ane transformations whose Lipschitz constants are trivially derived. 1 129 If the wi are similtudes, then the inequality in (1) can be replaced with equality. For general ane maps wi, this method provides only an upper bound, one which can be miserable in some extreme cases, as shown explicitly in [Hepting et al., 1990]. 16.1.2 An Upper Bound Let W be the 4 4 homogeneous transformation matrix representation of an ane map w : R3 ! R3: Then its determinant is the change in volume of the set w(B )) det W = vol( vol(B ) (2) where B R3: Since volume of a set is proportional to the cube of its diameter, with this proportion maximal when the set is a ball, we have the lower bound p Lipw 3 det W: (3) As before, if the wi are similtudes, then the inequality in (3) can be replaced with equality. In general, this method provides only a lower bound. 16.2 Computing the Lipschitz Constant The most accurate method for determining the Lipschitz constant of a homogeneous ane transformation matrix M is by using a polar decomposition. 16.2.1 Polar Decomposition Let T be the linear part (the upper-left 3 3 submatrix) of M: Then T; being real, square and invertible, can be decomposed into two component parts T = QS 130 (4) where Q is orthogonal and S is a symmetric positive denite matrix [Strang, 1988]. Component Q orients, S scales. We are concerned with S: The component S is found from the derivation TTT = = = = (QS )T QS S T QT QS SQ,1QS S 2: (5) (6) (7) (8) The Lipschitz constant of w is found as the largest eigenvalue of S: 16.2.2 Computing Eigenvalues The matrix T T T is symmetric and so is S 2: The eigenvalues 1; 2; 3 of S 2 are real and can be found algorithmically using Jacobi transformations [Press et al., 1988]. The resulting Lipschitz constant of w is thus found as q i : (9) Lipw = imax =1;2;3 131 132 Chapter 17 HIERARCHICAL SHADING As mentioned in Chapter 11, surface normals are undened on fractals. In order to visually perceive a 3-D object, one depends heavily on shading cues to represent surface orientation. This chapter proposes a shading approximation for fractal surfaces based on their hierarchical representations. 17.1 Formulation Consider a natural linear fractal: cauliower. The surface of a cauliower is made of an extremely large number of small buds. Shading a surface containing such tiny buds will likely exceed the Nyquist limit and will be prone to aliasing [Shannon, 1949]. Hierarchical shading is based on the idea that the cauliower surface reects light diusely as a sphere since the small buds loosely approximate the surface of a sphere. The cauliower reects light more like several medium-sized spheres since the buds more closely approximate them. The illumination of many smaller spheres even more accurately represents the light reected by these buds. 133 17.2 Diuse Illumination Until the reectance properties of fractal surfaces are better understood, they should be rendered diusely. Specular reections produce highlights, which are a useful cue to the perception of surface orientation. Unfortunately, highlights also give the perception of smooth surfaces, which fractals necessarily do not have. Using Lambert's law, the illumination color c(x) of a surface point x is computed as L X c(x) = ka cacx + kd (~n ~li)cicx i=1 (1) where ka and kd are the respective percentages of ambient and diuse contributions, ca; cx and ci are the respective colors of the ambient light, the surface and the light sources, ~n is the surface normal at point x and ~li is a unit vector in the direction of the ith light source from point x: The light vector ~li is uniform across the surface for a \directional" light source. The light vector varies across the surface for a \point" light source and is constructed for each point x on the surface as ~li = o , x (2) jo , xj i i where oi is the location of the point light source. 17.3 Denition Hierarchical shading is created as the weighted sum of the shading of the bounding volumes containing a surface. Suppose ray R(o; ~d) intersects the surface at point x: Let Bi be a descending sequence of bounding volumes that converge to point x: Then the hierarchical shading of surface point x is computed as the weighted sum P1 w(diam(B ))c(y ) i i =1 ch (x) = iP (3) 1 w(diam(Bi )) i=1 134 where w : R ! R is a weighting function, yi is the point ray R(o; d~ ) intersects bounding volume Bi and c(yi) is the illumination at point yi as dened by (1). One shortcut in the computation of (3) is to compute a \total" normal as the weighted sum the surface normals. Hierarchical shading may then be approximated by diusely illuminating point x by this total normal. This approximation is accurate for directional light sources (where the light vector is uniform across the surface) but errors proportionate to the diameter of the bounding volumes for point light sources (where the light vector varies across the surface). 17.4 Weighting Methods The choice of weighting function directly aects the appearance of the hierarchical shading. Three linear weighting functions are oered here, though other functions, perhaps non-linear, may be required to provide a desired eect. 17.4.1 Constant Weighting The constant weighting function sums the shading of all encountered bounding volumes uniformly so that the shading of the initial bounding volume contributes as much as the shading from a terminal bounding volume. The constant weighting function is dened simply as w(x) = 1: (4) A graph of this weighting function for an RIFS with contractivity factor s is shown in Figure 17.1a. Though the shading of all bounding volumes is weighted uniformly, the constant weighting is not uniform across scale; the shading is biased toward the smaller bounding volumes. 135 17.4.2 Low-Pass Weighting The low-pass weighting function removes the scale bias of constant weighting by weighting the shading of smaller bounding volumes less than the shading of larger bounding volumes. It is dened as w(x) = x (5) and its graph is shown in Figure 17.1b. 17.4.3 High-Pass Weighting The high-pass weighting function dampens the surface normals of larger bounding volumes and emphasizes the surface normals of the smaller bounding volumes. It is dened as w(x) = diam(B0) , x (6) where B0 is the initial bounding volume. Its graph is illustrated in Figure 17.1c. W e i g h t 0 s2 s diam(B ) (a) High-Pass Low-Pass Constant 1 0 s2 s diam(B ) (b) 1 0 s2 s diam(B ) 1 (c) Figure 17.1: Shading weight functions for (4), (5) and (6), respectively. 136 17.5 Analysis Hierarchical shading can be compared to standard Lambertian shading by modeling a Euclidean surface with an RIFS. One such model is an extruded Sierpinski's gasket. This hybrid shape looks like the standard planar Sierpinski's gasket when viewed down the axis of extrusion, but when viewed perpendicular to this axis, it reveals a planar surface. Three extruded Sierpinski's gaskets appear in Figure 17.2 corresponding to the weights from (4), (5) and (6), respectively. The high-pass weighting produces moire patterns which are almost completely suppressed by the constant weighting. The low-pass weighting does not reveal much detail, particularly from the fractal side of the middle extruded Sierpinski's gasket. The analysis consists of comparing the hierarchical shading from each of the three types of weighting functions on the planar surface of the extruded Sierpinski's gasket with the normal of a similarly oriented plane. Let n~ c be the surface normal approximated by the high-pass weighting function (4), let ~nl be the surface normal approximated by the lowpass weighting function (5), and ~nh be the surface normal approximated by the high-pass weighting function (6). Furthermore, let ~np be the normal of a similarly oriented plane. The discrepancies between the hierarchically dened surface normals and the analytically dened surface normals for 10; 000 samples were measured by their dot product and plotted in Figure 17.3. The constant and high-pass weighting functions produced very narrow distributions about the central value whereas the distribution of the low-pass weighting function is broader. Each distribution had mode one; the most common hierarchically approximated surface normal for this surface is the analytically dened surface normal. The standard deviations of the three distributions about this one central value were :036; :084 and :031; respectively. 137 Figure 17.2: Extruded Sierpinski's gaskets shaded by constant (left), low-pass (middle), and high-pass (right) shading modules. 138 # of points 1=2 Nc Np 1 1=2 Nl Np 1 1=2 Nh Np 1 Figure 17.3: Distribution of surface normals for Eqs. (4), (5) and (6). 17.6 Evaluation Since the bounding volumes a ray intersects vary depending on the direction the ray is coming from, the hierarchical shading of the same surface may appear dierent when viewed from dierent angles. In the experience of creating several animations, this artifact has never blatantly presented itself, though subtle changes are sometimes noticed. Hierarchical shading is by no means an analytically correct method for shading fractal surfaces. The actual surface normal of a fractal is likely multivalued: a distribution of surface normals that must be integrated for proper shading computations. Nonetheless, hierarchical shading does a good job of cueing the orientations of fractal surfaces. It proper use is for visualization and was not intended to produce analytically correct renderings. 139 140 Chapter 18 LOCAL COVERS Aliasing is a current problem in computer graphics for which many solutions have been oered. It is no less a problem in the rendering of fractal sets. Indeed, the detail these sets oer is much more than most antialiasing algorithms expect. This chapter extends the area sampling methods of [Thomas et al., 1989] into the author's original work regarding the rendering of linear fractals, though the results apply to any number of other fractal and non-fractal models. 18.1 Covers A cover is a set of two bounding volumes that are a pixel's width larger and smaller than the set [Thomas et al., 1989]. Denition 18.1 A cover of a set A Rn and ray R(o; ~d) is the pair (B +; B ,) 2 (Rn)2 dened B + = A + p(t0) B , = A n (@A + p(t0)) where t0 = t0(R(o; ~d); A): 141 (1) (2) Rays are tested against the outer cover B +; then the set A and then the inner cover B ,: If the ray intersects the outer cover but not the inner cover then a sillhouette edge passes through the pixel in the image plane. When this happens, the pixel should receive some portion of illumination from the surface, the remainder coming from the further exploits of the ray. In [Thomas et al., 1989], the minimum distance from the ray to the surface d = inf fjx , yj : x 2 R; y 2 B g is used to interpolate the illumination as 8 > 0 if d > p(t0) and R(o; ~d) misses A; > > > > ~ > < p(t0),d if d > p(t0) and R(o; d) misses A; k(d) = > 2p(t0) if d p(t) and R(o; ~d) misses A; > p(t)+d ~ > > 2p(t0) if d p(t) and R(o; d) hits A; > > : 1 if d > p(t0) and R(o; d~ ) hits A (3) (4) which is a piecewise linear ramp function. Shadow sillhouettes on the surface are similarly blended, creating smoother, slightly softer shadows on surfaces. However, these shadows may still be aliased on the image plane depending on the orientation of the shadow surface. Here, [Thomas et al., 1989] suggests projecting the distance between the shadow ray and the shadowing surface onto the shadowed surface (approximated by a tangent plane). Then project this distance onto the image plane to nd the proper blending proportion. Reected and refracted sillhouettes are treats in the same way, though simulating the reecting/refracting surface with a tangent plane is not accurate for surfaces of high curvature. In this case, the authors of [Thomas et al., 1989] suggest other forms of antialiasing. A transfer function is used to blend the color of a surface with its background. Several transfer functions are available from the area of volume rendering [Kajiya, 1983], etc.; the 142 simplest, used here, are the linear approximations used for image compositing [Porter & Du, 1984]. If c and are the current encountered ray color and opacity and cA and A are the color and opacity of shape A, then the linear transfer functions are, for source to surface ray traversal, c = c + (1 , )A cA; = + (1 , )A; (5) (6) and, for surface to source ray traversal (sometimes used for light rays), c = (1 , A)c + A cAm = + (1 , )A : (7) (8) One main drawback of covers has not received a fair treatment in the literature (including [Hart & DeFanti, 1991]): each intersecting cover requires rays to be cast to each light source for illumination. This can be quite tedious for rays that graze many surfaces. Fortunately, this happens infrequently. The most major drawback of covers is their limitation to simple geometries. Section 7 of [Thomas et al., 1989] constructs covers for spheres, ellipsoids, planes, splines, CSG objects and polyhedra. Nonetheless, highly detailed geometries, created from such techniques as micropolygons or displacement maps, are very dicult to cover eciently. Fractal surfaces are exceptionally problematic for such object methods. The next section solves this problem by covering a highly detailed object by concentrating on the sections near the ray. 18.2 Local Covers A local cover covers a single primitive; their union over the object forms a cover as described above. If the primitives are organized hierarchically using bounding volumes, then the a 143 bounding volume from the hierarchical ancestry of a primitive can be used as its local cover. Denition 18.2 A bounding volume B in an hierarchy of bounding volumes B is a local cover of a point on a surface if and only if (a) B intersects R; (b) The diameter of B falls within preset bounds min and max; and (c) none of B 0s children in the hierarchy intersect R: The values min and max denote the bandwidth of the local covers. They are most eective when set proportional to the size of a pixel p(t): The bandwidth is used to avoid computing the minimum distance between the ray and the surface. The upper limit of the bandwidth, max; is the scale at which bounding volumes take on non-zero opacity. It resembles the value r from [Thomas et al., 1989]. We suggest setting it to 2p(t), twice the size of a pixel. The lower limit, min; is the scale at which bounding volumes are completely opaque; no further subdivision is performed. Intersecting such a bounding volume is reminiscent of intersecting the inner cover from [Thomas et al., 1989] at a distance greater than r from the surface. Section 5 of [Barr, 1986] suggests setting min to 201 p(t), which appears good. As before, a simple piecewise linear function of diameter produces the desired opacity values for local covers, 8 > 1 if diam(B ) < min; > > < diam(B ), B = > 1 , max, min if min diam(B ) < max; (9) min > : 0 otherwise. 144 18.3 Evaluation An example of the results of antialiased rasterization using local covers can be seen in Figure 18.1. This gure is an enlargement of a 32 by 32 pixel area from Figure 20.1. Notice the blending into the background of the hard diagonal edge. Figure 18.1: Detail of antialiased rasterization using local covers. The animation [Hart, 1991] was plagued with aliases in its depiction of grass, due to several reasons. The rst was that there was not enough memory available in the Pixel Machine to nd the correct Lipschitz constant computation. Instead, the determinant was used and the grass transformations, which squashed and stretched the entire eld of grass into each blade, were far from similtudes. The second reason was that the eld-of-grass-to-a-single-blade transformation had a small Lipschitz constant (with even smaller determinant). This meant that few, if any, bounding 145 volumes fell within the local cover bandwidth. Thus, proper blending proportions were rarely found, resulting in an all-or-nothing rasterization. Finally, the special technique for shadow silhouettes developed in [Thomas et al., 1989] used a tangent plane surface approximation, and so is not applicable to fractal surfaces. Hence, extremely rough surfaces (with Hausdor dimension approaching 3), such as grass, will likely produced heavily aliased shadow silhouettes. Covers are an approximation. Local covers approximate covers. Both are based on the assumption that the proportion of the pixel lled with a shape's projection is related to the distance from the ray to the surface. It is easy to construct convoluted counter-examples where this assumption is not true. Furthermore, fractal surfaces often test approximation techniques harshly. Local covers, like [Thomas et al., 1989] covers, do not produce area samples as accurately as supersampling techniques. They are, however, quite ecient, requiring only one eye ray per pixel. 18.4 Extensions and Applications The bounding volume hierarchy itself may be visualized by setting max = 1 and using a constant fractional opacity value. This makes all of the bounding volumes uniformly translucent. An example of this appears in Fig. 12.5. The algorithms in [Kajiya, 1983; Bouville, 1985] are examples of stochastic instancing, where the instances of each bounding volume are randomly perturbed. The same kind of bounding volume hierarchy is used for these random fractals as is used for linear fractals. Hence, the smaller \cheesecake extents" and \bounding ellipsoids" may be used as local covers for antialiasing these fractal terrain models. In [Nishita et al., 1990] (a recent improvement to an algorithm in [Rubin & Whitted, 1980]), rational bezier surfaces are subdivided, creating a hierarchy of bounding volumes 146 extending down to the point level. Ironically, the same algorithm that antialiases fractal surfaces can antialias smooth surfaces as well. In [Hart et al., 1989], quaternion Julia sets were rendered using a distance estimate to compute the radius of so-called \unbounding volumes." When rays graze the surface, the diameter of these unbounding volumes reduces as the bounding volumes in the linear fractal case. Hence, the diameter of the unbounding volume can be used as the diameter of a bounding volume in the opacity computation. Local covers may be simulated for quaternion Julia sets. When any complicated database is viewed from a distance, it is phenomenologically fractal | that is, interesting at all visible levels of detail. Thus, the bounding volume hierarchy may be pruned at a higher level than the primitive level to save computation time. This technique is given a thorough treatment in [Thompson, 1991]. 147 148 Part V CONCLUSION 149 Chapter 19 IMPLEMENTATION These algorithms and methods were developed on an AT&T Pixel Machine 964dX [Potmesil & Hoert, 1989]. The Pixel Machine is a parallel MIMD image computer consisting of 64 AT&T DSP32 digital signal processors. The frame buer is distributed among the 64 processors such that every eighth pixel in the horizontal and vertical directions are connected to the same processor, but to no other processor. Serial communication is available along a toroidal topology between processors but was not used in this implementation. The AT&T DSP32 digital signal processor is a single precision pipelined processor with a peak performance of 10 MFLOPS and 5 MIPS. The MFLOPS rating is twice the MIPS rating since a single instruction can perform a multiplication and an add. Often, the compilers for such processors do not take full advantage of their capabilities. Hence, much of the code for these processors was written at a low level, often with assembler directives in the \C" code. The Pixel Machine's memory architecture, under the DEVtools operating system, contains 36kB of available programming space, limiting the size of programs signicantly. Lower speed data space is also available, in three large chunks which are commonly used for the frame buer, the texture space and the z-buer. In the implementation of the previously described algorithms, the 36kB programs space 151 constraint was overcome by the following. The heap, containing the transformation matrices, top level bounding volume pointers, and color and shading information, was kept in the zbuer memory, with a maximum of 256 entries. The shape database, containing the iterated function systems and object databases were stored in the back frame buer. The texture memory was left available for 2-D texture maps. A program on the host, a Sun 4, interpreted modeling les and passe the derived raw data to the Pixel Machine for rendering. Upon completion, the rendered image could be saved in a le for later redisplay. 152 Chapter 20 EXHIBITION Two examples, showing the range of linear fractals, from visualization to image synthesis, from the geometric to the natural, from inside to the outdoors, are described and exhibited. Color versions may be found in [Hart & DeFanti, 1991]. The iterated function system codes used to produce these images may be found in Appendix B. 20.1 The Five Non-Platonic Non-Solids The ve non-Platonic non-solids are a satire of the ve Platonic solids: the tetrahedron, octahedron, hexahedron, icosahedron and dodecahedron. The ve non-Platonic non-solids are: Sierpinski's tetrahedron, octahedron and icosahedron, Menger's sponge and von Koch's snowake-a-hedron. These shapes are non-Platonic for their fractal, non-Euclidean, geometries. They are non-solids since each one has innite surface area and/or zero mass. Sierpinski's tetrahedron and octahedron, and Menger's sponge have the open-set property. Sierpinski's icosahedron and von Koch's snowake-a-hedron do not have the open-set property but do exhibit this property on their faces. Sierpinski's gasket may be found in the woodgrain oor. 153 Figure 20.1: The ve non-Platonic non-solids. 154 20.2 Fractal Forest The fractal forest demonstrates the power of linear fractals in modeling nature. In this scene, every leaf, pine needle, piece of bark and blade of grass is accounted for in the linear fractal model and those visible are rendered. The elm trees are composed of a trunk with four smaller elm trees extending from it. The trunk itself consists of three small stretched upright elm trees and three small stretched inverted elm trees. The bark is actually the stretched image of the foliage. The pine trees consist of six base branches and one \rest of the pine tree" section. The pine tree is cone-shaped, as are its branches. Real pine branches are thin at the base and become larger at their ends. These pine trees were modeled with IFS models; an RIFS model would do a better job. Finally, as mentioned at the end of Chapter 18, the eld of grass is tiled using a twindragon shape. The blades themselves are actually themselves elds of grass, though compressed and stretched to form individual blades. 155 Figure 20.2: The fractal forest. 156 Chapter 21 FURTHER RESEARCH This dissertation is by no means a complete solution to the problems of rendering fractals. The following areas are in much need of attention. This dissertation concentrates on linear fractals. As detailed in the introduction, many other kinds of fractals exist. Only a handful of methods have been developed for rendering or otherwise visualizing fractal sets in 3-D. Other fractal sets whose research would benit from ecient rendering methods are the many strange attractors from physics, the cubic connectedness locus [Milnor, 1991] and the family of deterministic fractal sets in the quaternions [Norton, 1989b], to name a few. The section on modeling surveys methods for automatically modeling objects as linear fractals. This specic area has vast implications in the area of data compression and is still much in its infancy. The problem of nding an optimal initial bounding volume remains largely unsolved, though does not appear to be signicantly dicult. The shading of fractal surfaces has yet to receive a thorough, rigorous treatment. Fractal surfaces lack tangent planes | surface normals | though it can be shown that a distribution of surface normals more accurately portrays the reectance properties of fractal surfaces. 157 Furthermore, it is likely that extruded fractal surfaces, such as those found on quaternion Julia sets and some strange attractors, reect light anisotropically. Until more research is done, Lambert's diuse reection model is recommended when rendering fractal surfaces. Finally, the problem of aliasing is particularly problematic with fractal sets. The use of local covers eciently inhibits aliases. Nonetheless, the self-similarity of fractal sets should be exploited to better compute the rasterization integral, eliminating aliases with a more accurate approximation. 158 APPENDICES 159 Appendix A METRIC SPACE ESSENTIALS This appendix derives the basics of metric spaces used in the dissertation, for the benet of those readers not fortunate enough to have taken the course. It is based largely on [Kaplansky, 1977]. Denition A.1 A metric space is an ordered pair (X; d) where X is a set (space) and d : X2 ! R is a real function (metric) satisfying d(x; x) = 0; 8x 2 X; (1) d(x; y) > 0; 8x; y 2 X; x = 6 y; (2) d(x; y) = d(y; x); 8x; y 2 X; (3) d(x; z) d(x; y) + d(y; z); 8x; y; z 2 X: (4) The Euclidean metric on space Rn is dened as the root of the sum of squares, namely ! 12 N X 2 d(x; y) = (xi , yi) : (5) i=1 We will almost always use the Euclidean metric. The only other metric used here is the chessboard metric, dened d(x; y) = i=1 max x , yi : :::N i 161 (6) The dierence between the two metrics can be observed by drawing curves of equal distance about a point. In R2 the Euclidean metric yields a circle, the chessboard metric, a square. Such a curve and the regions it bounds is called a \ball." Denition A.2 The ball Br (x) of radius r about a point x in metric space (X;d) is dened Br (x) = fy : d(x; y) rg: (7) Let Ur (x) be dened similarly to (7) but with the strict inequality Ur (x) = fy : d(x; y) < rg: (8) Then Ur is an \open" set and is used to dene all open sets of a metric space. Denition A.3 A set U of metric space (X;d) is open if and only if for each point x 2 U there exists a positive r such that Ur (x) U: (9) Theorem A.1 Let U be any collection of open sets of metric space (X;d): Then V= [ U 2U U (10) is open. Proof: Let x be any point in V: Then x 2 U for some open set U 2 U : Since U is open, there exists a positive r such that Ur (x) U; and since U V; Ur (x) V: 2 Theorem A.2 Let U be any nite collection of open sets of metric space (X;d): Then V= \ Ui 2U is open. 162 U (11) Proof: Let x be any point in V: Then x 2 Ui for all Ui 2 U : Since each Ui is open, there exists a corresponding positive ri such that Ur (x) Ui : Let i Then Ur (x) 2 V: 2 r = i=1min r: :::cardU i (12) Denition A.4 Let x1; x2; : : : be a sequence of points in metric space (X; d): The sequence converges to a limit point x 2 X if and only if, for any > 0 there exists an N large enough that for all i > N; d(xi; x) < : (13) Denition A.5 A set A of metric space (X; d) is closed if and only if any sequence x1; x2; : : : of points xi 2 A that converges to a point x 2 X; implies that x 2 A: Theorem A.3 Let A be a subset of X and let U = Xn A: Then A is closed if and only if U is open. Proof: Let U be open and let x1; x2; : : : be any sequence in A converging to a point x 2 X: If x 2 U then Ur (x) U for some positive r: But given an r implies an N such that d(xi ; x) < r for some i > N; implying xi 2 U ! Thus, x 2 A and A is closed. Let A be closed and let x be a point in U such that Sr(x) 6 U for any positive r: Then let ri = 1i (14) dene a decreasing sequence of radii. For each ri let xi be any point in A \ Ur (x): Then xi converges to x: But for each i; xi 2 A which is closed, implying x 2 A: Thus, every x 2 U is surrounded by an open ball in U and U is open. 2 i Corollary A.4 Let A be any nite collection of closed sets of metric space (X; d): Then B= is closed. [ Ai 2A 163 Ai (15) Corollary A.5 Let A be any collection of closed sets of metric space (X; d): Then B= \ A2A A (16) is closed. Denition A.6 Let (X; d) be a metric space and let x1; x2; : : : be a sequence in X such that for any > 0 there exists an N > 0 such that d(xi; xj ) < (17) for all i; j > N: Then (X; d) is a complete metric space if and only if all such previously described sequences in X converge to a point in X: Denition A.7 Let A be a subset of metric space (X;d): Then A is compact if and only if given any collection of open sets U such that A [ U 2U U (18) there exists a nite sub-collection V U such that A [ U 2V 164 U: (19) Appendix B DOCUMENTATION This appendix documents the codes used to describe iterated function systems that modeled the objects illustrated in this dissertation. The codes are part of a parameter le interface to a rendering system developed on the AT&T Pixel Machine 964dX using a Sun 4 host. The \newmap" specication initializes a new transformation matrix to the unit matrix. The other commands simply post-multiply the implied transformation matrix to the current one. B.1 The Extruded Sierpinski's Gasket Any 2-D IFS may be extruded into 3-D by duplicating its transformations. The original set of transformations is scaled by one-half in the z-axis and then translated by one-half in the positive z direction. The duplicate set of transformations are likewise scaled in the z-axis but a translated in the negative z direction. ifs esg { newmap scale: 0.5,0.5,0.5 translate: 0,0,-0.5 165 newmap scale: 0.5,0.5,0.5 translate: 0.5,0,-0.5 newmap scale: 0.5,0.5,0.5 translate: 0,0.5,-0.5 newmap scale: 0.5,0.5,0.5 translate: 0,0,0.5 newmap scale: 0.5,0.5,0.5 translate: 0.5,0,0.5 newmap scale: 0.5,0.5,0.5 translate: 0,0.5,0.5 } B.2 Natural Models The natural models are examples of the power of linear fractals for simulating natural objects. 166 B.2.1 Grass The grass model uses a twindragon curve to eciently ll space. The blades of grass are images of a single central blade which is itself a small squashed version of the whole. The value of 0.96 was determined visually to produce a full lawn. A lesser amount produces a sparse, spikey lawn, whereas an amount closer to one produces a lawn that appears too solid. The grass IFS is specied so that it will t snugly inside a sphere of radius three. The grass should be \mowed" with a nal contraction in the y-axis. ifs grass { newmap scale: 0.707,0.96,0.707 rotate: y,45 translate: -1,0,0 newmap scale: 0.707,0.96,0.707 rotate: y,45 translate: 1,0,0 newmap scale: 0.25,0.01,0.01 rotate: z,90 translate: 0,0.707,0 } object grass { 167 sphere: (0,0,0) 3 color: 0,0.7,0.2,1 ifs: grass scale: 4,0.1,4 } B.2.2 Elm Tree The elm tree is a trunk with four smaller elm trees sticking out of it. The trunk consists of three upright stretched elm trees and three inverted stretched elm trees | the foliage becomes the bark. The use of color here is quite delicate. A lot of \branch" transformations must be applied to create a green color whereas any \trunk" transformation will immediately cause a large amount of brown to be added. ifs elm { newmap rotate: y,90 scale: 0.6,0.6,0.6 rotate: x,40 translate: 0,1,0 color: 0,1,0,0.05 newmap rotate: y,75 scale: 0.55,0.55,0.55 rotate: x,-50 translate: 0,0.9,0 168 color: 0,0.9,0.2,0.05 newmap rotate: y,105 scale: 0.5,0.5,0.5 rotate: z,60 translate: 0,0.95,0 color: 0.2,0.9,0,0.05 newmap rotate: y,95 scale: 0.45,0.45,0.45 rotate: z,-35 translate: 0,0.8,0 color: 0.4,0.8,0.4,0.05 newmap rotate: y,35 scale: 0.055,0.25,0.055 translate: 0,0.2,0 color: 0.4,0.3,0.1,1 newmap rotate: y,175 scale: 0.055,0.25,0.055 translate: 0,0.35,0 color: 0.4,0.3,0.1,1 169 newmap rotate: y,50 scale: 0.0525,0.25,0.0525 translate: 0,0.5,0 color: 0.4,0.3,0.1,1 newmap rotate: y,255 scale: 0.08,-0.25,0.08 translate: 0,0.4,0 color: 0.4,0.3,0.1,1 newmap rotate: y,145 scale: 0.065,-0.25,0.065 translate: 0,0.55,0 color: 0.4,0.3,0.1,1 newmap rotate: y,305 scale: 0.0575,-0.25,0.0575 translate: 0,0.7,0 color: 0.4,0.3,0.1,1 newmap rotate: y,210 170 scale: 0.05,-0.25,0.05 translate: 0,0.85,0 color: 0.4,0.3,0.1,1 } B.2.3 Pine Tree The pine tree is much like a 3-D version of the spleenwort fern. It consists of six perturbed base-branch transformations and one \rest of the tree" transformation. Like the grass, it is designed to t into a canonical cone, and should be transformed to better simulate the proportions of a pine tree. ifs pine { newmap scale: 0.2,0.7,0.2 rotate: z,96 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap scale: 0.2,0.7,0.2 rotate: z,90 rotate: y,63 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap scale: 0.2,0.7,0.2 171 rotate: z,93 rotate: y,104 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap scale: 0.2,0.7,0.2 rotate: z,97 rotate: y,167 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap scale: 0.2,0.7,0.2 rotate: z,95 rotate: y,253 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap scale: 0.2,0.7,0.2 rotate: z,100 rotate: y,311 translate: 0,0.1,0 color: 0,0.6,0,0.1 newmap 172 rotate: y,31 scale: 0.82,0.84,0.82 translate: 0,0.15,0 color: 0,0.6,0.6,0.2 } object pine { cone color: 1,0,0,0 ifs: pine scale: 1.5,2,1.5 translate: 1,0.1,0 } B.3 The Five Non-Platonic Non-Solids The ve non-Platonic non-Solids are fractal versions of the ve Platonic solids. They are simple examples of 3-D iterated function systems, consisting of maps whose xed points are found at the shapes' vertices. B.3.1 Sierpinski's Tetrahedron Sierpinski's tetrahedron is a natural extension of Sierpinki's gasket. It is called a \skewed web" in [Mandelbrot, 1982b]. This object has been commonly used to test the eectiveness of rendering algorithms. ifs tetra { newmap 173 scale: 0.5,0.5,0.5 translate: 0,0.5,0 newmap scale: 0.5,0.5,0.5 translate: 0,-0.166,-0.472 newmap scale: 0.5,0.5,0.5 translate: 0.409,-0.166,0.236 newmap scale: 0.5,0.5,0.5 translate: -0.409,-0.166,0.236 } B.3.2 Sierpinski's Octahedron Unlike Sierpinski's tetrahedron, Sierpinski's octohedron is complete opaque at all viewing angles. ifs octo { newmap scale: 0.5,0.5,0.5 translate: -0.5,0,0 newmap scale: 0.5,0.5,0.5 174 translate: 0.5,0,0 newmap scale: 0.5,0.5,0.5 translate: 0,0,-0.5 newmap scale: 0.5,0.5,0.5 translate: 0,0,0.5 newmap scale: 0.5,0.5,0.5 translate: 0,0.5,0 newmap scale: 0.5,0.5,0.5 translate: 0,-0.5,0 } B.3.3 Menger's Sponge Perhaps a better analog to the hexahedron would be an IFS consisting of eight maps that take the cube to each of its octants. Unfortunately its attractor is not fractal. Hence, Menger's sponge is used as a fractal equivalent to the hexahedron. ifs menger { newmap scale: 0.333,0.333,0.333 175 translate: 0.385,0.385,0.385 newmap scale: 0.333,0.333,0.333 translate: -0.385,0.385,0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,-0.385,0.385 newmap scale: 0.333,0.333,0.333 translate: -0.385,-0.385,0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,0.385,-0.385 newmap scale: 0.333,0.333,0.333 translate: -0.385,0.385,-0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,-0.385,-0.385 newmap 176 scale: 0.333,0.333,0.333 translate: -0.385,-0.385,-0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,0,0.385 newmap scale: 0.333,0.333,0.333 translate: -0.385,0,0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,0,-0.385 newmap scale: 0.333,0.333,0.333 translate: -0.385,0,-0.385 newmap scale: 0.333,0.333,0.333 translate: 0,0.385,0.385 newmap scale: 0.333,0.333,0.333 translate: 0,-0.385,0.385 177 newmap scale: 0.333,0.333,0.333 translate: 0,0.385,-0.385 newmap scale: 0.333,0.333,0.333 translate: 0,-0.385,-0.385 newmap scale: 0.333,0.333,0.333 translate: 0.385,0.385,0 newmap scale: 0.333,0.333,0.333 translate: -0.385,0.385,0 newmap scale: 0.333,0.333,0.333 translate: 0.385,-0.385,0 newmap scale: 0.333,0.333,0.333 translate: -0.385,-0.385,0 } 178 B.3.4 Sierpinski's Icosahedron Sierpinski's icosahedron has small Sierpinski's gaskets on its faces. ifs icos { newmap scale: 0.5,0.5,0.5 translate: 0,0.926,0.263 newmap scale: 0.5,0.5,0.5 translate: 0,0.926,-0.263 newmap scale: 0.5,0.5,0.5 translate: 0,0.075,0.263 newmap scale: 0.5,0.5,0.5 translate: 0,0.075,-0.263 newmap scale: 0.5,0.5,0.5 translate: 0.263,0.5,0.425 newmap scale: 0.5,0.5,0.5 translate: 0.263,0.5,-0.425 179 newmap scale: 0.5,0.5,0.5 translate: -0.263,0.5,0.425 newmap scale: 0.5,0.5,0.5 translate: -0.263,0.5,-0.425 newmap scale: 0.5,0.5,0.5 translate: 0.425,0.763,0 newmap scale: 0.5,0.5,0.5 translate: -0.425,0.763,0 newmap scale: 0.5,0.5,0.5 translate: 0.425,0.237,0 newmap scale: 0.5,0.5,0.5 translate: -0.425,0.237,0 } 180 B.3.5 Von Koch's Snowake-a-hedron Von Koch's snowake-a-hedron is the fractal analog of the dodecahedron. Its prole is similar to the von Koch snowake curve, hence the name. In [Hart, 1991], a geometric one-to-one correspondence was shown between its twenty maps and the twenty maps of Menger's sponge. ifs dodec { newmap scale: 0.382,0.382,0.382 translate: -0.577,0.618,-0.221 newmap scale: 0.382,0.382,0.382 translate: 0.577,0.618,-0.221 newmap scale: 0.382,0.382,0.382 translate: 0.577,0.618,0.221 newmap scale: 0.382,0.382,0.382 translate: -0.577,0.618,0.221 newmap scale: 0.382,0.382,0.382 translate: -0.357,0.975,-0.357 newmap 181 scale: 0.382,0.382,0.382 translate: 0,0.839,-0.577 newmap scale: 0.382,0.382,0.382 translate: 0.357,0.975,-0.357 newmap scale: 0.382,0.382,0.382 translate: 0.221,1.195,0 newmap scale: 0.382,0.382,0.382 translate: 0.357,0.975,0.357 newmap scale: 0.382,0.382,0.382 translate: 0,0.839,0.577 newmap scale: 0.382,0.382,0.382 translate: -0.357,0.975,0.357 newmap scale: 0.382,0.382,0.382 translate: -0.221,1.195,0 182 newmap scale: 0.382,0.382,0.382 translate: -0.357,0.261,-0.357 newmap scale: 0.382,0.382,0.382 translate: 0,0.397,-0.577 newmap scale: 0.382,0.382,0.382 translate: 0.357,0.261,-0.357 newmap scale: 0.382,0.382,0.382 translate: 0.221,0.041,0 newmap scale: 0.382,0.382,0.382 translate: 0.357,0.261,0.357 newmap scale: 0.382,0.382,0.382 translate: 0,0.397,0.577 newmap scale: 0.382,0.382,0.382 translate: -0.357,0.261,0.357 183 newmap scale: 0.382,0.382,0.382 translate: -0.221,0.041,0 } 184 CITED LITERATURE [Abelson & diSessa, 1982] Abelson, H. and diSessa, A. A. Turtle Geometry. MIT Press, 1982. [Amanatides & Mitchell, 1989] Amanatides, J. and Mitchell, D. P. Megacycles. SIGGRAPH Video Review, 51, 1989. (Animation). [Amanatides, 1984] Amanatides, J. Ray tracing with cones. Computer Graphics, 18(3):129{ 135, July 1984. [Appel, 1968] Appel, A. Some techniques for shading machine renderings of solids. AFIPS 1968 Spring Joint Computer Conference, 32:37{45, 1968. [Barnsley & Demko, 1985] Barnsley, M. F. and Demko, S. G. Iterated function schemes and the global construction of fractals. Proceedings of the Royal Society A, 399:243{275, 1985. [Barnsley et al., 1986] Barnsley, M. F., Ervin, V., Hardin, D., and Lancaster, J. Solution of an inverse problem for fractals and other sets. Proceedings of the National Academy of Science, 83:1975{1977, April 1986. [Barnsley et al., 1988] Barnsley, M. F., Jacquin, A., Mallassenet, F., Rueter, L., and Sloan, A. D. Harnessing chaos for image synthesis. Computer Graphics, 22(4):131{140, 1988. [Barnsley et al., 1989] Barnsley, M. F., Elton, J. H., and Hardin, D. P. Recurrent iterated function systems. Constructive Approximation, 5:3{31, 1989. 185 [Barnsley, 1988] Barnsley, M. F. Fractals Everywhere. Academic Press, New York, 1988. [Barr, 1984] Barr, A. H. Global and local deformations of solid primitives. Computer Graphics, 18(3):21{30, July 1984. [Barr, 1986] Barr, A. H. Ray tracing deformed surfaces. Computer Graphics, 20(4):287{296, 1986. [Bouville, 1985] Bouville, C. Bounding ellipsoids for ray-fractal intersection. Computer Graphics, 19(3):45{51, 1985. [Cabrelli et al., 1991] Cabrelli, C., Molter, U., and Vrscay, E. R. Recurrent iterated function systems: Invariant measures, a collage theorem and moment relations. In Proceedings of the First IFIP Conference on Fractals. Elsevier, 1991. [Catmull, 1975] Catmull, E. Computer display of curved surfaces. In IEEE Conf. on Computer Graphics, Pattern Recognition and Data Structures, pages 11{17, May 1975. [Catmull, 1978] Catmull, E. A hidden-surface algorithm with anti-aliasing. Computer Graphics, 12(3):275{281, August 1978. [Cook et al., 1984] Cook, R. L., Porter, T., and Carpenter, L. Distributed ray tracing. Computer Graphics, 18(3):137{145, 1984. [Cook, 1986] Cook, R. L. Stochastic sampling in computer graphics. ACM Transactions on Graphics, 5(1):51{72, January 1986. [Dekking, 1982] Dekking, F. M. Recurrent sets. Advances in Mathematics, 44:78{104, 1982. [Demko et al., 1985] Demko, S., Hodges, L., and Naylor, B. Construction of fractal objects with iterated function systems. Computer Graphics, 19(3):271{278, 1985. 186 [Deo, 1972] Deo, N. Graph Theory with Applications to Engineering and Computer Science. Prentice Hall, Englewood Clis, N.J., 1972. [Dubuc & Elqortobi, 1990] Dubuc, S. and Elqortobi, A. Approximations of fractal sets. Journal of Computational and Applied Mathematics, 29:79{89, 1990. [Falconer, 1985] Falconer, K. J. The Geometry of Fractal Sets. Cambridge University Press, New York, 1985. [Falconer, 1987] Falconer, K. J. The Hausdor dimension of some fractals and attractors of overlapping construction. Journal of Statistical Physics, 47((1&2)):123{132, 1987. [Falconer, 1988] Falconer, K. J. The Hausdor dimension of self-ane fractals. Proceedings of the Cambridge Philosophical Society, 103:339{350, 1988. [Falconer, 1990] Falconer, K. J. Fractal Geometry: Mathematical Foundations and Applications. John Wiley & Sons, New York, 1990. [Foley et al., 1990] Foley, J. D., van Dam, A., Feiner, S. K., and Hughes, J. F. Computer Graphics: Principles and Practice. Systems Programming Series. Addison-Wesley, 2nd edition, 1990. [Fournier et al., 1982] Fournier, A., Fussel, D., and Carpenter, L. Computer rendering of stochastic models. Communications of the ACM, 25(6):371{384, June 1982. [Gardner, 1984] Gardner, G. Y. Simulation of natural scenes using textured quadric surfaces. Computer Graphics, 18(3):11{20, July 1984. [Hanrahan, 1983] Hanrahan, P. Ray tracing algebraic surfaces. Computer Graphics, 17(3):83{90, 1983. [Hart & DeFanti, 1991] Hart, J. C. and DeFanti, T. A. Ecient antialiased rendering of 3-D linear fractals. Computer Graphics, 25(3), 1991. 187 [Hart et al., 1989] Hart, J. C., Sandin, D. J., and Kauman, L. H. Ray tracing deterministic 3-D fractals. Computer Graphics, 23(3):289{296, 1989. [Hart et al., 1990] Hart, J. C., Kauman, L. H., and Sandin, D. J. Interactive visualization of quaternion Julia sets. In Kauman, A., editor, Proceedings of Visualization '90, pages 209{218. IEEE Computer Society, 1990. [Hart, 1989] Hart, J. C. Image space algorithms for visualizing quaternion Julia sets. Master's thesis, EECS Dept., University of Illinois at Chicago, 1989. [Hart, 1991] Hart, J. C. unNatural Phenomena. SIGGRAPH Video Review, 71, 1991. (Animation). [Heckbert & Hanrahan, 1984] Heckbert, P. S. and Hanrahan, P. Beam tracing polygonal objects. Computer Graphics, 18(3):119{127, July 1984. [Hepting et al., 1990] Hepting, D., Prusinkiewicz, P., and Saupe, D. Rendering methods for iterated function systems. In Proceedings of Fractals '90. IFIP, 1990. [Hepting, 1991] Hepting, D. H. Approximation and visualization of sets dened by iterated function systems. Master's thesis, University of Regina, 1991. [Holbrook, 1983] Holbrook, J. A. R. Quaternionic astroids and starelds. Applied Mathematical Notes, 8(2):1{34, 1983. [Holbrook, 1987] Holbrook, J. A. R. Quaternionic Fatou-Julia sets. Annals of Science and Math Quebec, 1987(1):79{94, 1987. [Hutchinson, 1981] Hutchinson, J. Fractals and self-similarity. Indiana University Mathematics Journal, 30(5):713{747, 1981. 188 [Jaquin, 1991] Jaquin, A. E. Image coding based on a fractal theory of iterated contractive image transformations. IEEE Transactions on Signal Processing, page (to appear), March 1991. [Kajiya & Kay, 1989] Kajiya, J. T. and Kay, T. L. Rendering fur with three dimensional textures. Computer Graphics, 23(3):271{280, July 1989. [Kajiya, 1982] Kajiya, J. T. Ray tracing parametric patches. Computer Graphics, 16(3):245{ 254, July 1982. [Kajiya, 1983] Kajiya, J. T. New techniques for ray tracing procedurally dened objects. ACM Transactions on Graphics, 2(3):161{181, 1983. Also appeared in Computer Graphics 17, 3 (1983), 91{102. [Kalra & Barr, 1989] Kalra, D. and Barr, A. H. Guaranteed ray intersections with implicit surfaces. Computer Graphics, 23(3):297{306, July 1989. [Kaplansky, 1977] Kaplansky, I. Set Theory and Metric Spaces. Chelsea, New York, 1977. [Kay & Kajiya, 1986] Kay, T. L. and Kajiya, J. T. Ray tracing complex scenes. Computer Graphics, 20(4):269{278, 1986. [Lescinski, 1991] Lescinski, G. Lively ifs. SIGGRAPH Video Review, 61, 1991. (Animation). [Mandelbrot & Ness, 1968] Mandelbrot, B. B. and Ness, J. W. V. Fractional brownian motions, fractional noise and applications. SIAM Review, 10(4):422{437, October 1968. [Mandelbrot, 1977] Mandelbrot, B. B. Fractals: Form, Chance, and Dimension. W.H. Freeman, San Francisco, 1977. [Mandelbrot, 1982a] Mandelbrot, B. B. Comment on computer rendering of stochastic models. Communications of the ACM, 25(8):581{583, 1982. 189 [Mandelbrot, 1982b] Mandelbrot, B. B. The Fractal Geometry of Nature. W.H. Freeman, San Francisco, 2nd edition, 1982. [Miller, 1986] Miller, G. S. P. The denition and rendering of terrain maps. Computer Graphics, 20(4):39{48, August 1986. [Milnor, 1991] Milnor, J. Remarks on iterated cubic maps. In Hart, J. C. and Musgrave, F. K., editors, Fractal Models in 3-D Computer Graphics and Imaging, pages 193{221. ACM SIGGRAPH '91 (Course #14 Notes), 1991. [Mitchell, 1987] Mitchell, D. P. Generating antialiased images at low sampling resolutions. Computer Graphics, 21(4):65{72, July 1987. [Musgrave et al., 1989] Musgrave, F. K., Kolb, C. E., and Mace, R. S. The synthesis and rendering of eroded fractal terrains. Computer Graphics, 23(3):41{50, July 1989. [Nishita et al., 1990] Nishita, T., Sederberg, T. W., and Kakimoto, M. Ray tracing trimmed rational surface patches. Computer Graphics, 24(4):337{345, Aug. 1990. [Norton & Melton, 1988] Norton, A. and Melton, E. A close encounter in the fourth dimension. SIGGRAPH Video Review, 39, 1988. (Animation). [Norton et al., 1982] Norton, A., Rockwood, A. P., and Skolmoski, P. T. Clamping: A method of antialiasing textured surfaces by bandwidth limiting in object space. Computer Graphics, 16(3):1{8, July 1982. [Norton, 1982] Norton, A. Generation and rendering of geometric fractals in 3-D. Computer Graphics, 16(3):61{67, 1982. [Norton, 1989a] Norton, A. Fractal transitions. SIGGRAPH Video Review, 42, 1989. (Animation). 190 [Norton, 1989b] Norton, A. Julia sets in the quaternions. Computers and Graphics, 13(2):267{278, 1989. [Peitgen et al., 1991] Peitgen, H.-O., Jurgens, H., and Saupe, D. Fractals for the Classroom. Springer-Verlag, New York, 1991. [Penrose, 1989] Penrose, R. The Emperor's New Mind. Harcourt-Brace, 1989. [Perlin, 1985] Perlin, K. An image synthesizer. Computer Graphics, 19(3):287{296, July 1985. [Porter & Du, 1984] Porter, T. and Du, T. Compositing digital images. Computer Graphics, 18(3):253{259, 1984. [Potmesil & Hoert, 1989] Potmesil, M. and Hoert, E. M. The Pixel Machine: A parallel image computer. Computer Graphics, 23(3):69{78, July 1989. [Preparata & Shamos, 1985] Preparata, F. P. and Shamos, M. I. Computational Geometry: An Introduction. Springer-Verlag, 1985. [Press et al., 1988] Press, W. H., Flannery, B. P., Teukolsky, S. A., and Vetterling, W. T. Numerical Recipes in C. Cambridge University Press, 1988. [Prusinkiewicz & Hammel, 1991] Prusinkiewicz, P. and Hammel, M. Automata, languages and iterated function systems. In Hart, J. C. and Musgrave, F. K., editors, Fractal Models in 3-D Computer Graphics and Imaging, pages 115{143. ACM SIGGRAPH '91 (Course #14 Notes), 1991. [Prusinkiewicz & Hanan, 1989] Prusinkiewicz, P. and Hanan, J. Lindenmeyer Systems, Fractals, and Plants, volume 79 of Lecture Notes in Biomathematics. Springer-Verlag, New York, 1989. 191 [Prusinkiewicz & Lindenmayer, 1990] Prusinkiewicz, P. and Lindenmayer, A. The Algorithmic Beauty of Plants. Springer-Verlag, New York, 1990. [Prusinkiewicz et al., 1988] Prusinkiewicz, P., Lindenmayer, A., and Hanan, J. Developmental models of herbaceous plants for computer imagery purposes. Computer Graphics, 22(4):141{150, August 1988. [Reuter, 1987] Reuter, L. Rendering and Magnication of Fractals Using Iterated Function Systems. PhD thesis, Georgia Institute of Technology, December 1987. [Ritter, 1990] Ritter, J. An ecient bounding sphere. In Glassner, A. S., editor, Graphics Gems, pages 301{303. Academic Press, 1990. [Roth, 1982] Roth, S. D. Ray casting for modeling solids. Computer Graphics and Image Processing, 18(2):109{144, February 1982. [Rubin & Whitted, 1980] Rubin, S. M. and Whitted, T. A 3-dimensional representation for fast rendering of complex scenes. Computer Graphics, 14(3):110{116, 1980. [Sandin et al., 1990] Sandin, D. J., Hart, J. C., and Kauman, L. H. Interactive visualization of complex, stacked and quaternion Julia sets. In Proceedings of Ausgraph '90, 1990. [Shannon, 1949] Shannon, C. E. Communication in the presence of noise. Proceedings of the Institute of Radio Engineers, 37(1):10{21, January 1949. [Shroeder, 1991] Shroeder, M. R. Fractals, Chaos, Power Laws. W.H. Freeman, San Francisco, 1991. [Smith, 1984] Smith, A. R. Plants, fractals, and formal languages. Computer Graphics, 18(3):1{10, July 1984. [Snyder & Barr, 1987] Snyder, J. M. and Barr, A. H. Ray tracing complex models containing surface tessellations. Computer Graphics, 21(4):119{128, 1987. 192 [Strang, 1988] Strang, G. Linear Algebra and its Applications. Harcourt Brace Jovanovich, 3rd edition, 1988. [Sutherland et al., 1974] Sutherland, I. E., Sproul, R., and Schumacker, R. A characterization of ten hidden-surface algorithms. Computing Surveys, 6(1):1{55, 1974. [Sutherland, 1963] Sutherland, I. E. Sketchpad: A man-machine graphical communication system. Proceedings of the Spring Joint Computer Conference, 1963. [Thomas et al., 1989] Thomas, D., Netravali, A. N., and Fox, D. S. Antialiased ray tracing with covers. Computer Graphics Forum, 8(4):325{336, December 1989. [Thompson, 1991] Thompson, K. K. Ray Tracing with Amalgams. PhD thesis, University of Texas at Austin, 1991. [Toth, 1985] Toth, D. L. On ray tracing parametric surfaces. Computer Graphics, 19(3):171{ 179, July 1985. [Voss, 1988] Voss, R. F. Fractals in nature: From characterization to simulation. In Peitgen, H. and Saupe, D., editors, The Science of Fractal Images, pages 21{70. Springer-Verlag, New York, 1988. [Vrscay & Roehrig, 1989] Vrscay, E. R. and Roehrig, C. J. Iterated function systems and the inverse problem of fractal construction using moments. In Kaltofen, E. and Watt, S. M., editors, Computers and Mathematics, pages 250{259, New York, 1989. Springer-Verlag. [Vrscay, 1991] Vrscay, E. R. Iterated function systems: Theory, applications and the inverse problem. In Lectures of the NATO Advanced Study Institute on Fractal Geometry and Analysis, Montreal, 1991. Kluwer. [Whitted, 1980] Whitted, T. An improved illumination model for shaded displays. Communications of the ACM, 23(6):343{349, 1980. 193 [Womack, 1989] Womack, T. E. Linear and markov iterated function systems in fractal geometry. Master's thesis, Virginia Polytechnic Institute, May 1989. 194 VITA Name: Education: John C. Hart B.S., Computer Science, Aurora University, Aurora, Illinois, 1987. M.S., Electrical Engineering and Computer Science, University of Illinois at Chicago, Chicago, Illinois, 1989. Ph.D., Electrical Engineering and Computer Science, University of Illinois at Chicago, Chicago, Illinois, 1991. Research: Postdoctoral Research Associate | Electronic Visualization Laboratory, University of Illinois at Chicago, Chicago, Illinois and National Center for Supercomputing Applications, University of Illinois at Urbana-Champaign, Urbana, Illinois, 1991{1992. Research Assistant | Electronic Visualization Laboratory, University of Illinois at Chicago, Chicago, Illinois, 1987{1991. Intern | AT&T Pixel Machines, AT&T Bell Laboratories, Holmdel, New Jersey, Summer 1990. Intern | IBM T.J. Watson Research Center, Hawthorne, New York, Summer 1989. Teaching: Fractal Models in 3-D Computer Graphics and Imaging | SIGGRAPH '91 One-day course #14, Caesar's Palace, Las Vegas, Nevada, 1991. Scientic Visualization by Supercomputer | Adler Planetarium evening course, Chicago, Illinois, 1988. 195 Teaching Assistant | Electrical Engineering and Computer Science Department, University of Illinois at Chicago, Chicago, Illinois, 1987{1988. Honors: Student Fellowship | Graduate College, University of Illinois at Chicago, Chicago, Illinois, 1990{1991. 196 Activities: Supercomputing '92 | Video Chair, Programming Committee. SIGGRAPH '92 | Electronic Theater Committee, Chair Care Committee. Supercomputing '91 | Programming Committee. SIGGRAPH '91 | Course Organizer. Publications: John C. Hart and F. Kenton Musgrave, Editors. Fractal Modeling in 3-D Computer Graphics and Imaging. SIGGRAPH '91 Course Notes, 1991. John C. Hart and Thomas A. DeFanti. Ecient antialiased rendering of 3-D linear fractals. Computer Graphics, 25(3), 1991. John C. Hart, Louis H. Kauman, and Daniel J. Sandin. Interactive visualization of quaternion Julia sets. In Arie Kauman, editor, Proceedings of Visualization '90, pages 209{218. IEEE Computer Society, 1990. John C. Hart, Daniel J. Sandin, and Louis H. Kauman. Ray tracing deterministic 3-D fractals. Computer Graphics, 23(3):289{296, 1989. Animations: unNatural Phenomena. SIGGRAPH Video Review 71, 1991. Sierpinski Blows His Gasket. SIGGRAPH Video Review 61, 1990. Dynamics in the Quaternions. SIGGRAPH Video Review 42, 1989. 197

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising