Oliver Deussen • Bernd Lintermann
Digital Design of Nature Computer Generated Plants and Organics
With 190 Figures
13
Official web site: http://www.computerpflanzen.de Oliver Deussen University of Konstanz Computer and Information Science 78457 Konstanz Germany e-mail:
[email protected] Bernd Lintermann ZKM Center for Art and Media Lorenzstraße 19 76135 Karlsruhe Germany
Library of Congress Control Number: 2004116589 Translated and enlarged edition of O. Deussen: Computergenerierte Pflanzen. (X.media.press) Springer-Verlag Berlin Heidelberg 2002. ISBN 3-540-43608-5. Translated from the German by Anna Dowden-Williams, Konstanz.
ISSN 1612-1449 ISBN 3-540-40591-7 Springer Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilm or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer. Violations are liable for prosecution under the German Copyright Law. Springer is a part of Springer Science+Business Media springeronline.com © Springer-Verlag Berlin Heidelberg 2005 Printed in Germany The use of general descriptive names, registered names, trademarks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. Typesetting: By the authors Production: LE-TEX Jelonek, Schmidt & Vöckler GbR, Leipzig Cover design: KünkelLopka, Heidelberg Printed on acid-free paper 33/3142/YL 5 4 3 2 1 0
Preface What is computer graphics and what are the conceptual tasks of research in this area? To the average person the term still conveys more or less the design of logos and the manipulation of pictures with the help of image-editing programs. However, during the past four decades, computer graphics has evolved into an innovative multifaceted field of research and computing that affects many other sciences. In many areas and for many problems we can best convey an understanding through images that trigger our sense with the highest capability: our eye. And, what is more, aside from algorithms, formulas, and tables, the computer graphics scientist often is able to create beauty. Though it is a beauty of its own, it often fascinates the viewer, especially when complex aesthetic images emerge from simple mathematical concepts. Also, there are only a few other areas that advance as dynamically as informatics and especially computer graphics. While CPU capacity still increases and is almost doubled every 18 months, the rendering speed and efficiency of graphics boards has increased even more during recent years. Today, images can be rendered in real time that some years ago still required several hours of computing. Parallel to the rapid improvement of computer hardware, many new algorithms were developed that today form the basis for some fundamental changes and achievements in graphics. Along with its technical tasks and conceptual formulation, computer graphics at the same time challenges fundamental questions. With the rendering of images, for example, the functioning of human perception and the information processing in the brain have to be analyzed and understood in order to communicate the image content as closely as possible to what is perceived as reality by the human eye. Especially the ability to create synthetic nonphotorealistic images, meaning those that are intended to not look like photographs, stimulates researchers from cognitive psychology and physiology. Within computer graphics, the area of modeling and rendering synthetic plants and landscapes that is covered in this book is a rather interdisciplinary field. Here a knowledge of botany and ecology is necessary, and aside from the mathematical and physical laws, artistic aspects are of utmost importance. It is this combination of knowledge, skills, and creativity that makes the work in computer graphics especially challenging and diversified. This book at is the result of research that was started in 1995. Actually the goal was to create a system for the rendering of organic architectural designs and forms. However, we quickly realized that the methods we had developed also served as excellent tools for the synthetic rendering of plants. The system
V
expanded and was refined during the following years, so that we were able to set up a small company that specializes in generating plant models and in the development of efficient tools for rendering. The main part of our work still remains investigating the underlying processes of the different methods and approaches. Meanwhile, single plants developed into entire landscapes, and a variety of different images were created. However, regardless of the valuable insights won in these processes, the end is still not in sight. In computer graphics, from time to time we still expect a sort of gold-mining euphoria when newly found insights result in a huge set of new possibilities. Who really is that privileged? Fortunately, we enjoyed support and assistance during the writing of this book, and we would like to thank all those who helped to improve its quality. Intense discussions with renowned scientists and colleagues pointed us in the right direction. Thomas Strothotte from the University of Magdeburg was the one to make us realize the value and infinite possibilities of nonphotorealistic computer graphics. This exciting discipline holds a great fascination and thus has found its expression at the end of this book. The ZKM Center for Media Arts and Technology in Karlsruhe (Germany) supported us faithfully many years and gave us the opportunity to develop our small company. Bernd received there innovative support for the artworks he created during the past few years. Aside from techniques for advanced rendering and modeling of plants he now focuses on related algorithms in multimedia artworks. Under the guidance of Almut Gerhardt-Dircksen, we were able to expand our humble knowledge in botany. Her advice was invaluable during the writing of the respective chapter on plants, and we certainly hope that the botany community will now read this book without raising eyebrows. Mark Stamminger edited the chapter on rendering and confirmed our theory that the vast area of realistic image generation can be sketched in a few pages without oversimplification of essential information. Heino Hellwig viewed the chapter about the mathematical descriptions of plants. Our special thanks goes to Klaus Hoedt, Ursula Zimpfer, and Ronan Nugent who patiently proofread the German and English manuscript. We also would like to thank Hermann Engesser for his competent and supportive consultation on behalf of Springer-Verlag. Of course, a book that discusses computer graphics and its beauty should also please in its appearance. Thanks to the LATEX layout style of Ottfried Cheong Schwarzkopf we were spared many hours of laborious work. Oliver Deussen and Bernd Lintermann Karlsruhe and Konstanz, October 2004
VI
Foreword It has been over 40 years since Stanislaw Ulam published his pioneering work on computer models of branching structures. In the period that followed, plant modeling has become an area of active interdisciplinary research. On one hand, biologists are interested in plant models as a means for better understanding the fundamental mechanisms that govern plant development and structure. Plant scientists are also investigating the use of models for computer-assisted decision-making in horticulture, agriculture, and forestry. On the other hand, the computer graphics community is interested in plants as elements of scenery for computer animations and games. State-of-the-art plant models, combined with advanced rendering methods, are now producing astounding results. Synthetic images of individual plants and landscapes are increasingly difficult to distinguish from photographs, and art-inspired non-photorealistic techniques successfully mimic drawings and paintings of plants. Complicated scenes with plants for computer games are generated in a fraction of a second. Many of the underlying methods have been obtained by the authors of this book, Oliver Deussen and Bernd Lintermann. Their popular plant-modeling system xfrog introduced an innovative graphical user interface that empowered computer scientists and artists alike to create tree models with unprecedented realism. These models have been incorporated in some of the most captivating scenes with plants, created to date. Xfrog, however, is but a stepping stone to the broad discussion of plant-modeling issues presented in this book. Other topics include the synthesis of large scenes with plants, generation of plants at interactive rates as needed for computer games, non-photorealistic rendering of plants, and the use of plant-inspired techniques in art installations. The broad coverage of plant modeling in computer graphics, and the inclusion of many original results, so far available only in specialist papers, make this book a valuable contribution to the practice of visual plant modeling. Przemyslaw Prusinkiewicz Calgary, Canada, November 2004
VII
Contents
1 Computer-Generated Plants
1
Introduction 1.1 1.2 1.3
Modeling of Virtual Landscapes Rendering Issues Applications
2 Plants
3 5 6
9
Botanical Description 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
The Shoot Axis Budding Branching Types Spatial Division Tropisms Architectural Analysis of Trees Leaves Geobotanical Description Methods Description Methods for Vegetation
3 Some Mathematics
11 13 14 15 16 17 19 21 24
27
Plants as Mathematical Objects 3.1 3.2 3.3 3.4 3.5 3.6
Geometrical and Topological Models Branching Structures Trees as Fractal Objects Phyllotaxis Description of Plant Populations Developmental Models
27 28 30 34 36 38
IX
C ONTENTS
4 Procedural Modeling
43
Programming of Plants 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14
Cellular Automata A First Continuous Model Three-Dimensional Procedural Models Regulation of the Branching Process Generation Using Particle Systems A Fractal Tree Model Geometric Modeling An Approach Based on Budding A Combinatorial Approach Tree Modeling Using Strands Approximate Modeling Growth in Voxels Modeling of Phyllotaxis Remaining Questions
5 Rule-Based Modeling
44 45 46 48 49 49 51 52 54 56 58 58 59 61
63
Single Plants Are “Emerging” 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14
Rewriting Systems Lindenmayer Systems Branching Structures Three-Dimensional Commands Stochastic and Parameterized Systems Context-Sensitive Systems Modeling of Phyllotaxis Animation of L-Systems Interactions of Plants and the Environment Use of Position Information Iterated Function Systems Object Instancing CSG-Based Modeling Categorizing the Methods
6 Rule-Based Object Production
64 65 67 68 70 72 74 75 76 78 79 82 84 86
89
Interactive Modeling
X
6.1 6.2 6.3 6.4 6.5 6.6 6.7
Algorithmic Multiplication Component Types Combination of Components Examples Shape Modeling Animation Resume
90 91 97 98 101 104 106
7 Modeling Terrain
113
C ONTENTS
The Basis 7.1 7.2 7.3 7.4
Brownian Motion From Functions to Terrain Erosion Interaction with Fractal Terrain
8 Modeling Vegetation
114 117 118 123
125
A Landscape Evolves 8.1 8.2 8.3 8.4 8.5 8.6
Direct Specification of Distributions Simulation of a Plant Population Simulation of a Plant Association Reduction of the Geometric Data Instancing of Plant Populations Modeling of a Sample Scene
9 Rendering
128 134 135 136 140 146
149
Creating “Virtual Reality” 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10
Local Lighting Models The Rendering Equation Radiosity Raytracing Further Rendering Methods Photorealistic Renditions of Leaves Rendering Complex Scenes Plant Images Using Raytracing Plant Images Using Radiosity When Do Computer Images Appear Real?
10 Level-of-Detail
152 153 154 155 156 157 162 167 170 170
181
Fast Rendering of Images 10.1 10.2 10.3 10.4 10.5
LOD Methods for Smooth Surfaces Static LOD Methods for Trees Dynamic Point-Based Representation Dynamic Polygonal Representation Point- and Line-Based Rendering
11 Landscape Sketches
182 183 186 188 191
201
Artistic Renditions 11.1 Nonphotorealistic Rendering
202
XI
C ONTENTS
11.2 11.3 11.4 11.5
Traditional Drawings of Plants Synthetic Plant Drawings Rendering of Cross-Hatching Resume
12 Media Art
206 211 218 224
227
Growing Plants and Evolved Organics 12.1 12.2 12.3 12.4 12.5
William Latham Karl Sims Christa Sommerer and Laurent Mignonneau Bill Viola, Tree of Knowledge SonoMorphis
A Practical Plant Modeling
228 231 239 243 245
251
Using Xfrog A.1 A.2 A.3
XII
The Xfrog Modeling Environment Modeling a Flower Modeling a Tree
251 253 258
B Glossary
265
Figure credits
271
Bibliography
275
Index
287
1
Computer-Generated Plants Introduction
For over thirty years, botanists and computer scientists have made considerable efforts to develop effective methods to synthetically generate natural objects. As early as in 1966 the first method for the simulation of a branching structure via a computer was introduced. This method used the so-called cellular automatons, an arrangement of square cells on a grid that could adapt to different conditions directed by a computer program. Based on a simple rule mechanism, and provided the appropriate rules were applied, the model then grew from an initial cell into the adjoining cells and developed a branching structure. Contrary to these discrete models, later models worked continuously. Since then, multiple different methods have been developed. Moreover, in parallel to the rapid development of computers, the complexity of digital design and the visual quality of synthetically produced images has reached a point at which it is rather difficult to differentiate between computer simulations and actual photographs. Today, synthetically produced natural objects are frequently used in computer graphics and in related fields. Plants, for example, are the components of many computer images since it is almost impossible to create outdoor scenes without incorporating such natural objects. Thus, the corresponding synthetic plant models have become more and more integral parts of many modeling systems. At the same time, expectations for the quick and perfect rendering of virtual images have grown among a wide range of commercial users. Outside of computer science, many other areas benefit from these models: landscape designers are now able to visualize and predict the results of their planning, architects enhance their simulations with computer-generated plants, and in botany models are used to determine physiological parameters. In modeling and simulation as well as in the game industry more and more realistic plant and landscape models have become essential tools in designing realisticlooking environments. In this book, we mainly focus on the modeling of plant vegetation and the production of images associated therewith. Natural landscapes consist of a multiplicity of elements. Although these elements for the most part contain similar 1
Chapter 1 C OMPUTER -G ENERATED P LANTS
2
mathematical characteristics, they can differ in their methods of production and in their representation. For example, in computer graphics objects such as rocks, clouds or trees are known as fractals. However, this is only a basic description of a fundamental geometrical characteristic, which for each class of objects has to be converted separately into different production procedures. Although the methods for the simulation of clouds or mountains are related directly to the underlying mathematical principles of fractals, vegetation is rendered completely differently. Here, various geometrical aspects of modelling play significant roles, and the fractal characteristics of the plants are, at best, to be found in the recursive structures of the models. What differentiates one plant from another is not so much the general mathematical parameters but rather the concrete detailed structure. Thus, the question of efficient modelling, including especially interactive systems and their evaluation, is the decisive factor. The aspects treated in the following chapters are grouped into three major areas: methods for the modeling of single plants, methods for the modeling of plant communities and landscapes, and rendering methods for such synthetic landscapes, whereby the first two areas are looked at from the botanical point of view as well as from the point of view of computer graphics. Here, however, conflicts become apparent about what is regarded as important in each respective discipline. For example, for a botanist a geometrical plant model is interesting in two ways: it permits the visual validation of the underlying production process, and it is used to calculate mathematical characteristics, such as the interaction of light with the plant and the environment. The visual model as such is not of much concern here. This is completely different in computer graphics: here the geometrical model is used because of its visual effect. The underlying processes are only important in as much as they must permit us to efficiently produce a complex geometry. The exclusive visual evaluation often leads to the production of botanically incorrect models so that in a certain situation a desired result can be achieved. This divergence between the disciplines surfaces throughout the book. But since this book is primarily directed at readers in computer science, and particularly in computer graphics, botanical aspects are often kept in the background. Hence, the botanical introduction in Chap. 2 is not meant to serve as a knowledge base for biologists, but rather to enable a general understanding of botany by the nonbiologist. For the same reason, the technical descriptions of algorithms and geometryproducing methods are more detailed. Chapter 4 takes into account all essential stages for the modeling of plants using computers and introduces the models in the order in which they were developed. Aside from the purely bibliographic aspect, the variety of possible solutions becomes evident with the abundance of details provided. Later chapters describe rendering issues and demonstrate the results of various researchers and artists in the form of many synthetic images. Before getting into details, a short overview should outline some relevant questions. In each of the following sections, specific problems involving the translation of the general steps into practical applicable procedures are demonstrated.
This should help the reader to easier identify and coordinate the problems treated later on in the book.
1.1
Section 1.1 M ODELING OF V IRTUAL L ANDSCAPES
Modeling of Virtual Landscapes
In botany, vegetation is viewed on different levels of abstraction. Based on the already existing data of individual plants, emphases are put on plant populations, concentrations of similar plants, which combine into plant communities of various kinds and in this way populate typical forms of landscapes that are called aerials. This type of classification is also logical for the computer graphics community, since the modeling methods for the different stages clearly vary. Geometrical details play a large role with individual plants. Plant populations, however, are viewed more or less statistically, which makes geometrical characteristics, such as shading conditions, less significant. With plant communities and aerials, this effect is strengthened: here only statistical aspects, in combination with biotic and abiotic environmental factors, are considered. When a virtual landscape is created, starting with the overall description of the aerial, a number of spatial refinements have to be created, finally ending in the geometric design of each individual plant. Already at this point, the abundance of geometrical and formative complexity of this global task becomes apparent. This complexity is also evidenced with the design of an individual plant. The existing approaches can be divided into procedural and rule-based methods. Procedural methods are parameterized algorithms for generating special models, while rule-based methods use a formal rule base, which produces a complex final state by application of rules starting with a simple initial state. The advantages and disadvantages of both approaches are analyzed. Then, we are describing a procedure that combines the benefit of both methods through merging rule-based and procedural elements. Since the individual modeling methods use completely different parameters for the description of plants, it is an interesting question whether there is not a more fundamental universal parameter set and/or a general description that would approximate the many different procedures. Though such a description does not have to exist, not even in the mathematical or algorithmic sense, even a simple method for limiting the producible forms to what is meaningful in botany would make modeling a great deal easier. Once the geometric data of a single plant model is generated, we are confronted with the difficulty of managing the massive amount of needed data for most models. To reduce the excess data, model representations must be created that depict a plant at different levels of detail. When displayed on the screen, depending on the projected size of the plant, the appropriate representation is used, which allows for a drastic reduction of the amount of data that has to be worked with.
3
Chapter 1 C OMPUTER -G ENERATED P LANTS
4
First, however, efficient procedures must be found that can approximate what is actually visible for a potential viewer. If, for example, a virtual visitor strolls through a synthetically generated forest, it will not be necessary to show the trees in the hundredth row, since they most likely are covered up by those in front. Corresponding procedures for the deletion of such objects are used with success in other areas of computer graphics and must be adapted for synthetic landscapes. Next we will deal with plant communities. In botany most often descriptive models are used instead of algorithmic ones to define plant populations and plant communities. Mathematicians, on the other hand, are more concerned with the description and simulation of interacting sets of discrete objects and the application of the results to plant populations. By contrast, researchers in computer graphics are only interested in the descriptive models, and weather they can be converted into efficient algorithms. The same is true for the mathematical procedures, which often are found in ecology and that cannot be integrated easily. For example, the simulation processes used here are often too complex for application. Therefore, efficient procedures for the specification of plant populations must be found and, at the same time, the different conditions for the plant habitats, such as the availability of water and light, have to be taken into account. An essential difference between the methods employed in computer graphics and those used by botanists is the complexity of the required systems. In botany, rather small areas are being examined and analyzed, and large amounts of data are simplified by means of abstraction. For image production, however, also large aerials of several square miles must be produced with visible details. Here, simply storing the locations of the corresponding plants can present a problem, since billions of positions have to be recorded. A challenge in computer graphics is to record the positions only if necessary and to disregard them as soon as a plant is no longer visible. This kind of “on-the-fly” computation raises a number of interesting questions. Another challenge is to efficiently represent geometrical models of plant populations and plant communities. For example, it is necessary to find out what are visually essential elements in a plant community and how these essential elements can be depicted with the smallest possible geometric resolution. Although not all of these questions are addressed in this book, we will introduce approaches that at least let us insinuate the overall picture. At this point it should be mentioned that the rapid development of computer graphics hardware most likely will not make procedures for the minimization of geometry obsolete, at least not during the next few years. The past decades have shown that the desired model complexities increased more rapidly than the corresponding developments in computer hardware. Of course, it is possible that at one point in the future, all essential requirements with respect to the graphical performance of computers will be satisfied, but for right now this is absolutely not the case.
1.2
Rendering Issues
Section 1.2 R ENDERING I SSUES
Depending upon the area of application, different goals are pursued in landscape visualizations. In botany often only an approximate representation of the model is required. In architecture, and in some cases also in landscape planning, in computer games, and in simulation, images are required that, in addition to form, reflect light conditions as well as very detailed structures. The film and advertisement industry demands photorealistic images for merging real-life characters with synthetic scenes, and for unique landscaping. Another abstract type of representation is required for cartoons, where images in comic style are needed. Thus the question arises: what effects are necessary for generating synthetic landscapes? For example, is a complex simulation of the global illumination necessary for the computation of photorealistic images of plants? How do the different illumination factors affect the related “authenticity” or “reality” of the representation? If approximate geometry representations are to be used for the reduction of the data, more questions emerge: What actually gives vegetation its characteristic appearance? In what places are we able to replace geometric detail with prefabricated pictures or textures? And how can the “area-fill-mass” in a large scene be represented? Furthermore, how do level-of-detail descriptions, meaning those that render a plant differently in detail depending on its projected size on the screen, integrate into the process, i.e., the rendering? What kinds of methods allow us to reduce the geometric quantity, meaning the quantity of the entire data that has to be produced and analyzed and processed? Moreover, how can the transition between different model representations be implemented without the viewer becoming aware of it? Finally, it is useful to clarify what actually constitutes a “beautiful” landscape. This is an intensively researched area in the field of ecology as well as in the area of aesthetics. What can be derived from the expression “beautiful” in order to create a corresponding visually beautiful landscape and how can already created landscapes be improved? Are there any global limits for the number of different plant models needed in a scene? We already mentioned that even the nonphotorealistic representation of a synthetic landscape has a distinct function. Accordingly, in landscaping and architecture, the results of planning are traditionally represented as sketches. Some of the reasons are that a sketch visualizes a model of an object, whereas a photorealistic representation renders a concrete instance. Additionally, it is easier to convince viewers to make changes in a sketch rather than in a realistic representation. Also, the sketch does not confine the planner to a certain appearance, as would a realistic-appearing computer image. Yet, with the sketch, size and light conditions can be rendered more accurately. Furthermore, sketching makes it possible to emphasize important areas using contrasting methods, and thus to direct the focal point of the observer.
5
Chapter 1 C OMPUTER -G ENERATED P LANTS
On the contrary, the abstract visualization of plants requires new methods for the production of images. Thus, one needs specially prepared models, in which the geometric data is reduced and changed with regard to the representation. There are a number of questions, some of which also have been of concern to the art community: how is form, and how are light and shadow represented? In Chap. 11 we show that there are numerous different rendering methods available for plants in traditional arts. While some of these techniques are applicable to synthetic rendering, for the most part completely new approaches are necessary, and structures of required geometrical models have to be changed accordingly. Abstract representations increase the potential for visual expression and communication in computer graphics a great deal. In the future, the user will be able to choose the most appropriate rendering method from a wide variety of possible representations. The photorealistic representation is here only one of many options.
1.3
Applications
Some areas of applications for synthetic landscaping have already been mentioned. Particularly in ecology, plant models can also serve as a medium: they transport information about more deeper-lying processes, enabling the viewer to see even invisible things. This way, even the non-expert observer is able to easily gain insight into the underlying mechanisms of the systems. The effect is emphasized if the representation becomes conversant with the types of the argumentation and the environment of the presentation, which is especially possible through abstract renditions. This transmission of underlying data plays a large role in visualization techniques. In biology and botany, visible and especially invisible parameters of ecological systems can be represented using synthetic landscapes. Soil structures, contamination, problem zones and habitats of species as well as sound problems are examples of such parameters, which can be added through special procedures into synthetic landscapes. Thus, landscape planners, designers and architects will benefit from synthetic plant images, since with a suitable visualization abstract planning results can visualize the desired results, which is especially useful within the framework of competition.
6
Furthermore, it is possible to represent non-existing plants, such as plants that have become extinct or plants that could still be developed in the future. This might be of great importance to scientists in botany, since genetic changes of economically valuable plants can be visualized before we actually obtain results. This way it could be possible to discuss botanic design parameters directly within the models themselves. Besides displaying generated virtual landscapes or planning results, the models can be used for visualizing the development of ecosystems over time. So far, the only possibility to visually record such developments have been offered by
interval photography. For long-term processes this is expensive and difficult to do, which is why simulation and visualization of the virtual counterparts can be a good alternative. Another application area for synthetically generated plants is the regulation and measurement of models for the description of physiological procedures in plants, such as the determination of the light interaction and the energy exchange of the plant with its environment. Here specifically adapted models are imported into appropriate simulators, which compute from these models the values of the thermodynamic parameters. In yet another application of simulation, realistic plant models are meaningful: driving and flight simulators need vegetation for the spatial orientation of the users. In particular, at ground level the realistic rendering of the vegetation is an essential component in conveying spatial reality. Currently, the main area of application for synthetic plants is found in filmmaking. Virtual plants are used in specially designed external scenes or for special effects involving individual plants. Animation within geographical information systems, the visualization of whole landscapes and the production of interactively accessible landscapes for VR systems, and computer games conclude the list of possible application areas for synthetic plant geometry so far. According to the aspects discussed above, this book consists of four parts. In the first part, which contains the Chaps. 2–6, we address the modeling of individual plants. Based on botanic and mathematical description procedures, Chap. 4 describes the so-called procedural methods for the production of plant geometries, in which the models are synthesized using special algorithms. This is supplemented in Chap. 5 by rule-based modelling. So-called Lindenmayer systems play an important role here. In Chap. 6, we present rule-based object production, a method that combines rule-based and procedural modeling thereby eliminating a number of problems in the generation of plant geometries. This procedure is discussed with respect to already-existing methods. The second part of the book is concerned with the modeling of terrain and its plant communities. It covers Chaps. 7–8. Here again, based on the work in botany and geology, a system description is attempted that makes it possible to furnish and handle the required complex data efficiently. In the third part of the book that is found in Chaps. 9–11, we examine the rendering of synthetic landscapes. Starting with the fundamental algorithms of rendering, different approaches are described for the production of realistic looking landscapes. Here in particular the newest, most efficient methods are introduced. Level-of-detail representations play a significant role especially when quick rendering is given priority. Algorithms already make it possible to represent smaller landscapes interactively, and to virtually stroll around in them. A chapter on nonphotorealistic rendering concludes the third part and briefly addresses the production of further images and their relationship to the arts. This is focussed upon in the last chapter. Here we present the work of several
Section 1.3 A PPLICATIONS
7
Chapter 1 C OMPUTER -G ENERATED P LANTS
8
artists who motivated us to design interactive modeling programs for plants, organics, and whole ecosystems. Many of our ideas were developed before by artists such as William Latham, scientific artists such as Karl Sims or mathematicians such as Stephen Todd.
2
Plants Botanical Description
For an adequate evaluation and the ability to generate plant geometry, a comparatively small range of botanical methods and descriptive formulas is needed. Computer graphics in most cases works with relatively rough visual abstractions of a plant, and therefore it is necessary to identify the shape and the fundamental geometrical relations in the structure of a plant. An interactive modeling process often even permits us to render a correct shape without explicitly using a functional model of the plant. Consequently, we concentrate on a purely morphologic aspect of botany. Naturally, the shape of a plant and its characteristics are determined by the function of the plant, and within the context of a functional view it is necessary to consider both aspects, although a purely morphologic description allows for the recognition of substantial regularities in the structure. For a more detailed overview of the connection between structure and function see [218]. A comprehensive description of plant physiology, transmission and temporal developments is to be found in the standard works on botany, for instance [125, 169, 211]. In the following, we are mainly concerned with trees and shrubs. These cormophytic growth forms, i.e. plants that consist of roots, bud axes, and leaves are dominant in many landscapes and therefore play a very prominent role in the areas of computer graphics and landscape planning. Within the framework of this book, it is not possible to cover the overwhelming amount of different growth forms found in nature; however, in later chapters we will demonstrate that if synthetic plant production methods provide a carefully selected set of basic growth algorithms, almost all types of plants can be generated. Let us start with a general description of cormophytical plants. The direction of the bud axis and the form of branching determines to a large extent the characteristic shape of a plant. Additionally, the process of bud development, several forms of spatial division, and different tropisms comply with these basic rules and provide additional laws that influence the visual structure of plants. According to the pioneering works of Hall´e, Oldeman and Tomlinson [81], we distinguish between different types of trees according to their structure. The 9
Chapter 2 P LANTS
authors defined 23 different tree structures that include all the important cormophytical branching patterns found in nature. Aside from the branching structure, also the shape of the leaves and their development within the growth cycle of the tree are important for the visual appearance. Though computer graphics usually works with a rough approximation of the leaf morphology, for computer animations a faithful representation of the leaf shape and its development are important. A more detailed discussion follows in Sect. 9.6 that introduces the rendering methods for single plants. Later in this chapter, we will focus on plant communities. Similar to the intricate methods of botanical descriptions of single plants, special attention has to be given when outlining the characteristics of plant communities, and, thus, the complex interactions of a set of single plants. However, for the purpose of this book, only the most important description methods are specified, in particular those that are interesting in computer graphics for the implementation of the various kinds of synthetic construction procedures. We will, therefore, just like in the case of single plants, refrain from presenting a dynamic interpretation of vegetation, and instead of elaborating a causal relationship we will adopt a purely morphologic view. We are not so much concerned with reconstructing the origin and evolution process of a landscape, but rather with the methods that render the overall appearance of the landscape itself. In geobotany, according to [191], plant populations and communities are examined with regards to their contemporary distribution pattern as well as their dependence on existing environmental conditions. Vegetation geography takes another approach. Here the plant cover of the earth is analyzed with regard to the significance of different regional characteristics. The connections between the actual vegetation and the different environmental factors, such as climate, relief, waters, and soil, are extremely multifaceted, and in this chapter are merely touched upon. More in-depth coverage of the subject is to be found in selected works (see [211, 68]). Chapter 8 addresses some of these aspects in more detail. Here we discuss the methods used for the specification of terrain and the water regime in the soil, and simulate the development of a plant population according to the local water conditions. For a more comprehensive treatment of the subject, we suggest selected works on ecology which specifically deal with modeling methods in biology and ecology [22, 79, 102, 160]. The same is true for the view of the temporal, in particular the historical perspective, without which an understanding of the propagation terrain of plants is extremely difficult. Again, viewed from a vegetation-geographical perspective, we are more interested in the static, and not in the temporal bound description of vegetation. Later in this chapter, we also have to briefly outline description methods of vegetation geography. The plant cover of the earth here has to be described on various abstraction levels, and a number of spatial description forms, ranging from the general vegetation zones to the regional areas, represent habitats of plants in different levels of detail. At the very end of the line, however, there is the single plant, and we will focus on it first.
10
2.1
The Shoot Axis
Section 2.1 T HE S HOOT A XIS
As mentioned earlier, we are mainly concerned with cormophytes, land plants consisting of roots, shoot axes, and foliage. Starting at the shoot, the branch develops through vertical growth. It can bud, branch out, form a bloom or die off. The division of the branch is the fundamental element of each branching structure. The origin of branching systems and megaphylls can be explained through the Telome Theory. Although based on some former hypotheses, it was largely developed by W. Zimmermann between 1930 and 1965 [236]. The theory has steadily gained favor. The basic unit in the telome concept is the telome, described as that part of the branching system between the last dichotomy and the distant end of the branch. The structure of plants is explained illustrating different developments of fork formations (stem branching). In this hypothesis, the organs of today’s differentiated plants emerge through application of some fundamental procedures. The theory applies to both the macroscopic branching within a branch structure, and to the microscopic structure of leaves. The Telome Theory originated from an evolutionary viewpoint: the first plants characteristically consisted of a very simple structure and gradually refined themselves in the evolutionary process. An example of a still-existing terrestrial, simple plant is the whisk fern (Psylotum), which branches regularly in several stages and thereby resembles certain ancient vascular plants (urteloms). In its appearance, the psylotum also has a strong resemblance to the first land plants, which today are extinct. Figure 2.1 Fundamental processes of branch formation (Telome Theory): (a) telome; differentiation in: (b) overtopping, (c) reduction, (d) planation, (e) webbing, (f) bending
(a)
(b)
(c)
(d)
(e)
(f)
The first telome thus develops in the context of an evolutionary change into very diverse organs, which are part of the various plant forms of our time, by overtopping, reduction, planation, webbing or bending. In Fig. 2.1 the forked shoot can be seen with the five different shapes. Overtopping Out of a primarily equal branching, a main axis can develop, which then predominantly produces further branching. This is called recursive polypodial branching. Thus, a differentiation in the main axis and assimilating side axes takes place, which over time also leads to branching of the axis and leaves [72]. Overtopping occurs in most tree species. Leaves display similar patterns through the differentiation in the dominant midrib and subordinate veins.
11
Chapter 2 P LANTS
Reduction The process of overtopping can be further intensified by reduction of the subsequent systems. In many trees extreme overtopping and reductions can lead to almost straight trunks with comparatively small branches. Planation Planation is the transformation of a primarily three-dimensional into a twodimensional branching. This happens for instance with the leaf veins, which are arranged flat in a web-type manner. Webbing A planar arrangement of the branching structure often results in a multifarious, webbed growth. This way a leaf evolves, which is also significant for the differentiation of the branch axis. However, such complex webbed growth can also develop with a spatially arranged telome. If such webbing occurs in telomes, a relatively thick trunk can develop that consists of several so-called vascular bundles, and which is especially stable. Bending If the ends of the branch axis are curved or bent, then this usually serves the alignment of propagation organs that in this way are arranged on the leaf’s lower surface. For the construction and differentiation of the telome – in particular with regard to webbing – a subordinate, thus exogenous process is necessary for the implementation as an algorithm, allowing formed branching structures to interact in parallel. Within the rule-based plant production in Chap. 5, this is modeled through so-called context-sensitive systems. The procedural methods described in Chap. 4 also partly offer such mechanisms. Mostly, however, one tries to avoid such interacting processes, since they are usually computing-time and memory-intensive, and they also considerably increase the complexity of the algorithms. For computer graphics, the telome theory is interesting in so far as it explains a number of plant growth forms through variations of the basic forking process, meaning that the procedure can be described, theoretically as well as algorithmically, through parameterization of a single production method. This kind of procedure is covered in Chap. 4.
12
It must be noted, however, that there are different hypotheses, such as the Enation Theory [72], which explains the arrangement of leaves as swellings of the bark fabric. Although it is most certainly an elegant explanation, the Telome Theory should therefore only be consulted for its description of branching structures.
2.2
Budding
Section 2.2 B UDDING
The bud is a propagation system, since each new branch begins in a bud. We differentiate between terminal main buds and side buds in the axis of carrying leaves (bud axis). The inside of the bud is here protected by fast initial growth of the leaves. In leaf buds, for example, it develops into a branch with leaves, and in the case of flower buds to a bloom or bloom conditions.
Figure 2.2 Various leaf formations: (a) Distichy; (b) Dispersion; (c) Decussation
(a)
(b)
(c)
The circular formation of the leaves at a branch axis is called a node (nodus), the intermediate range is called an internode. A node may initiate one or more leaves, whereby the deviation angles (also called divergence angles) between neighboring leaves always remain constant according to the so-called equal distance rule. In Fig. 2.2 different forms of leaf arrangement can be seen: Distichy In the distichous (1/2 alternate) mode, a leaf primordium is initiated per node with a divergence angle of 180◦ . The leaves stand in two orthostichous (vertical) rows. Dispersion In the dispersion case, the divergence angle is smaller and results in a spiral leaf formation. The angles usually are within the range of 135 − 144◦ , and thus approximate the Golden Angle (see Sect. 3.4). The advantage of this arrangement is the minimizing of the mutual shadowing through a sequential leaf formation.
← Golden Section
Decussation In this formation, several leaf primordia are formed at the node. The leaves of sequential nodes are set in an alternating pattern in the gap of the preceding set of leaves, which also results in a low amount of self-shadowing. If two leaves per node are present, the nodes alternate at 90◦ , and a cross-like leaf arrangement emerges. Starting with the leaf buds and their different arrangements along the branch axis, plants grow in a recursive pattern by generating branch axes. A synthesizing algorithm must be able to copy these basic forms of branching, as distichy, dispersion and decussation are usually selected over separately selectable parameters that trigger corresponding branching procedures.
13
Chapter 2 P LANTS
The leaf arrangement can be seen as the fundamental structural characteristic of a branching plant. The branching formation and different spatial arrangements described in the sections that follow, on the other hand, represent geometrical characteristics. With a purely structural viewpoint, the appearance and the function of a branch are of no significance, only the type of branching is important. Thus distichy and dispersion are in this sense binary trees, while decussation represents a tertiary tree that is branched from one knot in three directions.
2.3
Branching Types
The geometry of a branching structure is determined either by the dominant main axis or the side branches. In the first case, we speak of a monopodial form, in the second case we call it a sympodial form. Monopodial branching exists if a continuous main shoot has feeble apical shoots, meaning that the main axis is longer and stronger than the side branches of the first order, which are again longer than the side branches of the second order. Subsequent branching develops in the same pattern. The result is a characteristically radial symmetrical growth form (see Fig. 2.3a). Sympodial branching applies, if the side branches are dominant. Shoots of different generations exist at the same time since the apical meristem of each sympodial branch has either died or is differentiated into a flower, a thorn or a tendril and has thus lost its ability to grow. The respective shoot tip is nearer to the ground than that of the next apical shoot. Many trees and shrubs are sympodial in appearance. If two buds of a sympodial branch sprout at the same time, a more or less fork-shaped pattern, a dichasium, is formed (see Fig. 2.3b).
+
!
$
'
(
"
,
#
*
Figure 2.3 Branching types: (a) monopodial branching; (b) sympodial branching: dichasium; (c) sympodial branching: monochasium
&
%
(a)
(b)
(c)
Hardly ever do several buds put forth at the same time (pleiochasium). Thus an equal branching pattern develops if a side branch is dominant; i.e., if only one of the apical shoots has the same direction as the main shoot would have had, then a monochasium results which may sometimes be difficult to distinguish from monopodial branching (Fig. 2.3c). local characteristics → 14
The branching type can thus be seen as a local geometrical characteristic of each plant. Hence, for the implementation of a plant construction, it is sufficient
to allocate the specification to each shoot that is characterized as a main or as a side axis. During the branch formation, depending upon the marking and the kind of structure that should be produced, continuance of the branching is either set or not set, and/or the size and continued branching frequency are changed.
2.4
Section 2.4 S PATIAL D IVISION
Spatial Division
According to its genetic options and the available space, a plant tries to optimize growth. Independent of the branching form, the primary axes grow vertically, the secondary axes rather horizontally. Thereby, the genetically specified differences in the growth form result from the different growth conditions in the lower and upper parts of the plant. We can differentiate between trees and shrubs: Trees The shape of trees shows a clear difference between the growth of the trunk and the crown. While the usually sympodial arranged side branches die off, the crown develops out of a complete branching system (see Fig. 2.4a). In the crown, the terminal buds and the closest side buds are most strongly promoted and therefore grow faster (ahrotony). Some tree species develop long and short shoots. While the long shoots advance the structure of the crown, subordinate branches are often not fully pronounced and are thrown off later. At this point, it should be noted that the different shapes of trees are heavily dependent on the location of the tree. If a tree is part of a forest, meaning in the direct vicinity of other trees, the light conditions cause the lower side branches to quickly die off and the tree will strive toward the light, thereby developing a more pronounced crown shape. A free-standing tree will, even with lower side branches, try to fill up as much space as possible to gather a maximum of light. Shrubs Shrub-like forms of plants usually display a sympodial branching form. Here, the growth of the buds and/or side shoots located at the tips of the buds are promoted more strongly than those located above (basitony), which produces a low, stout shape. We differentiate between epitonic forms, in which in particular upper-lateral buds are promoted and in this way form a concave structure (Fig. 2.4c), and hypotonic forms, in which the lowerlateral shoots are promoted to form a convex, more closed shape (see Fig. 2.4b). Aside from these classical growth forms there are still other kinds, such as for instance, climbing plants, which do not display their own mechanical stability but coil around other objects for support. In the context of an evolutionary
15
Chapter 2 P LANTS
adjustment to living conditions, the branch axis can be transformed in such a way that they are able to store water such as a cactus, defend themselves using thorns against game, or provide additional stability and support to the plant.
Figure 2.4 Spatial subdivision: (a) tree; (b) convex shrub; (c) concave shrub
(a)
global geometric characteristic →
(b)
(c)
In contrast to the forms of branching global characteristics just described in the last paragraph, the spatial division is a global geometric characteristic. In order to generate a shape or form, an algorithm must contain global information. For example, somewhere along the tree trunk there must be some kind of function for the thickness and the type of branching depending on the vertical position. This can explicitly happen through specifying a mathematical function or within a growth simulation, in which the lower branches die off due to global influences, such as the diminishing strength of light on the ground. In both cases, an interplay between local branching procedures and global parameters is necessary for the realization of the algorithms.
2.5
Tropisms
The appearance of a plant is, except for the branch formation, substantially determined by the formation of the shoot axes according to growth preferences, so-called tropism. The direction of the shoots is controlled by gravity and the incidence of light. These growth mechanisms are decisive factors for the optimization of the living space of a plant. As already mentioned, the main shoot axes mostly grow vertically in order to allow the axes to follow an optimal use of space. The adaptation here is caused by the gravity field of the earth – that is why this orientation is described as gravitropism. In contrast, the main roots grow according to positive gravitropism into the ground, while the leaves grow at a right angle to the gravity vector, which is called plagiogravitropism.
16
For a number of plants the hereby emerging directions and angles towards gravity are not static, but rather change in daily intervals, meaning that activities such as directioning and unfolding of the leaves take place during the night. The movement is controlled on a biological basis by a physiological clock, that is itself regulated by temperature changes and light intensity. As soon as the
control is discontinued, the length of this period diverges significantly between 22 and 28 hours, depending on the species and individual factors. In contrast to this, phototropism controls the growth of a shoot relative to the incident light direction. A transversal phototropism directs the shoots at right angle to the light. Many herbs are positive phototropic, meaning that they bend their shoot axes towards the light source as they grow. Another phenomenon is shadow evasion, where partially illuminated leaves move towards the illuminated side. An example here is the sunflower which follows the sun with its broad surface. There also are opposite variants, where the plants evade sunlight or incident light. Tropisms are thus considerably responsible for forming the shapes of plants. However, if the growth of a shoot is to be controlled by a real source of light, the light condition within the whole respective area must be determined in order to guarantee a correct growth process. In this sense, the growth process also depends on all other shoots, since the shading and reflection of those further shoots influences the growth. In Sect. 4.12 a description of controlling the growth of climbing plants using such light simulations can be found. The method is used in order to simulate the propagation of such plants on walls. In many cases, photo- and gravitropism can also be computationally approximated using local mechanisms. For example, the direction of newly generated internodes of a plant which displays negative gravitropism can in each case be turned vertically and/or towards the given light source. The shape of a branch which has been manipulated in this way is unique for such plants. An example is the weeping willow, whose branches grow towards the ground. The computational efficiency of such a local approximation counts in many cases much more than the small visual errors that might occur as a result.
2.6
Section 2.6 A RCHITECTURAL A NALYSIS OF T REES
← local approximation
Architectural Analysis of Trees
The concepts described so far are the decisive factors for the general construction of branching structures. However, the vast variety of trees found in nature, necessitates a more detailed categorization that takes into account architectural principles, and which at the same time analyzes the type of branching and the influence of the above mentioned factors with regards to the different orders of branching structures. Hall´e, Oldeman and Tomlinson in their fundamental work “Tropical Trees and Forests, an Architectural Analysis” [81] divide tropical trees into 23 architectural models and one theoretical extension based upon their branching structure and other parameters.1 This approach is significant, as non-tropical trees can also be placed within this model. The classification plays an important role with respect to the synthetic creation of plants. To classify a plant, a decision table is used [81]; the corresponding images are found in Fig. 2.5. 1A
definition that refers back to the approach introduced by Hall´e and Oldeman [80].
17
Chapter 2 P LANTS
The individual categories are named after botanists who studied tropical plants. A variety of single plants with quite different looks can be assigned to a category. Nevertheless, it is surprising that 23 categories are sufficient to describe the vast variety of species in a tropical tree forest.
Holttun
Corner
Tomlinson
Schoute
Chamberlain
Leeuwenberg
McClure
Koriba
Pr´evost
Fagerlind
Petit
Nozeran
Aubr´eville
Massart
theoretical
Roux
Cook
Scarrone
Stone
Rauh
Attims
Mangenot
Champagnat
Troll
Figure 2.5 Tree architecture models from [81]
The classification is mainly based on the existence and/or absence of sympodial growth, the branching characteristics, whether growth takes place or not, and on the type of tropism. For example, in Corner’s model only the primary axis exists, but no branching. These plants are monopodials. A typical representative of this species is the coconut palm. In the Leeuwenberg model the buds die off within one year, which results in a typical sympodial structure.
18
In Massart’s model, the primary axis is orthotropical (grows vertically), all other axes are plagiotropical. The plant itself is a monopode with rhythmic branching patterns; examples are conifers such as spruces and pine trees. In Rauh’s model, only plagiotropic axes are found. These trees are also monopods
with rhythmic branching patterns. Prominent examples are different types of spruces.
Section 2.7 L EAVES
Aside from the value of this categorization method for botanists, the architectural analysis helps to determine the characteristics of a computer model which would allow reproduction of as many plants as possible. The view of the trees in this kind of refinement shows for example that a purely recursive computer program, which applies the same mechanisms to each branching level, cannot produce the vast variety of botanical trees. Though for many trees of the Northern Hemisphere which show a comparatively regular structural pattern this is still an acceptable method, it is not effective for tropical trees. Nevertheless, recursive tree production algorithms are currently still being implemented, which results in relatively inadequate results.
2.7
Leaves
No matter how leaves evolved, it may be through evolution, as suggested by the telome theory, through planation, and/or deformation, or through other mechanisms, a leaf consists of four main parts, the leaf blade, the expanded portion of the leaf, the petiole (leaf base), the rhachis (leaf stalk), connecting the blade to the stem, and the lamina (stem clasping). There is an infinite variety of shapes, which can roughly be categorized into pinnate compound leaves, palmate compound leaves, lance-like leaves with parallel venation, and leaves with net veins or reticulate venation patterns (see Fig. 2.6).
(a)
(b)
(c)
Figure 2.6 Different types of leaf shapes: (a) single-veined pinnate; (b) lance-like with parallel veins; (c) differentiated leaves with net veins
The last-mentioned shape, which is characteristic for most deciduous trees, anchors the leaf base to the shoot axis (petiole). Leaves in which the blade attaches directly to the stem or surrounds the stem are termed sessile leaves. An extreme form is the lamina with a fused basal rim evoking the impression of a leaf that the shoot grows through. The base of the stalk may even grow down on the shoot a little bit further. The leaf stem is structured similar to an axis. The so-called sheath-forming petiole surrounds the shoot for stability. Some types of leaves are equipped with a petiole joint, which allows for movement. Leaf anatomy distinguishes between various kinds of leaf types: while bifacial leaves clearly show a differentiation between the tissue of the upper and lower side, equifacial leaves have assimilation tissue on both sides. Unifacial leaves, such as lance-like leaves with parallel venation, also show the assimilation tissue on both sides under the epidermis.
19
Chapter 2 P LANTS
leaf development →
Since computer graphics is more interested in the actual appearance rather than in the function of leaves, it is not necessary to further pursue the subject. Nevertheless, in Chap. 9 we present a light simulation in combination with a detailed leaf model containing several layers. The simulation is able to represent various reflection properties of leaves. We turn briefly to leaf development, i.e., the changes in leaf shapes during the life and yearly cycle of a plant. During the life cycle and within each growth period, a plant produces various types of leaves. First juvenile (shoot) leaves are formed, in order to store the first nutrients for the shoot or to produce nutrients with the help of photosynthesis. A multiplicity of secondary leaves later takes over the nutrient supply. Then the petals (cup and crown leaves) follow, which together with the stamens and carpels (pistils) form the blossom.
Figure 2.7 Different types of net-veined leaves with varying shapes
Depending upon their development, the secondary leaves continue to mature differently in the nodes. With water plants usually triple nodes with a rootlike leaf and two swimming leaves develop. Also along the branch axis such changes can occur, for example if the newly formed areas of the plant serve a new purpose such as reproduction. The above-mentioned leaf models with parallel and netvenation, are further categorized according to their shapes (Fig. 2.7). Netveined leaves are divided into palmately lobed leaves with pronounced margins, into pinnately lobed or netted or arched leaves. Other shapes are possible, depending on the type of the leaf margins, the development of the leaf margin, the presence of a stem, as well as the leaf base. Leaves of deciduous trees are further divided into simple and compound leaves. Compound leaves with three leaflets, such as clover, are said to be ternate. Figure 2.8 illustrates the most important shapes; more details may be found in [110].
Figure 2.8 Leaf arrangements at the bud axis
20
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
The structure of the conifer leaf deviates very much from that of the deciduous tree leaf. Most needle leafs are perennial and have triangular or square cross
sections with bifacial structures. At the branches, the leaves are arranged spirallike, opposite, whorled or cluster-scaled. The modern ginkgo has a special leaf shape: though it is a tree with a coniferlike architecture, the fan-shaped leaves are flat and irregularly notched. These uniquely pronounced characteristics are due to its ancestry. The ginkgophytes are an ancient group that attained maximum diversity in the Jurassic Period. They are also typified as living fossils, since their structure has changed very little since then.
2.8
Section 2.8 G EOBOTANICAL D ESCRIPTION M ETHODS
Geobotanical Description Methods
Since also entire plant societies are to be modeled later in this book, In this chapter we are also concerned with the description of vegetation. The vegetation geography is the field that is occupied with the evolution of plant communities. Areal science is a part of vegetation geography that describes the spatial distribution of plants. Generally, we speak here of spatial patterns that are summarized in a spatial map. The development of vegetation is determined by two factors: firstly by ecologic factors that describe the existing conditions of the habitat at the time of observation; secondly by floral evolution, stemming from the development of the earth’s history. Regardless of these factors, different plants can be found in areas with similar climatic and geological conditions. Usually the reason is that it was not possible for plants from one area to migrate to other areas due to large distances or adverse conditions. The observation that in different continents different plant families and vegetation types are dominant, is not new. Alexander von Humboldt tried to systematize the different factors that influence the development of flora and fauna, though he did not create a world-wide taxonomy. This was done in the 19th century. In 1922, the Swedish botanist G. Turesson (1892–1970) furnished evidence of the existence of stable varieties occurring in nature by showing that species consist of genetically different populations (also called ecotypes) subject to selection due to the environmental conditions in their respective habitats. In taxonomy, two different approaches are employed: firstly, the floral taxonomy, which divides the earth into floral regions and floral kingdoms, according to plant families unique to the endemic species, i.e., the local habitats; secondly, vegetation taxonomy, which proposes physiognomic-defined units, often in combination with ecological characteristics. Schroeder [192] differentiates between six major floristic kingdoms with a total of 38 floristic regions; Richter [176] applies a division of 40 regions, according to combinations of regional differentiations introduced by Mattick [130] with 43 regions; and 35 regions as suggested by Takhtajan [217]. So far the division into six floristic zones seems to have been predominantly accepted: the Holarctic and Holantarctic floristic kingdoms span from the outer edges of the polar
← floristic division
21
Chapter 2 P LANTS
vegetation division →
areal (definition) →
22
regions to the tropics, where the neotropical floristic kingdom encompasses the South American region, and the Palaeotropical floristic kingdom encompasses Africa and the Pacific region. Australia presents its own floristic kingdom, while the Cape-region in South-Africa is a spectacular exception with its own unique concept of 8,500 flowering plants and 6,500 endemics [176]. As we already mentioned, the science of vegetation division, in contrast to floristic science, is oriented toward physiognomic aspects, and thus concerns itself with the appearance of a landscape. Here the predominant terms, such as forest or semi desert are old, and only during recent decades they were accurately defined using the term formation. This will be discussed in more detail in Sect. 2.9. The substantial ecological factors for the scientific vegetation classification of a landscape are the climate factors temperature and water. Accordingly, in 1986 Oskar Drude divided the earth into six vegetations zones. Today, however, usually seven zones are referred to. In the equatorial area, we find the tropical vegetation zone, which is essentially characterized by the absence of frosts. Climatically it forms the most favorable zone with an abundance of vegetation. The zones of temperate deciduous forests are located between the tropical and the Arctic and Antarctic zones. However, these areas are not uniform, and in the Northern Hemisphere the zone is divided into three zones. The meridian zone forms the southernmost range and borders on the tropics and on expanded desert areas like the Sahara. Here temperate, evergreen deciduous forests prevail. The nemoral vegetation zone, situated in the north, is characterized by deciduous, broad-leaf forests. Further to the north, evergreen coniferous forest is dominant: the boreal zone. Towards the poles, the temperature sinks to a point that does not allow plants to maintain a metabolism, which is essential for the development of tree structures. These zones are called the Arctic and Antarctic tundras. The Southern hemisphere is less differentiated. Here the temperate evergreen laurel forest stretches up to the Antarctic forest border, and unites into only one zone, the Australian vegetation zone. Certainly there are different opinions; other authors use a larger or smaller number of vegetation zones. On this abstract level, both in the floristic and in the vegetation scientific classification, regions are usually only typified by relatively rough descriptions of domestic plants. Little is stated about the quantitative distribution of the plants in both cases. Also regional characteristics do not play a role on this level, which can be seen from the fact that in both classifications Central Europe is treated as a uniform zone. A regional differentiation happens only if an area is subdivided more finely into so-called areals. According to Richter [176] one speaks of an areal when a larger number of plant groups have a similar basic structure. Related groups are identified as floristic or geoelements. Schroeder differentiates areals as follows: Physiographic area Areas that are defined by geographical conditions. Related species, e.g.,
families or groups, are termed geoelements. For example, the red beech and the sycamore maple, together with other related species, represent the Central European areal type, which is one of the parts of the Holarctic floristic region.
Section 2.8 G EOBOTANICAL D ESCRIPTION M ETHODS
Biographical units Units, which are also termed floristic areal types, denote the natural vegetation zones. Areas with ecological characteristics Often identification of a type is determined based on ecological principles. Meusel [139] uses a mix of ecological and biogeographical criteria. He uses vegetation zones and merges them with the criterion oceanicity, an ecological characteristic, which is determined by the humidity and the temperature amplitudes of the climate. By the nature of the description methods, the definition of areal types includes regional specifics, such as the Alpine areals. However, little quantitative information with regards to plant population are at hand at this time, and would also not be of any significance for the purpose of this book. If needed, a division of areal types is possible by comparing general quantitative values of selected plants in given test regions. Occasionally, we will later speak about ecosystems. While in the classification used by Richter the term does not play a separate role, and instead areals are considered to be spatial patterns on a larger or smaller scale, in [228] it is proposed that the term has to be viewed as an independent habitat for plants and animals. An ecosystem can extend from a few square meters up to many square kilometers. Schroeder [192] speaks in this connection simply of vegetation, which is conclusive as the term ecosystems includes all kinds of organisms, but here we are only concerned with vegetation itself. Schroeder refers to the term “vegetation” based on integrated effects of environmental factors on classified cohabitation of plant families in the respective habitat, which at the same time indicates characterization of vegetation in a local framework. In the following, we often speak of vegetation in a local environment; we will use the term ecosystem as a synonym for our purpose. In computer graphics, such ecological systems have their own place in that on this level plants still must be modeled and visualized as individual objects, in order to receive a realistic general impression. If larger areas are to be shown, work without geometrical abstraction is no longer possible. For example, entire plant communities must here be rendered as precomputed images in the context of an aggregate scene, because their detailed geometrical description is too complex. For the computer-graphical visualization of such an area the dominant structures must be converted into mathematically precise plant distributions. Additionally, the conditions at the borders, where special interactions between the plants of the respective areas take place, must be considered.
← ecosystem (definition)
23
Chapter 2 P LANTS
plant formation →
2.9
Description Methods for Vegetation
On the rather regional and detailed level of such local ecosystems, a description of the individual vegetation types can be produced by means of so-called plant formations. The description uses a physiognomic classification according to life forms (species), such as in the already discussed way in vegetation science. Schroeder [192] proposes 11 classes of formation for the description of vegetation. Richter [176], on the other hand, proposes only seven, although in the latter case the concept includes further sub classification. For example, a formation class is composed of formation groups, which again are made up of formations. Further subdivisions are classes and associations. As an example, the formation of the tropical rain forest belongs to the formation group of tropical evergreen forests, these in turn belong to the formation subclass of evergreen forests, which again is a part of the formation class of closed forests. In the scope of this overview we provide in the following a rough classification due to Schroeder, for a more detailed classification we refer to [193]. Schroeder distinguishes: Forest: Closed forest stand with tree crown cover (or equivalent stocking level) of more than 50% of the crown cover. Undergrowth covers a high proportion of the ground and is affected by shading conditions. Open forest: Formations with discontinuous tree layers but with a coverage of at least 10% and less than 40%. The undergrowth is barely affected. Shrubs: In the broader sense, shrubs and bushes are vegetation types where the dominant woody elements are shrubs, such as woody perennial plants, generally 2 – 5 m in height on maturity and without a definite crown. Heath: Closed standing dwarf shrubs (predominantly calluna and erica) similar in being evergreen and microphyllous. Other growth forms are almost not present. Grassland (Savannahs): Physiognomy characterized by grass-like plants, other growth forms are present but have little affect. Perennial grassland: Consists mostly of grass-like, non woody perennials. Annual grassland: Short-lived vegetation consisting of short-lived herbal and herbal-like (haulms) plants or grasses (monocarpic or hapaxanthic; perennial or annual; flowering and fruiting once, then dying). Moss cover and lichens: Low-growth vegetation consisting of diverse mosses and lichens. Semi desert: Plants evenly distributed on the ground; isolated; however, root systems touching.
24
Desert: Plant growth only in locally favorable areas.
Sweet water vegetation (aquatic vegetation): Underwater rooting or rootless, submerged vegetation. The sense of this kind of subdivision compared with floristic divisions lies in the larger abstraction of individual plants. A tropical evergreen forest may consist in different regions of different plants; its characteristics, however, remain always the same. On a rather local level, in areas with well-known flora, also a floristic division is possible in plant societies, and so the typology of formation can be more specific. The school of plant sociology, according to Braun-Blanquet [21], analyzes areals in different places, whereby the goal is to find characteristic colonization combinations, which result from a number of types with specific cover patterns. Such combinations, also called associations, can now be classified and ranked hierarchically to allow small-scale assessments of larger sites. Several associations form one alliance, several alliances constitute an order. A combination of orders make up a class, and several classes can represent a formation. Diagnostic criteria of plant societies (syntaxa) are the associated species. One distinguishes between character species, which are limited to certain vegetation units, and differential species, which include units of lower orders, and finally alliances, which can be defined as more generalized types that share some of the diagnostic species found in the associations. There are several different approaches, at least for Europe, on the level of classes, how to systemize plant sociological classifications, and how to standardize them [43]. Again, it is neither the goal of this book nor is there enough space to give a complete listing of the individual classes or the various methods. A small selection should suffice to give an approximate overview of the complexity of the material:
Section 2.9 D ESCRIPTION M ETHODS FOR V EGETATION
← plant societies
Clearcut and edge forest societies Clearcut land societies Acid soil edge societies Thermophile edge societies Cover and shrub societies Buckthorn-sloe-shrub society Subalpine high shrub and green alder societies ... Forest societies Continental sand and savannah heath-pine forest Acid soil moor forests Acid humus and coniferous forests Summergreen deciduous trees Greenweed oak forest-hickory societies Juniper-pine societies ...
25
Chapter 2 P LANTS
26
As an example of even further differentiation, we briefly introduce the societies of the clearcut forest, which have settled in clearcut forests and clearings. There are two orders [193]: clearcut stands with acid soil and stands with high base saturation. While Epilobium angustifolium (fireweed), Rubus idaeus (raspberry), and Cirsium palustre (European swamp thistle) are found in all clearcuts, those with acid soil are mostly characterized by seven kinds of plants: Epilobium angustifolium, Senecio sylvaticus (heath groundsel), Senecio viscosus (sticky groundsel), Rumex acetosella (common sheep sorrel), Avenella flexuosa (herbal grass only found in German forests), Agrostis capillaris (colonial bent grass) and Carex pilulifera (pill sedge). At this point we can further subdivide into five societies, which are defined by a subset of the specified plants plus additional species. Such a society is, for example, the fireweed/thimbleberry society, which consists of two types and is to be found in acid soil stands, poorer soils of red beech forests and coniferous wood forests. Similarly, six species are assigned to the clearcut forest stands of basic soils: Hypericum hirsutum (St. John’s wort), Fragaria vesca (wild strawberry), Festuca gigantea (giant fescue), Galium odoratum (sweet woodruff), Bromus benekenii (forest grass) and Cirsium vulgare (bull thistle). These stands are again divided into three societies. For the different plant societies data is determined based on their quantitative composition. Very detailed analyses are made possible by manual counting out, whereby temporal changes are also recorded. Although such results are impressive in their detail, they are not very useful for computer-assisted modeling if there is not enough information available with regard to the appearance of individual plant populations and their interactions. Therefore, in the next chapter, after the mathematical description of branching structures, the spatial characteristics of different plant populations are mathematically described, and these are then later converted into distribution algorithms. For an accurate mathematical computation, the data of the individual population forms are combined with the data on vegetation covers, i.e., the respective plant societies.
3
Some Mathematics Plants as Mathematical Objects
In order to generate a mathematical description of branching structures, we need formulations coming from statistics because of the underlying random processes of parameters such as branching frequency, growth direction and/or the lengths of the branches. The same case arises for quantitatively describing plant populations. In this chapter we will discuss these methods, first for single branching structures and later for plant populations. Firstly, one can divide and organize branching characteristics into different classification systems. For example, such descriptions indicate the frequency of the branching of a plant or a river on a specific branching level. The results serve the quantitative analysis of branching structures as well as the synthetic production of plants. Secondly, plant geometry can be still more generally described. Here Benoit Mandelbrot laid the groundwork with the definition and application of the term “fractal” . In connection with fractal analysis, abstract branching structures and also real trees are assigned fractal dimensions, which permits us to compare them to other natural objects with fractal characteristics.
3.1
Geometrical and Topological Models
Already in the preceding chapters, we differentiated between the geometrical and topological characteristics of trees. At this point, we reiterate these differences, for the sake of clarity. In the following chapters, when we speak about the production or rendering of a tree, we specifically mean the reproduction of the outer appearance of the plant, its morphology. In computer graphics, this reproduction is achieved through the plant geometry by means of many small surfaces in 3D space, usually in the form of triangles and squares. Thus, we speak of a geometrical tree when a botanical tree is reproduced visually by its shape. In other words, a geometrical model approximates the surface of its botanical counterpart.
27
Chapter 3 S OME M ATHEMATICS
In contrast, the topological tree takes into account only the number and types of branching, and indicates, how many branches develop from one branch and again how many secondary branches emerge from the first set. The form and appearance of the branches are not of interest here. Two geometrically very different trees can, viewed topologically, have the same description. Just imagine that the points on the surface of an object are connected by rubber bands, the two structures are then topologically equivalent if we can transform the first geometry by bending and twisting it into the second. For example, this is not possible if we want to transfer the surface of a ball into a coffee cup, since the cup has a handle that cannot be achieved this way.
binary tree →
Almost all botanical trees are binary trees in this sense, with the exception of the leaf arrangement described in Sect. 2.1 which topologically represents a tertiary tree with a branching divided into three parts (see Fig. 3.1).
leftmost branch
Figure 3.1 Geometrical and topological description of a tree that incorporates tertiary branching
tertiary branching
smaller branches
Topological trees can therefore be described using the following pattern: a tree is a quantity of knots, and of edges that connect the knots. There are two kinds of knots: internal knots (branching knots), and external or terminal knots, also called leaves. Each internal knot has two children; in a tertiary tree we find three. The external knots do not have children. An internal knot, seen from the point of view of its children, is called the father knot. Similar one can call the corresponding edge a father branch and an outgoing edge a child branch.
3.2
28
Branching Structures
We can use a classification system to assign a numerical value to each knot and to each edge of the topological branching structure, called its reference or ordinal number. In the botanical sense, a closely approximated allocation is the time of origin of the knot and/or the corresponding bud and the branch. The trunk receives the ordinal number zero, all main branches receive the ordinal number one, and all branches receive higher order numbers. The number of branches of an order corresponds then to the shoots grown in one year, and the relationship between this number and the number of branches
of the underlying order is described by the branching ratio. In Fig. 2.3 such ordinal numbers for the branches of a model are indicated. In this way, to each tree statistical values may be assigned that describe how many shoots per year or per branching order are generated and also how the branching takes place. In Sect. 4.8 an approach is described that, through the direct simulation of such statistical values, renders trees that are astonishingly real looking. The Horton-Strahler analysis, a method commonly used for the analysis of branching structures in geology and hydrology, differs from the botanically motivated analysis [95, 210]. While in the latter case, evolutionary history plays a significant role, the Horton-Strahler analysis provides a growth-independent measure. Here, the Strahler number of the root is determined, which is also called the Strahler order. All terminal nodes are assigned the order one. For the inner nodes vm with children vi and vj this results in the order number ord(vm ): ⎧ ⎨ max(ord(vi ), ord(vj )) if ord(vi ) = ord(vj ) (3.1) ord(vm ) = ⎩ else ord(vi ) + 1
Section 3.2 B RANCHING S TRUCTURES
← Horton-Strahler analysis
← Strahler order
While the perfect tree in Fig. 3.2b receives the Strahler number four, the order of the degenerated tree is two. A segment of the order k is the maximum result of connected edges with the order number k. It follows that the tree in Fig. 3.2a has two segments of order two. 3 1
4
2
3 2
2
1
1
2 1
1
1
3
2 2
1 1
2 1
1
2 1
2
1
1
2 1
(a)
(b)
1
Figure 3.2 (a) Tree with order numbers and Strahler numbers; (b) perfect tree; (c) degenerated thin tree
(c)
Outside of botany, large branching structures are especially found in hydrology. Several studies discuss the analysis of river networks. Here especially the bifurcation ratios, βk , play a role. They show how frequently the segments of order k branch. If bk is the number of segments with order k, βk = bk−1 /bk is valid, and for the tree in Fig. 3.2a the bifurcation ratio results are β2 = 8/2 = 4 and β3 = 2/1 = 2. The minimal number for a βi is two, and is obtained for all orders with the perfect binary tree in Fig. 3.2b, while the degenerated tree can, relative to its length, reach an arbitrary bifurcation ratio. In Sect. 4.9 we introduce a process that is an extension of the Horton-Strahler analysis for the production of branching structures with a combinatory approach. In this approach, the order is expanded to a biorder that includes the directed branching. This allows the description of the branching characteristics
← river networks
29
Chapter 3 S OME M ATHEMATICS
of a tree using a so-called branching matrix, which then is used for generating the geometry.
3.3
self-similarity →
Trees as Fractal Objects
The theory of fractals allows for new mathematical ways to describe a number of natural objects. At this point, however, we cannot discuss the formalism or the consequences of the fractal theory in general, we are merely sketching the description of botanical branching structures as fractal objects. For a more in-depth review see Mandelbrot’s well-known book “The Fractal Geometry of Nature” [127]. After we have reviewed and analyzed the topology of branching structures in the last two chapters, geometry comes now into play again. A small part of a tree (a branch or a twig) looks similar to the entire tree. This also applies to many mountain formations, coastlines and crystals. Mandelbrot calls such objects fractals. An essential term in this connection is therefore the selfsimilarity of an object. While the topological dimension DT of all curves has the value one, their Euclidean dimension E can also take the value two, whereby the curve is no longer differentiable at any place. Such non-differentiable curves led, after a work by Du Bois Reymond in 1875 [50], to completely new aspects in classical mathematics, whose research opened the way to a set of new formalisms and applications. Hence, aside from the Euclidean dimension, still further dimension definitions can be found, with which such “monster objects” can be described. This allows us to quantify their characteristics. In this process, the self-similarity of objects can be used as well.
(1)
(1)
r(N)=1/2
r(N)=1/3
r(N)=1/2
Figure 3.3 Similarity transformation for several objects
(1)
(2)
(1)
(2)
(3)
(4)
(2)
(3)
(1)
(4)
N=2
N=4
N=4
(a)
(b)
(c)
A distance of length L, thus an object of Euclidean dimension one, can be divided into N parts, whereby one can obtain each part from the whole using the scaling S = r(N ) = 1/N (see Fig. 3.3a). For a square one needs a scaling r(N ) = 1/N 1/2 and for a cube r(N ) = 1/N 1/3 . For higher-dimensional cubes we find 30
r(N ) = 1/N 1/D
resp.
log r(N ) = −(log N )/D,
(3.2)
D=−
log N . log r(N )
(3.3)
It is also possible to understand D as the dimension of the self-similarity of an object. The self-similarity of a square or a cube is not particularly exciting. More interesting is, for example, the von Koch curve (snowflake curve) from Fig. 3.3c, because here we obtain a value D = log 4/ log 3 ≈ 1.2618. Each quarter of the object must be scaled by a factor of three, in order to become similar in its form to the whole. In contrast to cubes, the similarity dimension exceeds here the topological dimension of the object, in this case the object is termed a fractal. Besides fractal curves such as the von Koch curve there are also fractal point sets (DT = 0) and various higher-dimensional fractals. The fractal analysis of a tree can be carried out in two different abstraction levels. First we only look at the tree skeleton, whereby the thickness of the branches and the trunk are neglected. In the second step, we also incorporate the diameter of the trunk and branches. As an example, in the top line of Fig. 3.4 some fractal tree structures are illustrated that have the same branching angle Θ but different scaling factors S of branching lengths relative to the father branch. Thus, the necessary scaling r(N ) varies as well as the similarity dimension of the tree skeleton. The angle Θ is constant for all branching levels, which represents a rather rough approximation of the botanical law. In the lower lines of Fig. 3.4, Θ was varied and selected in such a way that in each case the branches do not overlap. For the mathematical analysis, the tree is divided into two different parts, into the quantity of the branch tips and those of the branches itself. The first part is an isolated point set (a dust) and has the dimension DT = 0. The branches, with or without branch tips, form topologically a curve with DT = 1. With regard to the fractal dimension the point set of the branch tips needs N = 2 for r(N ) ∈ ]0... 1/2], thus it has a similarity dimension D ∈]0...2]. Thereby the angle of the branching can vary within a large range, without changing the dimension. The same D allows thus for a multiplicity of tree shapes (see [127]). However, Mandelbrot used in his analysis of the fractal dimensions the socalled Hausdorff-Besicovitsch dimension, for self-similar objects that equals the similarity dimension, but yields meaningful results for a larger quantity of objects. The Hausdorff-Besicovitsch dimension is considerably more difficult to define and to compute than the similarity dimension. Mandelbrot uses the terms “fractal dimension” and “Hausdorff-Besicovitsch dimension” as synonyms; this may be permitted here also for the similarity dimension, although mathematically it is perhaps precarious. Let us return to the tree examples: The scaling factor S of the branches with regards to the sizes of the respective father branches plays an important role. It determines directly the fractal dimension of the branches, but also those of the branch tips. For S ≥ 1 the tree is unrestricted and the fractal dimension of the branching sinks below one. For smaller values of S the branching angle Θ
Section 3.3 T REES AS F RACTAL O BJECTS
← similarity dimension
31
Chapter 3 S OME M ATHEMATICS
Θ=40o S=0.4
Θ=20o S=0.5
Figure 3.4 Top line: Fractal tree skeletons with uniform branching angles Θ = 40◦ and varying scaling factor S = r(N ). Lower lines: Fractal tree skeleton with varying branching angles and accordingly selected scaling, so that overlapping is avoided
Leonardo da Vinci →
Θ=40o S=0.5
Θ=40o S=0.51
Θ=40o S=0.6
Θ=40o S=0.8
Θ=80o S=0.577
Θ=160o S=0.67
Θ=180o S=0.7
must always be selected to be larger in order to avoid self-overlapping (see Fig. 3.4); the fractal dimension in this case exceeds one. The values S = 1/2 and Θ = 180◦ yield a plane-filling tree with D = 2. If one examines real branching structures somewhat more closely, then interesting differences regarding the thicknesses of the branches are found. Leonardo da Vinci (1452–1519) assumed a connection between the thickness of a branch d and the thickness of its children d1 , d2 . He postulated that the sum of the cross-section areas of the children in a branch equals the cross-section area of the father branch [33]. Thus d2 = d21 + d22 ,
32
Θ=120o S=0.619
(3.4)
which later was proved to be an excellent estimated value for botanical trees. Unfortunately, the result is that botanical tree skeletons are not self-similar, at
least not if the thickness of the branches is considered. If Eqn. (3.4) is generalized to ∆ d∆ = d∆ (3.5) 1 + d2 , for self-similarity ∆ = D must be selected. This relationship holds, for example, for the bronchial tree of the lungs, where ∆ = D = 3 applies. Arteries have ∆ ≈ 2.7 and river systems ∆ = 2. For the most botanical trees Eqn. (3.4) with ∆ ≈ 2 applies, which has been confirmed by many empirical investigations. Since they are almost space filling, D ≈ E = 3 (see also [127]) can be assumed. Thus, in contrast to the bronchial tree they are not self-similar. And indeed a small branch is similar to a large tree; it possesses, however, a trunk that is too thin. Another result of ∆ = 2 is that a botanical tree, in contrast to a bronchial tree, is rather translucent. It is possible to look through a botanical tree, but not through a bronchial tree, as stated by Mandelbrot.
Section 3.3 T REES AS F RACTAL O BJECTS
← bronchial tree
A beautiful illustration of the geometrical coherencies is given if one imagines each leaf to be connected with a root through a strand. The sum of the strands in a branch determines its volume and diameter, the relationships between the branch diameters and the diameters of their father branches in this case yield the values given by Da Vinci. This idea is implemented later in Sect. 4.10 in an algorithmic approach to the production of tree geometries. The specific values of ∆ and D for botanical trees can be reduced, according to Hall´e, Oldeman and Tomlinson [81], to the problem of the energy exchange: the problem of the energy exchange in trees can be simplified by considering the tree as a system in which with a minimal production of volume as much as possible surface must be provided with water, and which at the same time guarantees the transport of the absorbed energy. To obtain a maximum of surface with a minimum of volume leads almost inevitably to fractal structures. In contrast to a bronchial tree or to arteries, a tree is not supported from the outside, but must carry itself and also must resist the influence of wind. Therefore the structure must be lighter than that of the bronchial tree and we assume ∆ 3. The integral values for D and ∆ result here in a coherence, that can again be empirically proven. As an example, the total surface of the leaves of a branch proportionally relates to both the volume within the outlines of the branch and the diameter of the branch, this (according to [127]) was empirically affirmed by Huber in 1928. Further results are tree height3 = const. (3.6) trunc area2 For each branch it follows: diameter of space occupied by a branch3 = const. branch diameter2
(3.7)
Since the wind resistance of a tree is approximately proportional to the branch and leaf surface and thus to the third power of the height, while the resistance
33
Chapter 3 S OME M ATHEMATICS
of a branch is proportional to the square of its diameter, the need automatically arises for a connection such as that in Eqn. (3.6).
3.4
Golden Ratio →
Phyllotaxis
Phyllotaxis is the term for the regular arrangement of outer plant organs such as leaves, blossoms or seeds along branches or in a bud. In Sect. 2.1 the distribution of leaves along the shoot axis was already discussed, and in the preceding section similar distributions of compound leaves were found. The arrangement of the leaves is here often subject to a law, that was probably among the earliest found correspondences between the botanical processes, their mathematical description, and the resulting aesthetics: the Golden Ratio. A classical example of an emerging pattern is the distribution of the seeds in a sunflower. The arrangement of the seeds is the result of an optimization process, that arranges the seeds as closely as possible on a circular disk. The sample computer image of Fig. 3.5 is computed from the application of a simple rule that was proposed by Vogel [226]. The ith position of the grain is described in polar coordinates by the angle αi and the radius ri . It results from the following rules: √ ri = c · i αi = i · φ. (3.8) Here c is a positive constant and φ must have the following value: √ 360◦ 5+1 ◦ φ = 2 = 137.5077... with τ= . τ 2
(3.9)
The value for τ is here the relationship of the Golden Section, which since antiquity has been especially known to be a convenient proportion ratio for partitioning. The radial shift over the square root in Eqn. (3.8) is geometrically motivated, since with more dense packing the number of placeable objects on a circular disk is proportional to their surface and thus to r2 . Hence, inevitably, with progressive placement, growth according to the square root of the radius must take place, in order to ensure an even positioning. In Fig. 3.5 the developing arrangement sequence is represented as well as three examples, which show the behavior of divergence angles in the proximity of φ. If the angle is minimally changed, a distinct striping results, and in the case of expanded objects, such as, for example, the sunflower seed, a worse packing density will occur. Less understandable than the choice of the radius is, at a first look, the choice of φ = 360/τ 2 . Here the division ratio corresponds to the Golden Angle substantially more clearly if one utilizes an additional characteristic of τ :
34
1 1 = 1− 2 τ τ
resp.
360◦ 360◦ = 360◦ − 2 = 222.4922...◦ (3.10) τ τ
78
23
44 10
99 65 31
14
12
1
0
162
52 18
115 60
5
21 205 8
223
210
231 8 22 236 2 244 39
6 11 16 176
189
7
19
20
168
134
18
3
4
9
15 0
12
142 155
121
66 100
197
215
6
61 40
95
19
74
108
53 32
87
147 42
79
202 55
113
181
4
34
47
97 76
5 10 126
3 17
89 68
26
9 13 160
1
13
0
11
123
102 81
39
5
144
157
136
94
73
18
16
11
9
149
6
9
178
92
24 170
107 128
86
191
19
2 15
204
183
0
22
212
8
196
1
24
233
217 225
9
5
4
238
84
20 17
15
246
3
11
2
57
63
φ = 137.5o
36
91
8
70
15
71
49
104
3
50
83
28
138
2
13
11
29
7 62
45
41
117
24
75 96
130
6
8
18
16 7
14
125
2
20 1
180
159
58
20
109
193
172
151
206
185
22
3
54
88
164
198
5
214
23
227
37
φ = 137.7o
33
67
7
219
16
neighbor difference of 34
12
2 12 143
17
1
248
240
5
24
232
24
21
7
242
7
3
4
23
6
229
234
9
22
6
16
20
216
221
21
22
8
2
0 19
3
208
4
14
18
195
1
200
2
19
161
174 187
11
10
1
17
166
179
7
46
8
15
12
25
59
80
7
140
153
4
38 93
15
13
124 145
106
119
132
72
5 13
10
111
17
51
85
98
90
3
82
64
77
0
69
48
27
30
43
56
24
35
14
23
divergence φ
22
Section 3.4 P HYLLOTAXIS
neighbor difference of 21
9
1
21
0
13
φ = 137.2o
(a)
Figure 3.5 a) Arrangement sequence according to the Golden Section; for a better illustration, the divergences here were numbered from the outside in. b) Variation of the divergence angle φ
(b)
If, instead of φ, a divergence angle of 222.4922...◦ is chosen, an inverse arrangement of the elements according to the Golden Angle is obtained. The spiral now “turns” counterclockwise. Although the developing distributions are very balanced, a set of spirals (parastichies) can be identified, which run either in or against the clockwise direction (see Fig. 3.5). Despite the symmetrical appearance of the image, 21 parastichies run in the clockwise direction, but 34 run inversely. The differences between neighboring elements on the spirals behave accordingly, at least on the outer part of the pattern. On the spirals running in the clockwise direction, two neighboring dots have a difference of 21, on the ones moving in the opposite directions, the difference is 34. Out of a larger number of dots new parastichies with other neighboring conditions are formed. The reader should not, however, be fooled. Alan Turing (1912–1954), one of the fathers of computer science, attributed this strange phenomenon to the characteristics of the human eye by postulating, that all possible parastichies are contained in the pattern of the Golden Angle; in some areas they only appear visually more strongly than in others. Astonishingly, the differences among the parastichies form the sequence of Fibonacci numbers (named after Leonardo Pisani (1160–1250), called Fibonacci), wherein each number is produced by the sum of the two previous numbers:
← parastichy
f = 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610... In Fig. 3.6b this is demonstrated for some Fibonacci numbers. Other numbers also produce parastichies; however, they produce no consecutive ones, see Fig. 3.6c.
35
Chapter 3 S OME M ATHEMATICS
Still another connection between the Fibonacci numbers and the golden section: Johannes Kepler (1571–1630) noticed that the ratio of consecutive Fibonacci numbers approaches the Golden Ratio. Therefore the angle of the Golden Section also often is called the Fibonacci Angle.
Figure 3.6 (a) Visual transition of a parastichy into another neighborhood (8-neighborhoods in 144-neighborhoods); (b) parastichies formed through Fibonacci numbers (21 red, 34 green, 55 blue, 89 magenta, 144 cyan); (c) non-Fibonacci numbers do not produce parastichies (22 red, 23 green, 24 blue, 25 magenta, 26 cyan)
functional model →
(a)
(c)
It should at this point be noted that the phyllotactic patterns presented here are purely descriptive models. A plant does not compute itself according to a fractal model and a flower is never able to keep the required high accuracy of the divergence angle in the arrangement of its seeds, which would be necessary for the positioning of the Golden Ratio. These are mathematical models that describe the appearance amazingly well, but state little about the actual synthesis. Here functional models must be found. An example is a model that produces the appropriate pattern formation in the flower by local optimization of the packing density (see Sect. 4.13). Other functional models are illustrated in the next chapters where we discuss the synthetic production of plants. In some cases, the physiological simulation of plants leads to interesting results. Often descriptive models are also used because with their help real-looking geometries can be produced, without taking into consideration the underlying biological model. We now turn to plant populations and their description. The elements that have to be described here are no longer branching structures, but dots or small areas on the plane, which mutually affect each other.
3.5
36
(b)
Description of Plant Populations
In Sect. 2.9 we already pointed out that for the description of populations of individual plants as well as of plant associations, statistical models are necessary. In ecology there is a large selection of books discussing the determination of distribution values based on given measurements. Additionally, fundamental procedures are found in the standard works on botany [68, 211]. In the following paragraphs, once again the modeling of distributions will be focused on, therefore only descriptive models are discussed.
Generally, we differentiate between regular and random distributions. The latter can be evenly distributed or can exhibit clustering. While regular distributions usually only come about through human influence, random distributions is the usual case in nature. Such distributions form their characteristics through the propagation mechanisms of the plants, through their interactions, and through the fight for resources, as well as through local conditions. A popular form of random distribution is the Poisson distribution. If a regular measuring grid is laid over such a plant distribution, then the probable number of plants i is distributed per partial area according to the function p(i) =
mi −m e , i!
Section 3.5 D ESCRIPTION OF P LANT P OPULATIONS
← Poisson distribution
(3.11)
where m is the mean per partial area. The probability of finding more than the average of the plants per partial area decreases exponentially. If, additionally, such a distribution is translation invariant, then one speaks of a uniform distribution (see Fig. 3.7a). For Poisson distributions the average value is equal to the variance m = s2 .
Figure 3.7 Distribution patterns of plant population: (a) Poisson distribution; (b) Poisson disc distribution; (c) clustered distribution
(a)
(b)
(c)
Patterns of this kind develop, for example, if plants distribute seeds by air and the seeds hit the ground at random. However, this applies only if the plants can grow arbitrarily close together, an assumption, that does not apply to many plants. Usually a plant prevents the growth of related species around itself, typically within a circular range. The resulting mathematical distribution is called a Poisson disc distribution. In such a distribution, around each dot a circular disc with a fixed minimum radius can be positioned, without any other dot of the distribution lying on its surface. Such a distribution can be seen in Fig.3.7b. In a Poisson disk distribution, the variance is strongly reduced and depends on the circle radius and dot density. The distribution can, on the one hand, be produced by successive inserting of new dots at random, where for each newly inserted dot it must be tested whether it lies in an existing circle (dart throwing); on the other hand, through iterative changing of a Poisson distribution. Details are given in Sect. 8.1.
37
Chapter 3 S OME M ATHEMATICS
For clustered distributions we do not have a description basis in the form of a universal mathematical model. In many cases, however, a negative binomial distribution sufficiently describes the situation. Here we can apply m −k p(i) = 1 + k
clustered distribution →
m m+k
i
(k + i − 1)(k + i − 2)...k , i!
(3.12)
with m the mean and k the aggregation coefficient. If k decreases, the dimension of the cluster expands. Here we can apply m −k p(0) = 1 + ; k
(3.13)
all other terms can be determined recursively using p(i) = p(i − 1)
m(k + i − 1) . (m + k)i
(3.14)
If we have a natural plant population with an average value of m and a standard deviation of s, the aggregate coefficient can be determined using k=
m2 m = , −m CD − 1
s2
(3.15)
where CD = s2 /m is called the dispersion coefficient. The dispersion coefficient gives a reference point for the form of the distribution. If CD < 1, then it is a regular distribution, CD = 1 characterizes a Poisson distribution, and CD > 1 a distribution with cluster points. This last form of distribution usually develops with plants, that spread over roots and therefore produce their successors in direct proximity. A common example is populations of clover.
3.6
discrete methods →
Developmental Models
During the simulation of the evolution of a plant population, we must decide in each case to what point of accuracy one wants to control the system being produced, and how much effort is acceptable. The appropriate techniques are divided into continuous and discrete methods based on individuals (see [7, 76]). A comparison of both approaches, with special consideration of the propagation of alien plants in ecological systems is found in [86].
Simple Demographic Models
38
With a demographic model the future number of individuals of a population is predicted. In the simplest case, growth is an exponential function, whereby its
change is proportional to the current number of plants. This case arises if nothing obstructs the propagation of a species. An exponential model is described by the following differential equation: dN = rN. dt
Section 3.6 D EVELOPMENTAL M ODELS
(3.16)
Here N represents the size of the population and t the time. The parameter r is the growth rate of the population and consists of different factors such as the maximum age, the reproduction rate per year, and the survival rate. Usually it is empirically determined, whereby precise measurements are difficult due to special conditions. The logistic model limits environmental resources as additional boundary conditions. The growth rate is described here as a function of the current size of the population and its maximum size in the equilibrium state K: N dN . (3.17) = rN 1 − dt K
← logistic model
Here the growth rate reduces itself continuously in the proximity of the equilibrium, until it levels off to the size K. In this model the density-dependent development of the population is not yet considered. Additionally, K is dependent upon the size of the plants. In Chap. 8 this effect is taken into consideration in the practical simulation of a population. In order to move from the differential equations of the above models to growth algorithms, these equations must be discretised. With dt = 1, and the current size represented using Nt , after a time interval dt, we obtain in a logistic difference model, the future quantity Nt+1 :
Ni . (3.18) Nt+1 = Nt 1 + r 1 − K The continuous models in general can be better described mathematically than the discrete models; however, for the graphical simulation of smaller landscapes they are indispensable, since the individual locations of plants are needed here. In the previous models it is assumed that the environmental conditions are constant over space and time and that there is no change in the behavior of the population. Variability is, however, a substantial component of natural systems, therefore the logistic difference model must be changed additionally using random parameters. One obtains a stochastic model: Nt+1 = Nt + Nt (r + y(ti )) − r
Nt2 K
,
← logistic difference model
← stochastic model
(3.19)
where y(t) is a time-dependent variable with an average value of zero and a variance of one. Comparisons between deterministic and stochastic models
39
Chapter 3 S OME M ATHEMATICS
seem to show that stochastic models tendentiously predict a smaller population density than deterministic models, and that the difference represents a function of the variance of y(t) [86].
Spatial Phenomenological Models
regression model →
geometric model →
Markov model →
In such models the focus no longer is on the single plants and their total number, but on the surface used as well as the growth rate. The density of the individual species is determined here by real measurements in nature. Interaction between the species takes place according to an ecological model. In the simplest case, the so-called regression model, the propagation of a population measured over the years and throughout regression, will be illustrated usually with an exponential function. Different studies exist for the propagation of alien plants in ecological systems, in which over many decades the changes were measured. The parameters can at least partially be used for simulation. In a geometrical model the propagation is described by a number of growth centers on an unrestricted two-dimensional surface, which enlarge with a defined rate. The original data for such a model can be obtained again through observation methods. A so-called Markov model describes the change of a landscape of m cells over the matrix equation Nt+1 = P Nt , (3.20) where Nt = (nt1 , ..., ntm ) is a column vector, that indicates the part of the m cells occupied by the population at the time t, and P is the matrix for the description of the change. The significance of the Markov model is twofold; on the one hand, the change is made dependent only on the current condition of the population, thus the system no longer has a “memory”; on the other hand the transition probabilities in P remain constant over time.
Spatial Mechanistic Models
reaction-diffusion model →
40
Contrary to the phenomenological models, mechanistic models are based on ecological parameters of individual system components, which are defined independently. The result of the simulation is determined by these parameters, by the interaction characteristics of the plants involved, and by the model assumptions. The first category of such models is reaction-diffusion models, which describe the behavior through partial differential equations. The most simple dispersion model describes a homogeneous population, which spreads without restraint, and, thus exponentially on a two-dimensional surface: ∂u = ru + E ∂t
∂2u ∂2u + 2 ∂x2 ∂y
.
(3.21)
Here u(x, y, t) is the density of the plants at location (x, y) at time t, and E is the rate of the movements of the individuals of a population, also called the diffusion. In plants this occurs only with the seed; usually E is assumed to be a normal distributed random variable. There are many points of criticism with respect to reaction diffusion models, since some interaction forms cannot be described. However, the models have been successfully used in some places. Often the growth of a species is the combination of the growth of many local populations. The total system in this case is called a meta-population. The socalled population dynamic metapopulation models attempt to describe such systems. These are individual based simulation models, presented through the difference equation: Ni (t + 1) = Ni (t) ri (t) −
n j=1
Eij +
n
Eji ,
Section 3.6 D EVELOPMENTAL M ODELS
(3.22)
j=1
where n describes the number of populations and Ni (t) the number of individuals in population i at time t. The parameter ri (t) describes the growth rate of the population i at time t. Eij is the number of individuals changing from population i to population j. Saturation and the development of new populations can be brought about using simple extensions. Metapopulations divide the total population into subpopulations, and thus partition the surface of the total population. If the borders of the subpopulations do not align, however, with the heterogeneity, due to environmental factors of the soil and other local conditions, errors can occur. Discrete cellular automata can avoid this effect. They are particularly used in places where local effects have strong influence on a population. The models divide the surface into a discrete field of cells that can in each case accept a finite number of conditions (0, 1, ..., n). In order to obtain the value of cell i at time t + 1, a transition rule Ci (t + 1) is defined, which is dependent on the current condition of the cell and other cells (usually the geometrical neighbors): Ci (t + 1) = F (Ci (s), Cj (s)).
← cellular automaton
(3.23)
Here s < t is an earlier point in time and Cj symbolizes the adjoining cells (see also [76]). These models are used in many places in ecology, where, aside from their simple implementation, the advantage is that many different data sources can be included in the simulation without large expenditure. Both the demographic models in their discrete form and the metapopulation models produce the positions and attributes of individual plants, and thus are also discrete models. The original data is empirically assessed through enumeration methods in nature [97]. By means of simulation methods, we attempt to copy the propagation procedures and interactions between species and to determine individual positions for plants. In Chap. 8 two implementations of such discrete models are discussed more deeply.
← discrete model
41
4
Procedural Modeling Programming of Plants
Computer-assisted simulation of natural growth processes was introduced as early as 1966 – during the time computers became more and more available to researchers. So-called cellular automata, simple computer models, developed by John von Neumann (1903–1957) in the 1950s, were utilized by Stanislaw Ulam in 1966 for the production of branching patterns. The first continuously growing plant model with a branching structure was first published by Dan Cohen in 1967. The next essential development was pioneered by Aristid Lindenmayer (1925– 1989), who in 1968 extended the idea of the string rewriting mechanism to the description of cellular interactions, and also the simulation of branching structures. Hashimoto Honda introduced in 1971 the first parameterized model for the modeling of a three-dimensional tree skeleton. Outside the botanist community, the process of computer-assisted methods for the production of plants did not, however, receive a high level of attention until the 1980s when increased computer performance allowed for the modeling of complex branching structures and thereby facilitated a more faithful modeling of plants. Parallel to this development, the vastly improved graphics power of computers allowed for the illustration of a larger number of plants in combination with other synthetic objects, and consequently expanded the application area, especially in computer animation. During the last 25 years a variety of different methods have been developed, more or less successfully. They are mainly divided into two major categories, namely procedural and rule-based methods. Procedural plant creation processes are parameterized algorithms that are designed for the production of a certain type of plant, though often solely for a single specie. Rule-based procedures are based on a rule system, which, using the application of rules, produces from a simple initial state a complex final state. Of course, the wide range of approaches can be divided further. Prusinkiewicz [161], for example, differentiates between structural and space-oriented models. The first class is based on the assumption that growth is controlled by endogenous mechanisms embodied in the growth structure, while the second 43
Chapter 4 P ROCEDURAL M ODELING
class also includes the interaction between parallel-growing partial structures, thus taking external space-oriented influences into account [165]. For the purpose of this book, we divide the methods into procedural and rule-based methods, since the synthesis of both approaches leads to a new method, which is introduced in Chap. 6. So-called rule-based object production combines components with procedural elements by using a simple rule mechanism. In this way it is flexible and intuitive. First, however, we focus on the main procedural methods, before rule-based procedures are discussed in Chap. 5. In the following, the procedural processes for plant modeling are listed chronologically. Starting from the first models, we can trace the constant improvements of the different approaches up to the current efficient modeling methods that are able to generate realistic-looking plants, as will be demonstrated below.
4.1
Stanislaw Ulam [220] worked with John von Neumann and became inspired by von Neumann’s concept of cellular automata. In this concept, the space, either an arbitrary dimensional abstract space or – for botanical simulation – the usual two- or three-dimensional space, is divided entirely into cells of the same dimension. Aside from the division into cubes, triangles, and tetrahedrons, as well as other primitives can be used. Each of the cells generated in such a way has a fixed number of predefined neighbors. Each cell is assigned a state chosen from a finite set. In an iterative procedure all cells change their states according to the same rule, which describes the next state of a cell as a function of its previous state, and the states of its neighbors. For example, all cells at the start are assigned the state “invisible”. During the simulation process, more and more cells are made visible. This also permits the simulation of growth procedures.
5 4
5
John von Neumann →
Cellular Automata
4 3
3 4
4 5 3
3 4
2 2
4 5 3
5 4
5
3 4
2
4 5 3
5 4
5
3 4
4 5 3
4 3
5 4 5
(a)
44
2
3 4
Figure 4.1 Discrete branching pattern by Ulam: (a) simple pattern with illustration of different generations; (b) more complex branching pattern
1
3 4
(b)
A simple example uses square cells (a grid). Starting from a single cell, a growth rule activates all adjacent cells, with the exception of those that already have two or more already activated cells. Figure 4.1a shows a corresponding pattern. A modification of the growth rule allows for the first branching struc-
ture to develop (see Fig. 4.1b). Hereby those cells are excluded from the activation that are adjacent to a cell that already was activated in the same iteration. Later Ulam extended the procedure to other cell types, and in this way was able to generate a number of different branching patterns. Extensions of this concept of branching structures were later implemented by Meinhardt [138], who analyzed the formation of net-like structures, and by Greene (see Sect. 4.12), who used three-dimensional models for the growth of climbers.
4.2
Section 4.2 A F IRST C ONTINUOUS M ODEL
A First Continuous Model
Independently of the discrete cellular automata, Dan Cohen, a botanist, implemented the first procedural method for the modeling of branching structures [29]. For each branching pattern a Fortran program was written using a set of simple growth rules.
(a)
(b)
(c)
Figure 4.2 Continuous branching structures by Cohen: (a) branching restriction introduced by minimal distance to end of branch; (b) vertical alignment of growth; (c) use of an attractor (square) and of an inhibitor (star)
Although here for each structure a new algorithm is programmed (we are dealing with a typical procedural approach), three relatively simple rules determine the growth and the type of branching in a structure: Growth takes place only at the tips of the branches, i.e., the biological mechanism of the shoot is directly replicated. The strengths and angles of the growth are determined by the current direction, a local density field, its gradient, and the resistance of the structure to changes of the angle. The branching tendency is determined by a probabilistic measure that depends, aside from a general value, on the distance to the last branching and on the local density field. The model is developed through a sequence of discrete steps that are aligned according to the above set of rules. In Fig. 4.2, three branching structures can be seen, which were produced by application of varying rules. The effect of branching restrictions is shown in Fig. 4.2a. Part (b) demonstrates the possibilities of spatial adjustment. Figure 4.2c illustrates the application of attractors and inhibitors.
45
Chapter 4 P ROCEDURAL M ODELING
This approach also includes the changes of the parametric values outside the branching structures. This actually allows the visual differentiation in the orders of the branching, and it is used in many of the later works. Although the approach is not a rule-based method, Cohen points out how powerful rule systems are, and how important this type of branching structure is in botany.
4.3
Three-Dimensional Procedural Models
Honda [91] and Fisher [62, 63] also came from a botany background. Their approach is to simulate the branching structures of trees and other plants using another procedural model. Here, for the first time, three-dimensional tree skeletons evolve. The pictures are obtained through projection of the 3D-data onto the viewing plane. However, the model is still constructed relatively simply: Internodes are straight, the thickness is not taken into account. The geometrical data thus only consists of line segments, the only type of element, which at this time was supported by monitors. binary branching →
Only binary branching occurs. The length of the branched segments (child elements) is correlated to the length of the father segments using two relational values r1 and r2 . The father segment and the two child segments are at one level. The child segments have a constant branching angle. The offshoots form an exception, at which divergence is permitted. The branching increases in discrete steps with each branching order, a procedure that also is adopted directly from nature, and which can be observed in most natural tree skeletons.
Figure 4.3 Branching structure by Honda: (a) Projection to xz-plane; (b) to yz-plane; (c) to xy-plane (Courtesy of H. Honda)
(a)
46
(b)
(c)
Although it is a simple procedure, with this model realistic-appearing tree skeletons evolve (see Fig. 4.3). Because of their three-dimensionality, these models can be turned arbitrarily on a display screen. Simultaneously the first realistic-appearing plants were generated using rewriting systems, and for the computer graphics community more modeling aspects emerged. At the same time, however, this also opened up several questions: How efficiently can a concretely defined branching structure be reproduced? What kinds of variations can be generated using only a certain modeling method and what is the needed effort?
Section 4.3 T HREE -D IMENSIONAL P ROCEDURAL M ODELS
(a)
Figure 4.4 Parameters in the model by Aono und Kunii: (a) parameterization of branches; (b) divergence angle
(b)
In response to these considerations, Aono and Kunii [5] extended the procedure developed by Honda [91]. Here, special emphasis is given to the modeling of branching. The extended method has the following attributes: Branching occurs through bifurcation, i.e., binary branching, the trees thus modeled have monopodial or sympodial forms. The lengths and diameters of the forked branches decrease with a constant factor; the branching angle remains constant throughout all bifurcation stages. The two forked branches are located in a plane that is spanned by the father branch axis and his maximal gradient. The branching takes place simultaneously at the branch tips. Figure 4.4a shows the parameters of the model. Most elements of this branching model are used in later approaches, though in extended or modified forms. Although the models are relatively fixed, it is possible to produce a number of interesting and also, as statistically proven in [5], realistic-looking branching models. In particular, different kinds of phyllotaxis can be modeled in this way. In Fig. 4.5 we show several examples of branching structures that were generated according to this method.
(a)
(b)
(c)
(d)
Aono and Kunii extend their basic model in several aspects. By introducing attractors and inhibitors, they bend the models, thus to simulate the influence of wind (Fig. 4.5c). Other types of branching patterns are introduced and, additionally, the branching angles are modified in accordance with their developing age, such as in Fig. 4.5d.
Figure 4.5 Branching structures generated by Aono and Kunii: (a) h1 = 35◦ , h2 = −35◦ ; (b) h1 = 0◦ , h2 = −70◦ (monopodial); (c) non-uniform model and additionally provided inhibitor; (d) branching angle with respect to age (Courtesy of M. Aono, T.L. Kunii)
47
Chapter 4 P ROCEDURAL M ODELING
The produced branching structures impress in their variety and natural effects. Geometrical aspects are here not of any major importance. So leaves, for example, are only rudimentarily sketched, and the geometries of the trunk and branches are generated only by line segments of different thickness. Aono and Kunii were critical of the then popular L-systems, because of their awkwardness and their limitations when handling all the rules that were required to produce their own models. Prusinkiewicz and Lindenmayer proved these objections later as not substantiated [166], in particular by using parametric L-systems for the creation of similar forms of branching.
4.4
Figure 4.6 Branching process of Terminalia catappa provided by Honda: (a) r = 0; (b) r = 0.3; (c) r = 0.5; Influence of different growth rates: (d) f1 = f2 = 1; e) f1 = 1, f2 = 0.9; (f) f1 = 1, f2 = 0.667 (Courtesy of H. Honda)
48
Regulation of the Branching Process
Ten years after their first work, Honda et al. [92] examined how a branching procedure can be controlled by rule mechanisms. They found that with plants that have dense branching structures, no overlapping of the branches occurred, therefore there had to exist a mechanism by which overlapping could be prevented locally. The simulation of such local control mechanisms is the aim of this work.
(a)
(b)
(c)
(d)
(e)
(f)
The models shown here are two-dimensional, and two kinds of regulations are analyzed: In the first model a purely sympodial branching is implemented, and is only then executed if no other branches project into the circle drawn around the branch point. The circle has a constant size for all branching orders. Depending upon the radius, different branching patterns emerge, as shown in Fig. 4.6a–c. The second procedure looks at how the branching characteristics are modified if during branching, the successive growth is given different growth rates (flow rates). These rates indicate how much material for the growth stimulation of the plant flows into the two sub-branches of each branch. In this way, tree-like growth can be simulated. Two growth rates f1 , f2 ∈ [0..1] are defined. During growth, discrete quantities of material, relative to the values, are distributed into the branches. The results are shown in Fig. 4.6d–f. Here we are dealing with a typical representative of exogenous procedures, in which growth is determined by external factors, and which therefore must have appropriate data structures in order to efficiently support spatial interactions, especially, if we are managing complex branching structures. In the case at hand, this was not yet necessary due to the simple models.
4.5
Generation Using Particle Systems
Compared with the previous achievements in this area, the works of Reeves [171] as well as Reeves and Blau [172] illustrate the different motivations underlying the modeling of plants. Reeves, employed with Lucasfilm, needed a fast, relatively realistic method to represent vegetation such as forest or meadows. The botanical correctness of the models was in this case not of major importance; significant, however, was the overall realistic appearance. This is, as already pointed out in the introduction, with many computer-graphics applications a legitimate decision, since often a simulation has to be produced only once for a certain project.
Section 4.5 G ENERATION U SING PARTICLE S YSTEMS
Figure 4.7 Structured particle systems used for rendering trees and grass (Courtesy of W. Reeves)
One of the results of this specification is a quite primitive branching model, by which branches are produced recursively and then are attached to the trunk. Only the global form of the tree is given here. However, since the algorithm generates very regular branching – just like in all other procedures previously discussed – randomness is introduced later. If a generated branch is small enough, particles in the form of small colored balls are attached to it. The results are surprisingly realistic, in particular in the final result of the work, the film “The adventures of Andr´e and Wally B.”[124]. The main reason for this is certainly the perfect coloring of the models in combination with sophisticated shading models, which are also described in [172].
4.6
A Fractal Tree Model
Inspired by the discovery of fractals and the works of Mandelbrot [126, 127] during the mid-1980s, a number of computer-graphics scientists became involved with the aspect of fractal creation for the modeling of natural objects. These procedures are mostly recursive, since this has proven to be an easy way to simulate the self-similarity often found in trees. In a recursive procedure the heart of the computation is self-initiating, meaning it initiates itself automatically, over and over again. Oppenheimer’s algo-
← self-similarity 49
Chapter 4 P ROCEDURAL M ODELING
rithm [150] uses a method that recursively calls itself for the simulation of the branching along a trunk, and to generate smaller branches along the large ones. This can be continued arbitrarily, so that ever-finer branches develop. However, in practice, after a certain number of branches have been generated, the procedure is stopped.
Figure 4.8 Fractal tree model (Courtesy of P. Oppenheimer)
To Oppenheimer it was particularly important to quickly produce a representation to easily facilitate the individual parameterization of the model. Contrary to Reeves and Blau’s branching structure, detail modeling must therefore be parameterized relatively finely. Here, also curved sections are used for the first time, to ensure a more realistic outlook of the trunk and its branches. One of the main assertions in Oppenheimer’s article describes the relation of the geometry and topology of trees for the purpose of modelling in computer graphics: “... the key to realistic modeling, the diversity of trees, lies in controlling the geometric interpretation. Many different topologies were used in this project. But varying the geometric interpretation of a single topology, one could still generate a wide variety of trees each with its own distinct taxonomic identity.” Also here the focus is primarily on the visual representation, this time in particular on the detailed branching structure. Contrary to Aono and Kunii [5], Oppenheimer uses a simple monopodial branching model with parameters for the branching angle, size ratio of father and child branches, degree of tapering along the trunk and the branches, number of branches per trunk segment, and the deviation angle. In the following production process, similar to Reeves and Blau1 , the segments of the trunk and the branches are generated with a recursive algorithm. Within the transformation, the upper parameters ensure that natural forms develop. In pseudocode the form of the algorithm is written as follows:
1 Here
50
it must be noted, that in [172] no description is given of the actual recursive procedure, but only a rough motivation with the calculation of the respective parameters.
Algorithm 4.1: Procedure fractaltree() begin draw actual branch segment if small enough then draw leaf else begin transform actual branch fractaltree() repeat n times begin transform for branching fractaltree() end end end
Section 4.7 G EOMETRIC M ODELING
/* stop criterion */
/* recursive call */
/* recursive call */
In order to interrupt the strict self-similarity of a recursively constructed tree, Oppenheimer uses random parameters, which he varies in each case depending on a function of a given average value and standard deviation. The trunk and the branches are modeled as a generalized cylinder using the connection of the individual segments. The realistic appearance of the bark is generated using a horizontally running saw tooth function. This generates a vertical striped pattern, which is modulated by adding a noise function in order to replicate the irregularities of the bark. The Brownian noise used here is treated more closely in Chap. 7, where it is used for the simulation of terrain, a further natural object with fractal characteristics. Figure 4.8 illustrates the result of a recursive procedure. Oppenheimer asserted that he was able to render trees of such complexity in real time on an Evans and Sutherland graphics workstation.
4.7
← generalized cylinder
Geometric Modeling
Bloomenthal [17, 18] focuses on the geometrical aspects of tree modeling. The approach is demonstrated with a tree example that shows a branching structure generated by a recursive algorithm. Unfortunately, its production is not revealed. The control points created with the algorithm are then connected by continuous spline interpolation. The surface is created by connecting circular disks that are arranged perpendicularly to the spline. With previous methods one encounters problems as soon as a natural appearance of branching has to be obtained, which can be seen with Oppenheimer’s approach (Fig. 4.8). Bloomenthal therefore constructs saddle surfaces between the two branching strands that reproduce the natural branching very faithfully. This is illustrated in Fig. 4.9b.
← spline interpolation
51
Chapter 4 P ROCEDURAL M ODELING
Figure 4.9 (a) Procedural tree model including bark, roots and branches; (b) finished model with additional leaves (Courtesy of J. Bloomenthal)
(a)
(b)
Furthermore, Bloomenthal suggests a modeling method for the roots using socalled “blobs” [16]. Here a surface is defined using the point set that has a given distance to a single geometric object or a quantity of objects. A simple example is a ball whose surface points all have the same distance from the center and are described using the circle equation R2 = x2 +y 2 +z 2 . All points for which the above equation holds are situated on the ball’s surface with radius R around the center point. For the modeling of branches and roots, the objects that define the surface are the roots’ skeleton curves that diverge in the lower trunk area (see Fig. 4.9b), and so define the root area. The bark is rendered through bump-mapping with a texture that was obtained (via scanning) from genuine bark. The results look very realistic, and the methods can easily be transferred to other trees.
4.8
An Approach Based on Budding
An approach oriented on botanical growth rules was pioneered by De Reffye et al. [34]. The authors simulated the growth of the shoot axes in discrete time steps from node to node. One internode after the other is placed along a shoot, and branching and leaves are produced. The time steps are fixed within the branches of one order. Nevertheless, branches of higher order can grow with a greater speed than those with lower order.
Figure 4.10 Growth simulation using buds: (a) probability of dying and sleeping greater zero; (b) probability of dying greater than zero, probability of sleeping zero
52
(a)
(b)
Each bud carries several probabilities: the probability of dying, the probability of resting, and the probability to branching out. Again, we are here dealing
with a randomized controlled model, but this time with a much stronger sphere of randomness, since wide-ranging structural characteristics can be modified. A similar approach with larger time steps was chosen by Remphrey et al. [173, 174] for the modeling and architectonic analysis of different plants. Figure 4.10 illustrates the progression of the randomized controlled growth simulation by De Reffye et al. for two different sets of parameters. The x-marks designate the shoots that have already died off. Thus, for the modeling of a tree, the following parameters must be specified: the age of the tree, the growth rate of the branches of different orders, the number of possible buds per node in relation to their order, and the probabilities of dying, resting, and branching. The pseudocode for the discrete simulation can be written as follows: Algorithm 4.2: Procedure budtree() begin for each time step do begin for each bud still living do begin if bud does not die and does not rest then begin generate internode generate apical leaf end for each applicable bud do begin if bud branches then generate branching end end end end
The models are available to the user in a library of plant algorithms. The commercially distributed product includes a large number of different species, which can be parameterized by using age and growth. Other than the already mentioned botanical growth simulations, the method of De Reffye et al. enables simulation of anatomical correct growth, although the
Section 4.8 A N A PPROACH BASED ON B UDDING
Figure 4.11 Results of botanically oriented growth models (Courtesy of P. de Reffye)
53
Chapter 4 P ROCEDURAL M ODELING
authors do not execute this in [34]. Also, animation in the presented form of the algorithm is fixed on discrete time steps and has to be synthesized with suitable interpolation methods to even permit animations.
4.9
Strahler analysis →
A Combinatorial Approach
In Sect. 3.2, we already addressed the Strahler analysis of trees and other networks. Vannimenus and Viennot [222] extend this subject with the goal to find a combinatorial mechanism for the production of branching structures. Here, a randomly controlled algorithm is applied as well, though, in contrast to earlier procedures, the basis is a complex statistical model. With this method, the problem of having to define the appearance of the tree by exclusively using local rules is at least partially circumvented. Here, a mechanism allows for the topological modification of the entire tree, which was only possible to some extent with the previous methods. For describing a branching structure, the Strahler analysis assigns to each node and to each edge in a tree a number: their order (Horton-Strahler index). Viennot et al. extend this enumeration to a biorder that stores a number pair (c, d) per node. If k is the Strahler order of the father and i and j those of the sons, then we define: c = k, d = i c=d=k−1
biorder →
if j = k and i < k else (i = j = k − 1).
Hence, the biorder represents a measure for the node which incorporates the order of the sons. Here, the parameter c always contains the larger of the two Strahler values, and d the smaller one. We obtain a measure for the type of branching, and for the structure of the attached subtree correlating to the Strahler order, respectively. In the next step, for all nodes with a Strahler number the probability that they have a certain biorder is computed. These probabilities are stored in the lines of the branching matrix P . Values are calculated one by one for the tree: ak Number of nodes with Horton-Strahler order k bk,i Number of nodes with biorder (k, i) bk,k Number of nodes with biorder (k − 1, k − 1)
54
pki = bk,i /ak
k≥2 1≤i 1 branch from this edge and assign orders to child edges k and i corresponding to the probability given by the biorder of their edges in the branching matrix Tn+1 = Tn until for all terminal edges of Tn+1 we find: k = 1 end For the construction of the geometry, the branch thickness and the branching angle are computed from the branching order and biorder respectively. The results are not spectacular (see Fig. 4.12), nevertheless this approach deserves attention because of its unique methodology.
4.10 Leonardo da Vinci →
Tree Modeling Using Strands
Leonardo da Vinci assumed that for trees in a branch bifurcation, the crosssection of the father branch equals the sum of the cross-sections of his children. This was already discussed in Sect. 3.3. Likewise we already mentioned that this estimated value was proven to be amazingly precise.
Figure 4.13 Tree model using strands: a) combination of strands in a tree; b) branching parameters
(a)
(b)
This realization, combined with the knowledge about the vascular internal structure of trees, prompts to define the whole tree structure using small strands, which would reach from the root of the tree up to the leaves. In a forking, the strands are divided and continue to run further along in the children. If a close packing is present, then the above cross-section ratio is obtained.
56
Matthew Holton [89] modeled trees according to the above procedure (see Fig. 4.13a). The number of strands here not only determines the thickness of the branches, but also their length and the number of leaves as well as the branching angle. Should a branch bifurcate with S0 strands, where the ratio of the strand numbers of the branches is given by PG,W , in reference to the botanical order num-
bers from Sect. 2.3, then for the numbers of strands S1 , S2 in the children we apply S1 S2
= =
Section 4.10 T REE M ODELING U SING S TRANDS
1 + PG,W (S0 − 2), 1 + (1 − PG,W )(S0 − 2).
√ The diameters of the branches are computed using di = T Si , where T is a constant. The result is the required relation between the cross-sections: d20 = d21 + d22 . The branching angles a1 and a2 (see Fig. 4.13b) are calculated considering the entire branching angle AG,W using a1 =
S2 AG,W S0
a2 = AG,W − a1
The lengths of the branches are also computed from the strands, whereby the ratio of the root functions of the strand numbers is used: S1 / S0 , L1 = R1 L0 , R1 = R2 = S2 / S0 , L2 = R2 L0 . At this point, the parameters provided by the user are added. Holten differentiates between the characteristic length Li and the active length li appearing in the model.
Figure 4.14 Examples of tree models generated using strands (Courtesy of M. Holton)
While the characteristic lengths of the children are computed from the lengths of the parents – thus representing here a hierarchically defined characteristic of the model – the active lengths are independent of the other active lengths. However, the characteristic lengths of the respective fathers do apply. For both lengths, maximum values and minimal values have to be entered by the user. The results are shown in Fig. 4.14. The pine trees were generated each with 2500 strands. Here for the branching ratio and angles the following values are assigned: P0,all = 0.985, Pi,all = 0.6,
A0,all = 115◦ , Ai,all = 35◦
i = 1, 2, 3...
57
Chapter 4 P ROCEDURAL M ODELING
All other parameters can be found in [89]. Holten also states that for the modeling of the pine tree shape seen in Fig. 4.14b, further boundary conditions were used, although he did not define those.
4.11
Approximate Modeling
While these approaches, with the exception of the particle-based procedure of Reeves and Blau, endeavor to model trees as realistically as possible, it is the affirmed goal of Weber and Penn [231] to only find approximate, though realistic-looking solutions for tree modeling. Weber and Penn’s procedure requires a set of approximately 50 parameters, all of which are described in their work. Fundamental parameters are, for instance, the overall appearance of the tree (as an enclosing geometry), the size of the lower part of the tree without branches, the number of branching levels, and the shape of the foot of the trunk.
Figure 4.15 Example geometries by Weber and Penn
For each of the maximal three branching levels, additional parameters are indicated, using an average value with an respective range of variation: vertical branching angle to the father branch, deviation angle, length relative to the father, number of branches, and phototropism (termed as a curve parameter). Although the used model hardly shows any new aspects for the modeling of trees, the visual results are astonishing. Furthermore, methods are presented for the interaction of the models with wind and a level-of-detail representation that is further described in Sect. 10.3.
4.12
58
Growth in Voxels
The last procedural method discussed in this chapter generates climbing plants, which are actually in an entirely different category. Ned Greene [77] deals with the question of how the interaction of such plants with the environment and the incidence of light can efficiently be rendered, and at the same time how these plants can be rendered to grow realistically along walls.
Greene divides the scene into voxels (square volume elements, see [48, 107]) and denotes those voxels in which the climbing plant can grow. A parameterizable probabilistic algorithm allows the plants to grow, starting at a manually specified seed point.
Section 4.13 M ODELING OF P HYLLOTAXIS
Figure 4.16 Voxel model for plants: (a) overgrown house; (b) detail view of an overgrowth (Courtesy of N. Greene and NYIT Comp. Graphics Lab)
(a)
(b)
Using a search strategy, internodes are placed into the possible voxels, whereby the algorithm reacts to the directly entering sunlight and the diffused lighting. The determination of the direct light incidence takes place by computing the incident sun light for each voxel. The computed value indicates for how much time the voxel was illuminated by the sun. To compute the diffuse light, for each voxel it is defined how much can be seen of the sky in each case. Both values are clamped on the interval [0,1].
← lighting
Although Greene speaks of a rule system for the growth computation, he does not supply a formalized description, but offers only a listing of the parameters to control the probabilistic algorithm. Included are the lengths of the internodes, the numbers of internodes between branches, the branching angle, the strength of the phototropism, the growth strength in relation to the light (weighted sum of direct and diffused sunlight), and the number of leaves per branching. The geometry of the plants is produced in polygonal form; all important parameters are, however, assigned for each voxel, which reduces the computational effort. In Fig. 4.16 examples are given. Rule-based climbing plants are also found in [165].
4.13
Modeling of Phyllotaxis
In Sect. 3.4 we already mentioned the remarkable effect that the mathematical method using the Golden Angle describes the arrangement of the seeds in many flowers very well, but that at the same time there is no indication of the biological emergence of these patterns. Actually, for the correct positioning of the seeds in correlation with the Golden Angle, an angle precision would be necessary that could never be reached by means of biological mechanisms.
59
Chapter 4 P ROCEDURAL M ODELING
Tests in computational biology indicate that phyllotactic patterns are the result of local optimization processes, which arrange during the growth successively developed sperm cells in an appropriate way. Growth takes place in the meristem, the conical point at the shoot, which contains fast-dividing cells. The produced cells are shifted by the linear growth of the branch to the outer border and there arrange themselves (see Fig. 4.17). The problem of the Golden Section is transferred here, in contrast to the flat disk, to a cylinder requiring new solutions. Thus, besides the divergence angle of the sequentially following objects, also the heights of the objects on the cylinder surface must be computed. Prusinkiewicz and Lindenmayer [166] describe in detail different approaches for such a simulation.
Figure 4.17 (a) Cell growth in a shoot; (b) The Adler approach; (c) Fowler et al. approach; (d) Ridley method
(a)
(b)
(c)
(d)
Adler [2] uses a simulation model in which a constant vertical speed of the cells is accepted until these arrive at the border or collide with the other cells. Local repulsion forces between the cells are active, so that these can move now only horizontal, i.e., by modification of the divergence angle (see Fig. 4.17b). Ridley [177, 178] examines the packing procedures with the Golden Section and obtains a good packing, as long as a divergence angle of φ is kept and the vertical offset (misalignment) of the objects is computed from their surface A. The surface is transformed into a ring around the branch with radius R, and so determines the modification of the height for the next object, while ring after ring is placed around the branch for each new object A = 2π R ds
collision-based methods →
60
⇒
ds =
A . 2πR
(4.1)
Although this also does not represent an explanatory model, it is, however, a simple and effective method for computer-assisted modeling of the phyllotaxis along cylinders. Fowler et al. [67] describe a similar method that, however, is collision-based. In this process cells are produced with a divergence angle of φ and are only vertically mobile. They move so to the border, until they collide with other cells (see Fig. 4.17c). Due to the given divergence angle we are actually dealing here with a mixture consisting of an explanatory and a description model. Unfortunately the authors do not specify whether a variation of the angle, in combination with a horizontal shifting, allows for similar models to be generated. Meinhardt [137] explains a number of biological patterns with the help of locally distributed promoting and restraining substances (reaction-diffusion model). For the production of an array according to the Golden Section, he designed a system with two spatial antagonists and one inhibitor. The system
produces the desired array pattern along cylindrical geometries; however, it is susceptible to disturbances. Bernasconi [15] obtains sturdier examples with an inhibitor in the space domain and an additional one in the time domain.
4.14
Section 4.14 R EMAINING Q UESTIONS
Remaining Questions
The number and variety of algorithmic methods that can be applied to model plants and in particular trees convincingly faithfully, is indeed surprising. It may be due to the relatively nonspecific structure of the botanical models that several good approximation procedures could be found. At the same time, the factual findings address the question of whether there exists – below the level of the procedures used so far – a parameter or a rule set for botanical objects. This basic set would then have been projected more or less intuitively onto the different parameters of the individual procedures used so far. Moreover, the possibility exists that in one or more procedures, for instance those of de Reffye and Holton, different aspects are applied with regards to the approximation of natural growth procedures, and that, although each method already yields satisfactory models, a combination could result in an even more complete model. Such a combinatory method could mean a reduction of the multiple parameters, which still have to be edited manually in order to obtain a visually attractive model. Furthermore, the parameter area could be limited to such an extent that, for example, only statistically meaningful trees would be producible or that a realistic overall design would automatically result from the parameters. None of these possibilities can be clarified here, since botany is also still far away from perfecting such simple descriptions. The rule-based methods of the next chapter work with similarly complex parameter sets, but by their nature they are substantially more general, and, at the same time, they are able to produce very diverse structures. From a more pragmatic view, still another solution appears promising: If the arrangement of a parameter set and its editing are so efficiently solved by a system that the user can change parameters fast and comfortably, then the user is, despite a perhaps not yet optimal choice of the parameters, able to generate a seemingly correct model efficiently. The methods presented in Chap. 6 suggest this possibility.
61
5
Rule-Based Modeling Single Plants Are “Emerging”
Aristid Lindenmayer’s approach to describing morphological forms of plants using so-called string rewriting systems [117, 118, 119] opened a broad scientific field in botany as well as in computer graphics. Text or string rewriting systems are subsets of rule-based systems, which have been analyzed for quite a while as solutions to problems in computer science. In a rule-based system, contrary to a procedural method, a formal rule basis is used to transform an initial state into a final state by applying a number of changes. Often, this provides an extremely compact description for complex final conditions. However, the process of generating geometrical data from a rule set is an elaborate one. Only recently, due to improved computer efficiency, the vast amount of data needed for larger objects can be managed more or less interactively. In a string rewriting system, rules are used to operate on a string consisting of letters of a certain alphabet. The rules hereby generally increase the length of the string. To produce plant geometry, the characters of the string are graphically interpreted using a so-called turtle metaphor. Many aspects of rule-based modeling, in particular the use of the Lindenmayer systems for the production of plant geometry, are examined more thoroughly in Prusinkiewicz and Lindenmayer’s book “The Algorithmic Beauty of Plants”[166], a classic in computer graphics. Along with string rewriting, there are also other representational forms for rulebased systems. Thus, after introducing the Lindenmayer systems we will discuss iterated function systems, whose “rule-systems” are sets of affine transformations that are applied to a given point set. The result, in this case, is a set of points that, provided there is an appropriate parameterization, is an image of a natural object, and thus not its geometry. Graphs with appropriate processing methods can also describe rule systems. The so-called object instancing paradigm, for example, permits the creation of a subset of the Lindenmayer systems as well as the synthesis of a subset of iterated function systems over graphs. The object instancing is an important preliminary stage for the rule-based object production that will be described in the next chapter. Finally, we will introduce another system that constructs a so63
Chapter 5 RULE -BASED M ODELING
called CSG graph1 using Lindenmayer systems; the graph is then used to create geometry. This method extends the idea of the graph-based representation of geometry.
5.1 von Koch curve →
Rewriting Systems
The general mechanism of a rewriting system can best be illustrated with the so-called snowflake curve or von Koch curve. This curve is actually the classic example of a rewriting system, and, therefore, it is found in many places in the computer science literature. Rewriting takes place graphically: each edge of a given geometry is replaced by a sequence of edges. The rewriting method is implemented using a so-called generator (see Fig. 5.1a). The successive application of generators on the edges of the initial object, the initiator, results in a complex figure, which resembles here the outline of a snowflake.
Figure 5.1 Graphical production of the von Koch curve: (a) generator; (b) initiator; (c) illustrations after 1, 2, 3 and 7 rewritings
(a)
(b)
(c)
As already mentioned, graphical rewriting is just one option for the definition of a rewriting system. There are a number of different methods used for various purposes: Graphs Here edges and nodes of a graph are replaced by subgraphs (see [27]). The original graph is in this way enlarged step by step. The underlying mechanism uses grammars that specify the rewriting rules. In Sect. 5.13 a similar method is outlined that works, however, with textual rules. Cell Grids Values or value combinations in a cell are replaced with other values. An example is “The Game of Life” (see [70, 71]), which produces complex spatial patterns using simple rules (see also Sect. 4.1). Similar mechanisms are used for the modeling of plant populations and other processes [116]. Text In the already mentioned L-systems, characters in a text are replaced. The mechanism was introduced by Thue (see [185]). Chomsky [26], a linguist, compiled a concept for the description of languages using so-called formal grammars with alphabets, axioms and productions, which incidentally is also the basis for the Lindenmayer systems. 64
1 CSG
stands for constructive solid geometry.
5.2
Lindenmayer Systems
Section 5.2 L INDENMAYER S YSTEMS
Lindenmayer systems or L-systems, are one kind of string rewriting mechanism, consisting of a set of rules and symbols that model growth processes. An initial string or symbol, the axiom, is defined; one or more rules are added that replace the character string in a given alphabet. In an L-system, rules are executed in parallel: per step all applicable rules are also applied to the text. Lindenmayer defined the system this way to model the parallel development of naturally occurring phenomena in biological structures, such as in cells or shoots. A classic example in the area of cell division further elucidates the method: the development of filaments of the bacteria Anabaena Catenula and of various algae can be described using two cytological conditions a and b that represent size and readiness for division (see also [166]). After the first cell division, the subcells must grow first before they divide again. Additionally, each cell owns a polarity that describes the new position resulting from the division of the new (daughter) cells. The polarity is given by r and l and alternates in a fixed pattern during cell division. The growth and polarity of the cells can be derived using the following rule set: {ar ::= al br , al ::= bl ar , br ::= ar , bl ::= al }. From the axiom ar results, by application of the rules, ar → al br → bl ar ar → al al br al br → bl ar bl ar ar bl ar ar → . . . , and hence the typical pattern of the filaments. The parallelism of the replacement is the essential difference between the L-systems and, for example, the procedural methods. With the L-system, a variety of rule mechanisms such as the exchange of signals can be modeled, which is otherwise difficult to achieve. An L-system is defined using a so-called formal grammar G = (V, ω, P ), where V represents the alphabet, ω a nonterminal string (axiom), and P is a finite set of productions (replacement rules). The set V ∗ represents the set of strings, the set V + is the set of all nonempty strings. The production p ∈ P is written by φ ::= χ, whereby φ, χ ∈ V + . In a context-free L-system (0Lsystem), φ has the length one; the rule is thus also applicable wherever the character a = φ appears. Contrary to context-free L-systems in which the production rules take account only of an individual symbol, in a context sensitive L-system, a rule depends also on its neighbors, e.g., on the characters in the surrounding text. For example, φ = τ aυ, where τ, υ ∈ V + and a ∈ V . If τ has the length k and υ the length l, we speak of a (k,l)-system. Often 2L-systems are used with k = l = 1 and 1L-systems with k = 1, l = 0 or k = 0, l = 1; here the context is taken into account only on one side of a. In a deterministic L-system there exists for one φ at the most one rule with φ on the left side, e.g., for each symbol in the alphabet there is exactly one production. Thus in each case one rule can be applied. For many applications
← parallel replacement
65
Chapter 5 RULE -BASED M ODELING
deterministic context-free L-systems (D0L systems) are sufficient. If random processes are needed, one uses stochastic L-systems, described by the grammar G = (V, ω, P, π), which, in addition to the deterministic L-system, assigns to the production set P a set of probabilities π : p → (0, 1]. If a φ is found on the left side of one or several rules, the rule is selected from the set of the possible rules and used according to its probability.
Figure 5.2 Power of 0L-systems and (k,l)-systems in comparison to Chomsky languages
The opposite to the parallel rule mechanisms and the otherwise customary sequential methods of Chomsky grammars is expressed in the different modeling powers of L-systems in contrast to the Chomsky languages. Modeling power represents in this context the set of denotable strings. Figure 5.2 shows the power of context-free 0L-systems and context-sensitive L-systems ((k,l)systems) in comparison to Chomsky classes of languages. For another example of L-systems, the alphabet V = {f, F, +, −}, the axiom w = F − −F − −F , and a rule set with only one rule P = {F ::= F + F − −F + F } is provided. In this case, the rule is applied as often as F exists in the string. The derivation results in the following strings: 1. Step: F − −F − −F 2. Step: F +F −−F +F −−F +F −−F +F −−F +F −−F +F 3. Step: F + F − −F + F + F + F − −F + F − −F + F − −F + F + F + F − −F + F − −F + F − −F + F + F + F − −F + F − −F + F − −F + F + F +F − −F + F − −F + F − −F + F + F + F − −F + F
66
The developed pattern can now be interpreted in different ways. In the above example of the filaments, Lindenmayer uses the states of the cells in the fiber to directly produce graphic data. Alternatively a second step can be switched behind the string replacement that interprets the text, so that the geometry is generated. Among the different methods that execute this form of graphical interpretation, the turtle metaphor [1] has gained general acceptance. It was invented by Prusinkiewicz [162]. Here a virtual turtle is moved over the drawing plane or
through a given three-dimensional space. The state of the turtle is the vector (x, y, α) that represents the position and angle of the direction in which the turtle is moving. During the movement the turtle must in each case again be aligned actively, otherwise it keeps moving in the initially chosen direction. Genuine turtles are said to move similarly: if an initial position and direction are given, they usually move in a straight line, until a change of direction becomes necessary. The movement of the computer turtle is affected completely analogously using the following four commands: F
Move turtle about d into current direction, draw a line: (x, y, α) → (x + d cos α, y + d sin α, α)
f
Move turtle about d into current direction, without drawing a line: (x, y, α) → (x + d cos α, y + d sin α, α)
+
Increase current angle by angle δ: (x, y, α) → (x, y, α + δ)
–
Decrease current angle by angle δ: (x, y, α) → (x, y, α − δ)
Section 5.3 B RANCHING S TRUCTURES
For a complete specification, the length d and the angle δ still have to be defined. For d = 1 and δ = 60◦ the axiom of the L-system already described above transforms into an equilateral triangle. The application of the production rule transforms each line into a path that conforms with the generator in the von Koch curve. Accordingly, the strings in the second step produce the first “snowflake” in Fig. 5.1c and the following steps each refine the image of the curve.
5.3
Branching Structures
For the modeling of branching structures, L-systems have to be extended. The processing of the string sequence is now accomplished by means of a so-called pushdown automaton. This method contains the possibility to store, and at another time again to recall the state of the turtle in a stack. This occurs in such a way that the last stored state is always the first to be read. In order to implement a pushdown automaton during evaluation of a string produced by an L-system, the current state of the system (x, y, α) must be stored by means of the appropriate stack data structure, and it must also be loadable again. In the text, these operations are represented by two new characters: [
store current state (x, y, α) on the stack
]
load state (x, y, α) from stack
The use of a pushdown automaton for branching systems has the advantage that the state of the turtle can be stored before a branching, and after the associated subtree has been drawn it can easily be reloaded again.
← stack (data structure) ← pushdown automaton
67
Chapter 5 RULE -BASED M ODELING
Figure 5.3 Branching structures using Lindenmayer systems: (a)–(b) edge rewriting; (c)–(d) node rewriting
Additionally, for modeling branching structures the L-systems operate on an extension of the so-far used alphabet V = {F, f, +, −, α, [, ]} by adding more characters that are used for the expansion but, however, are ignored in the graphical interpretation; n is again the number of replacement steps.
(a) Part (a) (b) (c) (d)
(b) n 5 4 7 5
δ 25.7◦ 22.5◦ 25.7◦ 22.5◦
ω F F X X
(c)
(d)
P F ::= F [+F ]F [−F ]F F ::= F F − [−F + F + F ] + [+F − F − F ] X ::= F [+X][−X]F X, F ::= F F X ::= F [[X] − X]F [+F X] − X, F ::= F F
The systems shown in Fig. 5.3 are generated by two different production methods. The systems in parts (a) and (b) result from expansion of the edges (commands F ). This is recognized by the fact that in the corresponding productions an F is replaced by a branching. The systems in parts (c) and (d) use the extra letter X that does not have a graphic meaning; it can be interpreted as a node from which a branching evolves. When analyzing the systems, a problem connected with L-systems becomes evident: their relatively abstract specification. The differences in the forms of the modeled shrubs can not be recognized in the rule systems. Therefore, not only is it difficult to model a specific, given form with an L-system, but it also requires a lot of experience. A further complication is the local modeling methodology, which L-systems indeed also share with some procedural methods. The total form of a plant is determined here using local angles and distances. Small alterations of these parameters can dramatically modify the total shape of a plant.
5.4
68
Three-Dimensional Commands
The commands operated so far on a two-dimensional plane. However, they can easily be extended to a three-dimensional space. Aside from the third coordi-
nate, the only difference is the more complex definition of angles and rotation axes for the movement of the turtle. During the course of the movement, the coordinate system is so to speak positioned at the head of the turtle, i.e., the turning just like the shifting affects the turtle locally. Here the coordinate system can be turned relative to three axes. If the coordinate system is positioned to the head of the turtle so that in fact it always moves in the z direction, then the rotations represented in Fig. 5.4 can be executed.
Section 5.4 T HREE -D IMENSIONAL C OMMANDS
Figure 5.4 Local coordinate system for controlling the turtle in three dimensions
Accordingly the divergence angle δ is used either corresponding to the x-, y- or to the z-axis. The rotations about theses axes are defined by rotation matrices Rx , Ry , and Rz : ⎛
1 Rx (δ) = ⎝ 0 0
0 cos δ sin δ
⎞ 0 − sin δ ⎠ cos δ
⎛
cos δ Ry (δ) = ⎝ 0 sin δ
⎞ 0 − sin δ ⎠ 1 0 0 cos δ
⎛
cos δ Rz (δ) = ⎝ − sin δ 0
sin δ cos δ 0
⎞ 0 0 ⎠ 1
The machine is now described by the state vector (x, y, z, M), where M is a rotation matrix. In aviation jargon the z-axis is called the course axis, the yaxis, the vertical axis, and the x-axis, the lateral axis. The rotations are called rolling, heading, and pitching. The appropriate commands are now:
F
Move turtle at d in current direction, draw line: 1 , y + (Md) 2 , z + (Md) 3 , M) (x, y, z, M) → (x + (Md)
f
Move turtle at d in current direction, without drawing line: 2 , z + (Md) 3 , M) 1 , y + (Md) (x, y, z, M) → (x + (Md)
+
Increase the angle in terms of vertical axis at δ: (x, y, z, M) → (x, y, z, M · Ry (δ))
–
Decrease the angle in terms of vertical axis at δ: (x, y, z, M) → (x, y, z, M · Ry (−δ)) 69
Chapter 5 RULE -BASED M ODELING
&
Increase the angle in terms of lateral axis at δ: (x, y, z, M) → (x, y, z, M · Rx (δ))
∧
Decrease the angle in terms of lateral axis at δ: (x, y, z, M) → (x, y, z, M · Rx (−δ))
\
Inrease the angle in terms of roll axis at δ: (x, y, z, M) → (x, y, z, M · Rz (δ))
/
Decrease the angle in terms of roll axis at δ: (x, y, z, M) → (x, y, z, M · Rz (−δ))
|
Turn around, here use matrix Ry (180◦ ): (x, y, z, M) → (x, y, z, M · Ry (180◦ ))
A small shrub shall serve as an example for the modeling with three-dimensional commands. The L-system consists of the above-mentioned alphabet and four productions (n = 7, δ = 22.5◦ , w = A): A ::= [&F L!A]///// [&F L!A]/////// [&F L!A] F ::= S/////F S ::= F L L ::= [ ∧ ∧ {−f + f + f − | − f + f + f }] The curved brackets serve here for marking a path in the form of a point sequence. These points are triangulated during the geometry production to triangles; the triangles then defines the surface. The symbols ! and serve for the reduction of the branch diameter and for the control of the colors. The result is displayed in Fig. 5.5. It shows a small three-dimensional shrub with a surface consisting of several hundred polygons.
Figure 5.5 Three-dimensional shrub modeled using L-systems (Courtesy of P. Prusinkiewicz)
5.5
70
Stochastic and Parameterized Systems
The L-systems introduced so far are deterministic, and thus always produce the same branching structures. In order to replicate the variability of nature, probabilistic influences must be brought into the produced structures. This can be achieved, for example, by means of variation of parameters such as the
deviation angle δ. In this way, however, only geometrical characteristics of the models are modified. In order to modify the topological characteristics, the application of rules must occur at random. In this procedure, P defines several rules with the same left side φ. Additionally, as already shown at the beginning, per rule an application probability is given. Using a random generator, the text of the rule is applied, according to its probability, during expansion. Additionally, in a parametric L-system all parameters can be modified dynamically during expansion. The commands are defined for this step in parameterized form, whereby per instruction one or more parameters are used. The parameters are summarized in the parameter vector w, their meaning depends on the application. On the right side of each rule, the parameters in the numeric expressions can be used for the computation of new parameter values. The instructions in parameterized form, also called modules, have the following forms: F(w) Move turtle at d(w) in current direction, draw line: (x, y, z, M) → (x + (Md(w)) 1 , y + (Md(w))2 , z + (Md(w))3 , M) f(w)
Move turtle at d(w) in current direction, without drawing line: (x, y, z, M) → (x + (Md(w)) 1 , y + (Md(w))2 , z + (Md(w))3 , M)
&(w)
Increase angle in terms of lateral axis at w: (x, y, z, M) → (x, y, z, M · Rx (w))
+(w)
Increase angle in terms of the vertical axis at w: (x, y, z, M) → (x, y, z, M · Ry (w))
Section 5.5 S TOCHASTIC AND PARAMETERIZED S YSTEMS
← module
\(w)
Increase angle in terms of roll axis (longitude) at w: (x, y, z, M) → (x, y, z, M · Rz (w)) The reduction of the angles is made possible by negative values for w, which make some commands redundant. A simple example produces an abstract, binary tree: ◦ Let √ n = 10, δ = 85 , and R = 1.456, a constant selected to be slightly above 2, and use the axiom w = A(1). Using the production A(s) ::= F (s)[+A(s/R)][−A(s/R)] a tree can be constructed successively. In Fig. 5.6 the result is presented, where the angle δ ensures that the tree is not developed in a right-angled way and the constant R limits the size of the subtrees in such a way that the branches just do not overlap. Parametric L-systems are also Prusinkiewicz and Lindenmayer’s answer in response to the assertion of Honda as well as that of Aono and Kunii (see also Sect. 4.3). Both stated at the beginning of the 1980s that complex trees can not
71
Chapter 5 RULE -BASED M ODELING
Figure 5.6 Binary tree, generated using a parameterized L-system
be produced using L-systems. In Fig. 5.7a–b two trees can be seen that replicate the branching mechanism of Honda using parametric L-systems; in Fig. 5.7c the method of Aono and Kunii is copied; in (d) an additional branching structure is shown.
Figure 5.7 Branching structures, generated using parameterized L-systems (Courtesy of P. Prusinkiewicz)
(a)
(b)
(c)
(d)
We now turn to a further modeling option that is offered through L-systems: the production of context-sensitive structures. This method is needed particularly for the reproduction of spatial and temporal signal processes, and is a powerful aid for the construction of complex systems.
5.6
72
Context-Sensitive Systems
As already mentioned at the beginning of this chapter, in a context-sensitive system the use of a production is made dependent on the local environment of a character. The left side of a production now has the form τ Aυ, where τ, υ ∈ V + and a ∈ V . With this type of system, it becomes problematic if several productions with differently sized contexts can be applied to one character. In order to yield a well-defined approach, additionally it is defined that the production with the largest context is used first in such a situation. Traditionally, in connection with L-systems a context-sensitive rule is indicated in the format τ < A > υ ::= b. In contrast to the Chomsky notation, τ aυ ::= b the context is here explicitly defined. We know what in a production is the active part that is to be replaced. A simple example is a system for the movement of a character (a signal) within a string: Let ω = baaaaaaa and
P = {b < a ::= b, b ::= a}. The result is the following sequence of strings:
Section 5.6 C ONTEXT-S ENSITIVE S YSTEMS
baaaaaaa abaaaaaa aabaaaaa aaabaaaa aaaabaaa ... Here, the character moves through the string from left to right. Such signal characters can control the growth in parts of the plant, such as the successive blooming of blossoms in a large flower stand, or they can influence the withering of subtrees in a larger tree.
(a)
(b)
Part n δ Ignore: ω 0 < 0 > 0 ::= 0 < 0 > 1 ::= 0 < 1 > 0 ::= 0 < 1 > 1 ::= 1 < 0 > 0 ::= 1 < 0 > 1 ::= 1 < 1 > 0 ::= 1 < 1 > 1 ::= ∗ < − > ∗ ::= ∗ < + > ∗ ::=
(a) 30 22.50 +-F F1F1F1 1 1[-F1F1] 1 1 0 1F1 1 0 +
(c)
(b) 24 25.75 +-F F0F1F1 1 0 0 1F1 1 1[+F1F1] 1 0 +
Figure 5.8 Branching structures generated using context-sensitive L-systems by Hogeweg and Hesper [88] (Image courtesy of P. Prusinkiewicz)
(c) 26 22.50 +-F F1F1F1 0 1[-F1F1] 1 1 0 1F1 1 0 +
If branching structures are treated, then the mechanism must ignore the parts included in the parentheses for the determination of the context, because otherwise the structural context of the characters cannot be found. Also, special
73
Chapter 5 RULE -BASED M ODELING
exceptions →
indexing →
characters should be ignored for controlling the geometrical interpretation; this is indicated together with the definition of the system. In Fig. 5.8 several context-sensitive branching structures are shown. The results originate from a work by Hogeweg and Hesper [88] in which systematically a number of relatively simple context-sensitive systems were analyzed. Smith [201] later refined the graphical representation. The illustrations are taken from [166]. When comparing the systems in Fig. 5.8, it is noticeable that the systems (a) and (c) are very similar, although the produced structures have very different appearances. This also explains why the results were obtained only using a systematic search. Nevertheless, it is unquestionable that only with contextsensitive systems processes such as signal distributions can be modeled in plants. However, at least for the definition of branching structures there seem to be alternatives. With exception rules and indexed items that assign an unique identification number at any time to each of the produced partial objects, similar results can be obtained (see Sect. 6.5). However, such an indexing has the disadvantage that in an animation the number of objects in a plant can change and that then also the indices are again newly assigned, at least if the indexing is done automatically. This again would cause the exceptions (inasmuch as they are marked by indices) to affect other parts of the objects, which must be avoided at all cost. To the reader perhaps this appears as an unimportant detail problem; nevertheless, there are a number of consequences for practical work. Therefore, index-free L-systems have here a primary advantage.
5.7
Golden Section →
Modeling of Phyllotaxis
Phyllotaxis is the spatial arrangement of leaves in blooms and was introduced in Sect. 3.4. Also, we previously discussed different procedures for the production of phyllotaxial patterns. In the following, a solution with L-systems is illustrated. We will therefore return to the arrangement of the seeds in a sunflower, which was likewise addressed in Sect. 3.4. With a parametric L-system the typical angle of rotation is modeled according to the Golden Angle of 137.5◦ in combination with the square root increase of the radius (see also [66]). Thereby D is the L-system for the description of a small circle, and w = A(n): √ A(n) ::= +(137.5)[f ( n) ∼ D]A(n + 1). Accordingly, a complete head of a sunflower can be generated, as shown in Fig. 5.9, with the aid of L-systems for the creation of the form of the seeds S, the inflorescence R, and the petals M, N, O, and P :
74
√ A(n) ::= +(137.5)[f ( n)C]A(n + 1) C(n) : n ≤ 440 ::= ∼ S
C(n) : 440 < n ≤ 565 ::= ∼ R C(n) : 565 < n ≤ 580 ::= ∼ M C(n) : 580 < n ≤ 595 ::= ∼ N C(n) : 595 < n ≤ 610 ::= ∼ O C(n) : 610 < n ::= ∼ P
Section 5.8 A NIMATION OF L-S YSTEMS
The system differentiates the six forms to be produced according to “the control variable” n (in this case also an index). If the control variable is smaller than 440, seeds are produced, then inflorescences, and finally different forms of petals.
Figure 5.9 Realistic plant models, generated using parameterized L-Systems (Courtesy of D. Fowler, P. Prusinkiewicz)
Contrary to the sample models in Sect. 4.13, the L-system again is a descriptive model, which does not relate to natural processes, but only approximates the outer appearance of the corresponding object.
5.8
Animation of L-Systems
In [166] and later in [164] Prusinkiewicz et al. introduced extensions for Lsystems which allow for the animation of growth processes in static models. The most important extensions are the so-called timed L-systems, in which a number is assigned to each character and to each module. In the left side of the production the number represent the terminal age of a module, in the right side they represent the initial age. Within the animation, the global time will be counted up, and for the terminal age of the modules the appropriate productions are applied. The life spans of the modules start with their local initial ages and, if a terminal age is reached, the rewriting of that module occurs and new modules are produced. While timed L-systems permit the animation of growth procedures, they do not permit communication of co-existing modules, which is nevertheless an important condition for the development of natural branching structures, as was already shown in Sect. 4.3. In [164] differential L-systems (DL-systems) are introduced that make this communication possible. Here L-system-like productions describe the topological modifications of the models, and differential equations describe the changes during the advance of time. According to their
75
Chapter 5 RULE -BASED M ODELING
Figure 5.10 Growth of Hieracium umbellatum (Courtesy of M. Hammel, P. Prusinkiewicz)
nature, DL-systems are context-sensitive 2L-systems, i.e., the left side of the productions has the form φ = τ aυ, where τ, υ ∈ V + , a ∈ V . Since these are parametric 2L-systems, a parameter set is assigned to each module w: φ = τ (wτ )a(w)υ(wυ ). differential L-systems →
(5.1)
The continuous behavior a(w) is described by a differential equation that describes the rate of change dw/dt of the parameter set w as a function of the current values of w as well as those of their neighbors (wτ , wυ ): dw = fa (wτ , w, wυ ). dt
(5.2)
Equation (5.2) has a definition range Da , which is determined by the module a. Da is limited by a boundary Ca , that consists of m non-intersecting curves Cak , k = 1, 2, ..., m. For each of these boundaries a production exists in P with τ (wτ )a(w)υ(wυ ) ::= χk (wk ), (5.3) which is applied if the path (the change of values) of the w over time reaches the boundary Cak . In this case, a function hak is used, which determines the new values wk : (5.4) wk = lim hak (wτ (t).w(t), wυ (t)) t→tc
The new parameter vector wk must belong to the domain Dχk to continue the process of this domain. Altogether each module a is described by the vector {Da , Ca , fa , Pa }, which lets us suspect that we are dealing with a very complex system. Figure 5.10 shows, however, that the mechanism allows for the animation of complex botanical processes.
5.9
76
Interactions of Plants and the Environment
The parametric L-systems introduced so far are able, due to their contextsensitivity, to produce situation-dependent topologies and geometry; however, a real interaction of plants and their environment is at this time not really
Section 5.9 I NTERACTIONS OF P LANTS AND THE E NVIRONMENT
Figure 5.11 Pruning of plants to a box shape and to an implicit surface (Courtesy of R. Mech, M. James, P. Prusinkiewicz)
(a)
(b)
possible. Two works were presented addressing this topic: [165] introduced environment-sensitive L-systems, and [144] proposed open L-systems. In an environment-sensitive L-system, local aspects of the environment can affect the model. To model the effects, inquiry symbols of the form ?X(x, y, z) U ,L are incorporated into the language. At the time of interwith X = P, H, pretation of the string, these symbols determine the position or orientation. In the first case (X = P ) the values x, y, z represent the location, in the second U , L) the x, y, z represent the coordinates of the direction vector case (X = H, in the coordinate system. These values are passed on to user-defined functions, where their resulting values in turn affect the continuation of the string interpretation. Using this mechanism, pruning can be implemented (see Fig. 5.11a). Another option is to limit the growth of the plant to the surface of other objects. The object is here defined as an implicit surface (see Fig. 5.11b). In an open L-system, communication is no longer one-sided, but rather bidirectional. Those parameters connected with a communication symbol can be set either by the environment and passed on to the model or they can be set by the model and are passed on to the environment. Communication was limited in the environment-sensitive L-systems to an inquiry on position and orientation. Using open L-systems, communication modules of the form ?E(x1 , ..., xm ) for sending and receiving parameters are applied. Here, the produced text is just like in normal L-systems, evaluated from left to right so as to designate the state of the turtle for each symbol. In this process, however, no character operations are implemented. If a communication symbol is reached, the geometry-generating process sends a message to the environment modeling process with the following parameters: address of the communication module in the string values of x1 , ..., xm state of the turtle (position, orientation) type and kind of module on the right side of the communication module The messages are read by the environment modeling process and worked on after conclusion of the interpretation of the string. The new values for the vari-
77
Chapter 5 RULE -BASED M ODELING
(b)
Figure 5.12 Interaction of plants with the environment: (a) branching structure with interaction; (b) two merging trees; (c) interacting group of trees (Courtesy of R. Mˇech, P. Prusinkiewicz)
(a)
(c)
ables x1 , ..., xm are then sent back to the communication modules. Here the addresses of the communication modules are used. In this way, theoretically the entire information in the plant can be passed on to the environment; usually, however, only a part of the information is needed. In Fig. 5.12a this mechanism is used for modeling a branching structure. The smaller branches interact with one another, in order to not exceed a defined density. This follows the branching model of Honda from Sect. 4.3 and is influenced by the light. If two trees are planted next to each other, their crowns form one system (Fig. 5.12b). A tree group can likewise be modeled as an interacting system (Fig. 5.12c). The appropriate systems are relatively large, and are described as in [144].
5.10
Use of Position Information
Similarly to how environmental information is incorporated into the production of the branching structures, geometrical aspects of modeling can be integrated as well [167]. Instead of a communication module, user-defined functions are inserted. To obtain natural effects, a small number of B-spline curves is sufficient.
78
Figure 5.13 shows the successive construction of a compound leaf. The user defines the leaves by first entering their length, then their size, the branching angle, the style form, and, finally, by adding a random offset angle (twisting). With this method, the disadvantage of the predominantly local modeling methodology can be partially eliminated using L-systems, since the position infor-
Section 5.11 I TERATED F UNCTION S YSTEMS
Figure 5.13 Editing using B-spline curves (Courtesy of P. Prusinkiewicz)
mation of the objects permits a function inquiry, and thus allows the user to integrate global aspects into the production. However, the formulation of the productions seems quite laborious. In addition to modeling with Lindenmayer systems, Prusinkiewicz et al., extend the formalism using sequentially processed Chomsky grammars, which are applied in the simulation of structurally independent plant parts. Hereby, the L-systems regulate the exchange of materials and time-dependent processes. In conjunction with the introduction of an interactive editor for adjustment of the functions, Prusinkiewicz et al. get closer to the efficient modeling of plants. This applies also for the Xfrog system described in the next chapter. However, beforehand we will introduce a few additional approaches that, although they work with rule-based systems, use a different modeling methodology.
5.11
Iterated Function Systems
The method proposed by Barnsley and Demko [10, 35] for modeling natural objects does not work with geometric data, but rather with two- or higherdimensional point sets. The structures modeled with this method therefore represent only images of the objects, and no surfaces, as was the case in the preceding approaches. To define an Iterated Function System (IFS) n contractive, affine transformations Mj ∈ R2 → R2 , M = {M1 , M2 , ..., Mn } are required. Each of the affine transformations has six parameters a–f, and is defined by: a b x e Mj (x, y) = + . (5.5) c d y f Here point (x, y) is moved to another position. The sequential application of the transformations generates a trace of the point. While the trace is not particularly interesting when applying the transformation only once, amazingly enough complex patterns evolve during the sequential application of several transformations Mj . The attractor of the IFS is the smallest nonterminal subset A ∈ IR2 , so that Mj (p) ∈ A for all p ∈ A and 1 ≤ j ≤ n. The set A always exists and
79
Chapter 5 RULE -BASED M ODELING
is unambiguous (see [168]). In order to approximate A, one takes any point ps ∈ A and combines the point sets that emerge if the transformations Mj are applied to the point. If ps is not in A, then due to the contraction characteristics of Mj it is traced back to the attractor. A can be generated in different ways. Deterministic procedures usually develop a tree, whose nodes consist of points A, and whose edges are applications of Mj . If for each point each function Mj is applied, a binary tree develops for j = 2; for larger values an accordingly broader tree is generated. The tree represents the set of all points producible from one point, and grows exponentially with the number of function applications. Should several initial points exist, then, of course, there will be a tree for each of them. In order to produce an interesting image as fast as possible out of this vast set of potential function calls, different search strategies are in place. One of them is the depth-first search, in which, outgoing from the initial point, a function is applied, and following the result, is immediately succeeded by the next. Hence, it is possible to move upward in the tree very quickly. Alternatively, using breadth-first search, for a certain point all applicable transformations are applied. In this way, step by step the complete tree is constructed.
Figure 5.14 Production of a Sierpinski triangle using deterministic breadth-first search (depth 0, 1, 2, 3, 6, 9)
An example of this algorithm is the construction of a Sierpinski triangle. Here for the production of A the breadth-first search is applied, whereby simultaneously an entire point set is processed. Three functions are needed, which in each case have a contraction factor of 0.5 with differing individual displacements of the input points: j 1 2 3
Lipschitz constant →
a 0.5 0.5 0.5
b 0 0 0
c 0 0 0
d 0.5 0.5 0.5
f 0 50 50
Figure 5.14 illustrates the result of the application of the functions to a triangular point set. The sides of the triangle are divided by two in each case, and the reduced triangle is moved in three different places. To work with balanced trees, defined completely on each level, is a disadvantage if the illustrations Mj contain different contraction rates sj (the so-called Lipschitz constants). These are defined by
Mj (p1 ) − Mj (p2 ) ≤ sj p1 − p2
80
e 0 0 50
∀ p1 , p2 ∈ IR2 .
(5.6)
For such unequal Lipschitz constants, balanced scanning along the tree leads to an unequal point distribution in A. With an appropriate truncation of subtrees
this can be avoided. Figure 5.15a illustrates the effect of the uneven distribution and the associated visually small convergence. A tree depth of nine and 262,144 points were used in order to assess the following IFS: j 1 2 3 4
a 0 0.85 0.20 -0.15
b 0 0.04 -0.26 0.28
c 0 -0.04 0.23 0.26
d 0.16 0.85 0.22 0.24
e 0 0 0 0
f 0 1.60 1.60 0.44
The function M1 has a strong contraction rate, M3 and M4 are medium strong contractive, while M2 hardly contracts. If subtrees are appropriately truncated, then an even accumulation of points results, as shown in Fig. 5.15b for the same number of points.
(a)
(b)
Section 5.11 I TERATED F UNCTION S YSTEMS
Figure 5.15 Generating a fern leaf with 262,144 points each: (a) deterministic method using a balanced tree; (b) deterministic method with unbalanced tree; (c) stochastic method
(c)
Another method introduced by Barnsley [9] consists of a stochastic depthfirst search of the tree, whereby a function is selected randomly each time and is then applied. In order to improve the convergence, a similar procedure to that used with nonbalanced trees is applied, meaning that per funcn tion Mj a probability Pj , j=1 Pj = 1, is defined which indicates how often Mj should be applied. If Pj is set according to the Lipschitz constant of the corresponding function, we obtain convergence characteristics as good as those obtained with the truncation method. For the above example, we apply P1 = 0.01, P2 = 0.85, P3 = 0.07, P4 = 0.07. In Fig. 5.15c the result is shown with again 262,144 points.
81
Chapter 5 RULE -BASED M ODELING
In his book “Fractals Everywhere” [9] Barnsley extends the method and applies it to simulate images of natural scenes. In such an image many attractors are combined, and also here hierarchical IFSs are used that are not distributing points, but rather whole subimages. The method has the disadvantage that finding appropriate subimages can be a very cumbersome task. Often, only manual intervention yields satisfactory results. If such functions are found, then the attainable compression factors are, however, very high. As an extension of the procedure, if Iterated Function Systems are applied, it is even possible to convert arbitrary input pictures into arbitrary final results. As an additional extension of this approach, RIFSs (recurrent IFSs) are introduced, in which no arbitrary transformation may follow another, but rather pairs of sequential transformations are specified. This usually is implemented using a graph, whose nodes indicate the transformations, and whose edges denote the possible successor. The attractors of the RIFSs are therefore subsets of the attractors of common IFSs. Prusinkiewicz and Lindenmayer in [166] describe a procedure for the transformation of L-systems into RIFSs. This is successful if the L-systems describe plants with a strict self-similarity. The reverse, to generate from RIFSs a parametric L-system, is rather simple. Nevertheless, the affine transformations in the parameters must be coded accordingly.
5.12
Object Instancing
To model branching structures, often tree-like data structures are used. We saw this already in some procedural methods in Chap. 4. In the case of L-systems, the tree is represented as text in linear form. Iterated function systems can, as demonstrated above, likewise be represented as trees that encode the transformation rules for points. Figure 5.16 Object instancing of fractal objects: (a) tree structure; (b) resulting approximation of a Sierpinski-triangle; (c) object instancing hierarchy; (d) object instancing hierarchy with cycles
(a)
82
(b)
(c)
(d)
Since these data structures most likely occupy a lot of space, depending upon the complexity of the objects, it is meaningful to introduce compression techniques. One option is to represent the produced geometrical primitives canonically and to place them in a tree using relative positioning data. In this case, subtrees, which produce the same objects in different places, can be represented by just one subtree, whose root nodes may have several fathers. The tree becomes in this case a directed acyclic graph (DAG). The process is called object
instancing, and was used for the first time by Ivan Sutherland in his system “Sketchpad” [216]. A subset of L-systems, as well as the iterated function systems, can efficiently be represented by such graphs [166]. Kay and Kajiya [108] applied this technology for the first time to fractal objects. Here, cycles develop in the directed graphs, and the object can be described in arbitrary detail. Hart and DeFanti [84] describe efficient methods for the modeling and representation of cyclic object instancing hierarchies. Figure 5.16a shows the tree hierarchy for modeling an approximation of the Sierpinski triangle from part (b). The leaves of the tree are the geometric primitives; the internal nodes represent relative transformations and combine the produced geometry. In Fig. 5.16c the graph was converted into a directed acyclic graph that also represents the object. If cycles in the graph are permitted (Fig. 5.16d), then the fractal object can be represented arbitrarily exactly and a Sierpinski triangle is yielded. Hart [83] provides a more detailed description of the graph in Fig. 5.16d: canonical object up { triangle merge: up, left, right scale: 0.5, 0.5 move: 0, 0.5 }
// upper node // draw this, if recursion // stops
canonical object left { triangle merge: up, left, right scale: 0.5, 0.5 move: –0.433, –0.25 }
// left node
canonical object right { triangle merge: up, left, right scale: 0.5, 0.5 move: 0.433, –0.25 }
// right node
object top { merge: up, left, right }
// node in the middle
Likewise in [83] the transformation of a subset of L-systems and of RIFSs into the cyclic graphs of the object instancing paradigm is described. The conversion of the RIFS is executed via the transformation of each function into a
Section 5.12 O BJECT I NSTANCING
83
Chapter 5 RULE -BASED M ODELING
canonical object; the RIFS graph is transferred directly into the cyclic graph of the object hierarchy. The already-mentioned possibility of converting L-systems into RIFSs (see [166]) allows us also to convert them into the object instancing paradigm. Hart sketches furthermore a direct conversion method for strongly recursive branching structures. However, a general transformation method seems not to exist. Instancing is possible within a branching structure as well as in a compilation of plants. Thus in Chap. 8 instancing is applied for the modeling of plant communities. Instead of defining each plant individually in a lawn, a small number of prototypes is stored and copied as needed. This permits a strong reduction of the needed disk space, and at the same time makes the scenes easier to handle. A substantial difference to the method described here is the approximate character of instancing. A number of similar objects are represented visually by only one prototype. “Approximate instancing” can be used for natural objects on many levels, without substantially affecting the visual appearance of the results.
Figure 5.17 Tree model generated using a cyclic CSG-graph (Courtesy of M. Gervautz and C. Traxler)
5.13
84
CSG-Based Modeling
Object instancing is also used in CSG graphs (Constructive Solid Geometry), a common type of representation for objects within the CAD domain. A CSG expression is a set operation with volume objects or with point sets in IR3 . The basic objects (ball, cylinder, cone, etc.,...) are canonically represented, transformed individually, and combined using Boolean operations (∩, ∪, \, etc.,...). Since the Boolean operations are univalent or bivalent (unary or binary), the expression can also be illustrated in the form of a binary tree (CSG tree). Gervautz and Traxler [74] extend this tree description by allowing cyclic CSG graphs, and by permitting arbitrarily refined descriptions of objects. A CSG graph can be regarded as an extension of object instancing, since aside from the union operation other Boolean operations are allowed.
In the approach of Gervautz and Traxler, the CSG graphs are produced by parametric L-systems. Due to the special structure of the graphs, the languages have the following notation (axiom ω: E): E ::= E op E E ::= trans E E ::= (E) E ::= obj
Section 5.13 CSG-BASED M ODELING
// op ∈ {∩, ∪, \} // trans ∈ {rotx(α), roty(α), rotz(α), // move(dx, dy, dz), scale(dx, dy, dz) // uscale(s)} // obj ∈ set of primitive objects
The parameterized description of the Sierpinski triangle or its discrete approximation with a CSG tree of depth six is represented in this notation as (with ω = S(6)): S(c) : c = 0 ::= triangle S(c) : c > 0 ::= move(0.5, 0.5)uscale(0.5)S(c − 1) ∪move(0.5, −0.5)uscale(0.5)S(c − 1) ∪move(−0.5, 0.5)uscale(0.5)S(c−1) For the transformation of the L-system into a cyclic CSG graph, additionally three node types are introduced: A t-node is a parameterized transformation node; an s-node represents an option; a c-node is able to implement a numeric computation. The graph for the above system is represented in Fig. 5.18a. Initialization
Figure 5.18 Cyclic CSG graphs: (a) description of a Sierpinski triangle; (b) description of a simple sympodial branching structure
if (trunc>0)
if (cnt>0)
∪
Initialization
move
if (s>0) F
∪
if (cnt<noleaves)
trunc--
T
∪
∪
∪
move
uscale
if (segments>0)
rotz
c = c-1
uscale
move
∪
rotz
cnt--
cnt--
segments++
move
move
rotx
rotx
move
uscale
uscale
uscale
uscale
rotz
(a)
(b)
Figure 5.18b shows yet another graph, this time for the simulation of a sympodial branching structure. The appropriate L-system with its parameters can
85
Chapter 5 RULE -BASED M ODELING
be found in [74]. The trees which can thereby be produced correspond in their optical quality to those generated using simple procedural methods.
5.14
86
Categorizing the Methods
Rule-based systems and in particular L-systems provide possibilities for modeling plants in extremely compact ways. The fundamental formalism of L-systems is simple and has its aesthetic attraction. Using various extensions, such as context-sensitive, parameterized, differential as well as open L-systems, Prusinkiewicz et al. succeeded in adding to formalism a wide range of options that allow for numerous branching patterns to be modeled. In [197] it was shown that with L-systems principally all 23 tree architectures of Hall´e, Oldeman and Tomlinson [81] can be simulated. Together with the additional functions that can be entered by the user, and hence the option of interactive modeling, the modeling process became a much easier task. Also the visual results converged over the course of the time with the quality of procedural methods. Today models of similar quality can be produced with either approach. It should also be emphasized that the extraordinary spectrum of possible plant models is not restricted to trees. During the development of the discussed methodology, all types of plants were modeled. This differentiates the approach clearly from the procedural methods that were designed especially for particular structures. However, the modeling aspect is still problematic. As already previously noted in this chapter, the production of a given plant with an L-system is a difficult process. The user must be proficient in order to represent a plant from the very start using an L-system. Many aspects of the plant have to be defined locally, and already small changes sometimes cause a complete modification of the total shape. In addition, the production of plant geometry is a computationally expensive task. After each parameter change, a complete expansion process must be worked through, including the geometry production, which significantly slows down progress. This is especially disturbing when working with huge models such as trees. However, with the improvement of computer efficiency, this becomes a less significant factor. Likewise, the graph-based procedures discussed above do not contain any improvements with regard to the modeling options of rule-based procedures. With these methods, only part of what is definable with the L-systems is actually converted. The possibility of representing the topology of plants over graph structures is, however, an interesting aspect. The “rules” in this case denote instancing dependencies in the graph: if a node is arrived at, and if appropriate geometry is created, then transformations of the local coordinate system are invoked, and the geometries of all child components connected with the node are produced. In the next chapter this mechanism is extended in order to store in a graph structure a part of the plant topology. The nodes of the graph are now com-
ponents that contain data and algorithms in order to procedurally create parts of the plants. The combination of a graph-based rule system and procedural methods combines the advantages of both methods.
Section 5.14 C ATEGORIZING THE M ETHODS
87
6
Rule-Based Object Production Interactive Modeling
The previous chapter demonstrated that rule-based procedures are a very powerful method for the production of a variety of plants. Nevertheless, there are many alternative modeling procedures. On one hand, this is due to the wide range of modeling requirements; on the other hand, it is because the controlling mechanisms of the L-systems are not very intuitive. Even for an experienced user, the rendering of a specific plant is a cumbersome process. The recent developments in the L-system methodology seem to somewhat lessen this problem; however, an efficient system practical for all users has not yet been developed. Procedural methods display the exact opposite characteristics: although usually only a very limited number of plants can be modeled, the handling of the procedures and their parameterization is straightforward and intuitive with such a method. A combination of the two approaches should combine the intuitiveness of procedural modeling with the power of rule-based methods. In fact, the Xfrog modeling system [40, 41, 121, 122] successfully implemented this specific combinatorial approach on the basis of so-called rule-based object production. Here a plant is represented by the combination of components. The components generate parts of the plant’s geometry, such as leaves, stems or simple geometric primitives, by using procedural methods. Multiplication components multiply the generated geometry of other components, and, in this sense, implement a rule-based system (see below). Another type of component is used for global modeling. The user can trigger the parameters of the individual components using special graphical user interfaces. For instance, the component for modeling leaves uses a polygonal curve to specify the outline of the leaves. The vertical and longitudinal curvature can be adjusted using sliding controls along the leaf axes. This type of interface was one inspiration for the recently presented interactive editing possibilities for L-systems, which were introduced in Sect. 5.10. In many cases, parts of a plant must be distributed algorithmically. A classical example is again the arrangement of the seeds of the sunflower according to the
89
Chapter 6 RULE -BASED O BJECT P RODUCTION
p-graph and i-tree →
Golden Angle. Such distributions are produced by using multiplication components whose algorithms are parameterized over the number of objects which are to be generated, their distribution characteristics as well as their orientation. By connecting the component prototypes, the plant is defined as a directional graph (so-called p-graph). The graph represents the rule system; its edges describe production dependences: Once the geometry of a father component is generated, it invokes the production of the geometry for all its children, until the entire description graph is processed. Hereby the components can be freely linked, and recursions are also possible. The p-graph is traversed for the production of the geometry, and the so-called i-tree is built. This is a temporary tree consisting of component instances from which the geometrical data is generated. This intermediate step is necessary since in the p-graph the structure of a plant is represented in two different ways: by the connectivity structure of the edges and by the multiplication components. Despite this intermediate step, the geometry production is sufficiently fast, so that also complex objects can be modeled interactively on the screen. Because of these modeling options, currently several thousand plants have been generated which can be used for various purposes. Parallel to the intuitive operation of the system by components, the double representation of the structure is the main difference to classical rule systems such as L-systems or the graph-based object instancing paradigm [83]. Prusinkiewicz provides in his “virtual laboratory” for L-systems [166] the possibility of executing external procedures for the production of plant parts. However, in the rule-based object production the algorithms are an integral part of the modeling and thereby allow for the efficient and flexible production of many branching structures. In order to demonstrate this difference clearly, the process of multiplication is described in more detail in the following.
6.1
prototype processing →
90
Algorithmic Multiplication
If a multiplication component is part of a p-graph, then during the production of the i-tree the corresponding subtree is generated as many times as is indicated by the corresponding parameter of the multiplication component. Hereby all copies of the child components are connected with the copy of the multiplication component. During production of the i-tree the component prototypes are transformed into instances. The difference between a prototype and an instance lies in the definition of most of the parameters that are passed on to the child components, such as their local coordinate system. In a component prototype these parameters are stored as ranges, while the instances in the i-tree receive fixed and individually computed values during multiplication through interpolation. If, for example, the sizes of the children are set in the range [v0 , v1 ] in a multiplication component, then the ith child of n is assigned the value vi = v0 + (i − 1)(v1 − v0 )/(n − 1) with i = 1, ..., n, n ≥ 2 by interpolation. If nec-
essary, before their transmission, a user-defined function can be applied to the interpolation values. In this way trigonometric functions and/or random values can be integrated into the models. Similar to the procedural multiplications during the production of the i-tree, recursions are treated. In each component the maximum recursion depth is defined as a parameter. If a recursive definition must be expanded, after generating an appropriate number of instances, the expansion is stopped. Referring back to the statements concerning recursive algorithms in Sect. 4.6, it is evident that this form of modeling is not required frequently. After the i-tree has been constructed, a depth-first traversal starting at the root is performed up to the leaves. The root component generates its geometry and forces all its children to do the same. This is recursively continued, until the entire i-tree has been processed. The following further demonstrates the process of geometry production: Let A be the component prototype of the root of the p-graph, and B be the prototype of a geometry-generating component, which produces a stem. Let C be a multiplication component, which is forced to generate three instances of the successor, but no geometry. Component prototype D generates likewise a small stem. In the example a recursion depth of three is set by the user. The graph is defined so that a recursion is defined on D.
Section 6.2 C OMPONENT T YPES
← example
A B C D
n=3 depth=3
A1
D11
D12
D13
B1
D21
D22
D23
C1
D31
D32
D33
(a)
(b)
Figure 6.1 Production of geometry: (a) the user defines the p-graph; (b) to generate the geometry, a temporary i-tree is constructed; (c) resulting geometry
(c)
Figure 6.1a shows the p-graph, Fig. 6.1b the corresponding i-tree in which the instances of each component prototype X are marked as Xi . The recursion on D generates in the i-tree three instances D1 , D2 and D3 , which are connected. These subtrees are copied by the multiplication component C three times, where each instance Dj1 by the interpolation mechanisms is assigned an individual coordinate system, and hence is able to produce branches which grow in different directions. Overall, the expansion produces nine instances of D; each of the three subtrees generates a branch of the geometry in Fig. 6.1c.
6.2
Component Types
The system components can be divided into three classes: geometry production, multiplication, and global modeling. All components have a basic set of
91
Chapter 6 RULE -BASED O BJECT P RODUCTION
parameters, which allows for the production of a geometrical primitive, to position it relative to the predecessor, and to arrange the geometry of successive components relative to its own geometry.
Camera Component The camera component is the root component of every plant description, thus it must always be the first element in the structure tree. It accommodates all parameters that are needed for viewing the model. These are, for instance, the position of the camera’s coordinate system and the opening angles of the camera (together they determine the perspective projection on the screen), the position and type of light sources for the lighting simulation, and further representation parameters.
Base Component
geometric primitive →
Figure 6.2 Geometric definition of a stem: a) point sets are specified relative to one another; (b) the surface is produced through triangulation; (c) differently formed stalks
In the base component only the fundamental parameter set is present, all other components are derived from it and offer additional functionality. The base component belongs to the class of components that are used for geometry production. The component not only is able to produce geometric primitives such as cubes, spheres, cylinders or tori, but also sets of discrete points. These can be defined as open point sets (areas) or closed point sets (tubes), and usually lie on a plane. If a component is attached to another component, which likewise defines a point set, then the two point sets will be triangulated and so form a surface. In the horn component described below, this procedure is applied internally, in order to produce branches and stems from a sequence of triangulated point sets. Figure 6.2 illustrates the algorithm by producing stem-like objects.
T2
T1
(a)
92
(b)
(c)
The primitive produced from the component can be assigned a color and/or a texture. If a texture is selected, the texture coordinates and its transparency can be set, in order to position and illustrate the content optimally. Textures are generally used for leaves so as to increase their realism and to avoid the definition of complex leaf geometry. Bark is produced similarly.
Within geometry production, two different kinds of transformations are available: the primitive can be modified in position and size, and the modification can be applied to the local coordinate system, also affecting in this way the geometry of all the subsequent components. An additional parameter is the strength of the phototropism. It determines if, and how strongly the primitive aligns itself with regard to an external light field. This is especially interesting for leaves, whose surfaces can thus be aligned plagiophototropically. The recursion parameter mentioned earlier determines how often a recursion in the p-graph should be implemented. As an additional important modeling option, the user can select in a field whether the geometry of the component is generated or not if multiplied by a multiplication component. To do so, each multiplication component assigns an individual number to all produced child instances. This number is compared with the values stored in the field. The user in this way is able to prevent several components from generating geometry in a multiplication. This mechanism is used for handling exceptions that occur in each natural plant. Examples are a branch that died off or damaged leaves. Thus, the definition of exceptions produces a type of context sensitivity in a so-far context-free system, since the appearance of an object is coupled to an environment here, which is defined by the switch and an object number. In Sect. 5.6 this problem was already discussed, and in Sect. 6.5 the process is more clearly explained in the form of examples.
Section 6.2 C OMPONENT T YPES
← exceptions
Surface of Revolution Component This component generates an additional geometrical primitive: a surface of revolution. The user can edit the silhouette as a polygonal curve as well as determine the resolution in the direction of rotation. Since this type of editing needs a special dialogue, the component was separated from the base component.
Leaf Component Leaf components are needed for all types of leaves and petals. The leaf surface is produced by a sequence of area primitives, which are afterwards triangulated. Different parameters determine the appearance of the leaf. The geometrical complexity is defined by the number of points per area primitive and the number of area-primitives per leaf. A parameter determines to what extent the leaf is to be shaped in the form of a heart (see Fig. 6.3), another parameter specifies its width. The leaf surface can be bent along or perpendicular to the main axis. The profile of the leaf surface can also be edited in order to produce deformations perpendicular to the main axis (Fig. 6.3e). The outline is defined using a polygonal curve, and the user can further specify jagged or irregularly formed leaves. The phototropism adjustable in the base parameter set can at this point be applied
93
Chapter 6 RULE -BASED O BJECT P RODUCTION
Figure 6.3 Definition of various leaf geometries: (a) jagged edges; (b) standard form; (c) narrow leaf; (d) heart shaped; (e) profiled and bent
to align the leaf surface independent of the position of the branch relative to the incident light. In practice it is often better to use simple geometry with only a few triangles1 and to project a texture obtained from a photograph of a real leaf. The reason lies in the structure of today’s graphics hardware in which the frame rate is determined by the total number of triangles produced, regardless of weather textures are applied or not. As a consequence, it is better to use fewer triangles with complex textures instead of many triangles without textures.
(a)
(b)
(c)
(d)
(e)
Horn Component The geometry produced with the horn component is used as the basis for all types of stems, branches or trunks, and it can additionally be used for the rendering of other organic objects (see [150, 219]). Occasionally, it is termed a generalized cylinder and is developed from the triangulation of tube primitives, as shown in Fig. 6.2. Aside from tubes also other primitives can be used and arranged along a curve using the same mechanism. The horn component additionally permits us to multiply the geometry of successive components. In this case, the local coordinate systems of the child components are attached to the spots along the curve, which together with the tube primitives define the cylinder. Hence, the horn component produces geometry, and at the same time functions as a multiplying component. The same holds true for the tree component in the following section.
Tree Component Just like the horn component, the tree component also produces a generalized cylinder.2 The difference to the horn component is simply the way successive components are multiplied and over which parameters the form of the cylinder can be affected. Usually a tree is constructed as a cascade of tree components or is defined over a recursion. In the latter case, however, the parameters cannot be set individually for each branching level, which often is a disadvantage.
94
1 In the extreme case just one triangle can be used; however, that means that the leaf cannot be bent. This is a disadvantage, since it often affects the visual appearance of a plant. 2 In this case, only tubes are permitted as primitives.
The parameters of the tree component are divided into three groups. One group determines the positioning of the branches. Here the branching angle (see Fig. 6.4b) as well as the branching characteristic can be adjusted. The branching characteristic defines how many branches per unit length along the trunk are produced (Fig. 6.4c). The adjustment is handled by the user via a density curve. Also the deviation angle between neighboring branches can be modified. By default, here the Fibonacci Angle, i.e., the Golden Section cut, is applied (see Sect. 3.4).
(a)
(b)
(c)
(d)
(e)
(f)
(g)
Further parameters determine the size of the branches (Fig. 6.4e), their thickness along the branch axis (f), the gnarliness (g) as well as the directional change of the trunk at a branching. Additionally, the form of the trunk can also be defined directly over a spline function. Similar to the leaves, phototropism and gravitropism can also act on the generalized cylinders of the trunk and the branches. For this reason, the produced tube primitives are turned locally towards the light field, which altogether produces a bending of the geometry. In addition, the appearance of many trees is significantly determined by these parameters, though the effect can also be used to model deformations caused by wind influences. In tree modeling another crucial difference between classic rule-based systems and rule-based object production comes to light. While with rule-based systems the appearance of a plant is controlled via the modification of local parameters, here global aspects are modeled. An example is the size of the forking branches, which is indicated by a function over the length of the trunk. Modeling with L-systems is at this point rather difficult, since the smallest local changes over several recursion stages can cause great differences in the appearance. As already mentioned, this problem is lessened through the use of editable functions, as demonstrated in Sect. 5.10.
Section 6.2 C OMPONENT T YPES
Figure 6.4 Parameter variance in a tree component: (a) standard form; (b) vertical angle; (c) branching density; (d) horizontal angle between two branches; (e) size; (f) thickness along the shoot axis; (g) gnarled look
← tropism
Hydra and Wreath Components The hydra component multiplies all components attached to the p-graph and places them in a star-shaped arrangement. With the hydra component, the user can define the number and size of successors, the opening angles of the star, and the turning of the successors with respect to the direction of the centerline. In Fig. 6.5a the centerlines of the father component and the multiplied components are shown.
95
Chapter 6 RULE -BASED O BJECT P RODUCTION
The wreath component arranges its successors on a ring. Input parameters are its diameter as well as the number of successors.
Phiball Component If components are multiplied by a Phiball component, then the geometries are generated according to the rule of the Golden Section on a spherical surface. The user enters the number and size of the components which can be multiplied as well as the opening angle of the sphere. This opening angle permits us to arrange the geometry also on a spherical section which makes the component usable in many applications. If only the cap of the sphere is needed, and if a large radius is entered, circular arrangements can be produced. This technique is used, for example, with the sunflower seeds, in order to render these in their typical arrangement. A lateral cut through the sphere, as shown in Fig. 6.5c, can be applied for producing petals.
Figure 6.5 Positions and main axes of multiplied components: (a) multiplication over Hydra component; (b) Wreath component; (c) Phiball component
(a)
(b)
(c)
FFD and Hyperpatch Components
96
Both components belong to the group of components that influence the global shape of a plant. With both, a freeform deformation (FFD) can be defined that works either on the geometric data or only on the underlying shoot axes. Two types of deformation definitions are utilized. While the FFD component functions Dx (x), Dy (y) and Dz (z) must be entered by the user, the hyperpatch component works with a three-dimensional B´ezier function of degree one to three. This in turn defines a cube with a sequence of control points that can be moved by the user. An adequate graphical interface allows for the direct manipulative interaction. Furthermore, the components can also be utilized as a switch to interrupt the influences of a preceding deformation. In this case, no deformation is specified, but rather a special parameter is defined to switch off the process. This way, an FFD can be defined in the p-graph at one place, while the effect on the child components can be voided at another place. In Sect. 6.5, this is explained in more depth and demonstrated with an example showing the difference between the deformation of the geometry and the shoot axes.
World Component
Section 6.3 C OMBINATION OF C OMPONENTS
The positioning of all geometries, and especially the positioning of leaf and tree components, can be influenced by photo- and gravitropism. These work relative to the light and to the gravitational field. The light field by default comes from the vertical direction, the gravitational field by default points in the opposite direction. Using the component, this field can be arbitrarily redefined, in that for the x-, yand z-components of the directional vector a spatial function is specified. The range of possible applications for these fields is numerous, as will be shown in the following examples.
6.3
Combination of Components
For the production of plants, the components are linked by the user to form the p-graph. The user then defines the respective parameters of the components. To construct a p-graph, the components are selected from a graphical toolbox and linked to the already produced components. Three types of links are available: Child link: This is a standard link. The component’s geometry is placed relative to the preceding component. The p-graph displays these links as thin lines (Fig. 6.6a). Branch link: The component is multiplied as a branch of a tree component or a horn component. In all other cases it is interpreted as a child link. These links are displayed as bold lines (Fig. 6.6b). Leaf link: If the father component is part of a recursion, the geometry of the child component is created only once after the recursion terminates via the recursion parameter. Thus, in the structural sense, the component is a leaf of the i-tree. These links appear as dashed lines.
Figure 6.6 Types of links of components: (a) child link; (b) branch link; (c) recursive combination; (d) recursive combination with leaf link
(a)
(b)
(c)
(d)
In the figures following in this chapter, the directions of the lines are omitted in the p-graph, since these always point away from the root component. To display recursions, double lines are used. Additionally, in this case the first component is displayed twice in order to denote the starting and end points of the recursion in the graph.
97
Chapter 6 RULE -BASED O BJECT P RODUCTION
These modifications allow for the display of the p-graph as a tree, which avoids many problems, and is visually clearer. The disadvantage of the illustration is that nested recursions cannot be displayed. However, since, for other reasons, they also cannot be handled by the system, they are not permitted in the p-graph.3
(a)
(b)
(c) Figure 6.7 Parts of a sunflower with corresponding p-graphs: (a) leaf with stalk; (b) flower head; (c) flower with seeds; (d) stalk; (e) completed plant
(d)
6.4
Examples
After we have described the components and the options of their combination to the p-graph, three examples are used to show how plants are modeled. A sunflower, a rhododendron, and a chestnut tree exemplify the potential of the numerous combination possibilities of components as well as the power of the overall approach. To model a sunflower, photographs or scanned textures of natural leaves and petal surfaces are needed. With a photo editing program, these are projected onto a transparent background. Here, the so-called alpha-channel, found in standard photo editors, is used, which defines the transparency as an additional 3 For
98
(e)
the in appendix described PC-based variant of the modeling system recursions are not permitted.
color channel. Usually, for the textures of leaves, only the values zero (completely transparent) or one (completely opaque) are required. The picture of the leaf is applied as a texture to the leaf component’s geometry and a small stalk is attached. Figure 6.7a shows the corresponding p-graph that consists of the icons of the camera, horn and leaf component. Using deformation values and transformations, the components are parameterized until a natural appearance of the leaves is reached. In the next step, the leaves are used as branches of a tree component (Fig. 6.7d). The upper part of the stalk is opened, in order to connect it to the head of the sunflower. The modeling of the blossom from the seeds and the blossom’s petals are shown in Fig. 6.7b and c. Blossom petals are multiplied with a Phiball component, whereby the parameterization is selected so that it arranges the petals on a small ring. In a similar way, tiny sticks are multiplied by another Phiball component to produce the seeds of the flower. Both subtrees are attached using child links to the stalk of the sunflower. After further adjusting the parameters, the result is the complete flower.
Section 6.4 E XAMPLES
(a) (c)
(a) (b)
(b)
(c)
(d)
A rhododendron is a good example for modeling a medium-sized shrub. In comparison to the sunflower, the geometric complexity is larger, with approximately 30,000 triangles. Here the focus is on the branching structure rather than on geometric properties of the blossoms and leaves. Again, we will first scan a natural leaf and use it as texture in the leaf component (see Fig. 6.8a); its p-graph is shown as the upper part of the complete p-graph in Fig. 6.8e. Now a small twig is created. The tip of the twig is built separately, since the leaves of the Rhododendron are set in a special way around the blossom. A phiball component multiplies the leaves and a hydra component places the blossom leaves inside in the appropriate order (Fig. 6.8b). The
(e) Figure 6.8 Modeling of a rhododendron: (a) leaf with texture; (b) small twig with blossom; (c) twig with branching leaves and two small twigs; (d) whole shrub; e) p-graph with marked subgraphs
99
Chapter 6 RULE -BASED O BJECT P RODUCTION
(a) (b)
(a) Figure 6.9 A tree is produced using a sequence of tree elements: (a) two components after parameterizing; (b) four components; (c) the leaves are attached to the last component; (d) p-graph with marked subgraphs
Figure 6.10 Maple tree with a total of six branching levels
100
(b)
(c)
(d)
p-graph now consists of two more components: the phiball to multiply the main leaves and the hydra component to multiply the blossom leaves. Both are joined by the child link with the tree component that will produce the twig. The production of an entire branch is slightly more complicated: the stems should branch into leaves as well as small twigs. However, to achieve a more realistic shape of a rhododendron shrub, the leaves should not be generated at the position of a twig or vice versa. This is an exception that will be dealt with using the field previously described in the base component. Here some of the branches for leaves are switched off, and instead additional components for the production of small twigs are attached. In the leaf component, only for those branches for which the leaf multiplication was switched off the corresponding switch is turned on. This way, the twig can branch into two different ways (see Fig. 6.8c). Finally, in the last step, 20 twigs are multiplied using the phiball component. The component is placed somewhat below the ground and thereby phototropism is added to the twigs, which slightly bends them upwards (see Fig. 6.8d). As a third example, a tree will be created. As already mentioned, the general structure of the p-graph is similar in most trees. A cascade of tree components represents the branching structure, while the leaves, blossoms or needles are attached to the lowest level of tree components.
Section 6.5 S HAPE M ODELING
To generate a chestnut tree, as an example of a middle-sized tree, again textures are produced via scanning of a real leaf and bark and then are incorporated into the geometry of a leaf and tree component. If two components are joined and the parameters are set appropriately, a tree as seen in Fig. 6.9a is the final result. For the chestnut tree, a large branching angle in combination with a high gravitropism was configured to produce the main branches. Two additional branching levels are attached and parameterized appropriately. Although it sounds simple, the definition of the parameters especially for the small twigs is still not trivial. The parameters are not independent of each other and cause to some extent a complex interplay. But since the model description can be reused in a very simple way, similar trees can be generated very quickly from an existing model.
6.5
Shape Modeling
Often not only just a species has to be modeled, but rather an individual plant with a particular shape. Examples here are trees growing along a wall or plants deformed under the influence of wind. In both instances, the overall shape of the plant has to be influenced in such a way as to yield a characteristic shape. A total of five mechanisms have been implemented for the modeling of shape. One of the mechanisms is the definition of exceptions within the base component introduced in Sect. 6.2. The four others are functional modeling, tropisms, freeform deformations, and pruning. These mechanisms will be discussed next.
101
Chapter 6 RULE -BASED O BJECT P RODUCTION
As already mentioned in the introduction, while building the temporary i-tree, component prototypes are transformed into instances, whereby the parameters are computed individually for each instance, particularly those of the multiplication components which were stored as parameter ranges. The individual assignment is performed by interpolation, which also permits us to apply a function to the result.
Figure 6.11 Modeling of shapes: (a) functional modeling: the bending of the leaves is computed by the iteration number and a random factor; (b) a weeping willow is fundamentally formed by its strong gravitropism; (c) a philodendron is led by a cylindrical field around a stick
(a)
tropisms →
102
(b)
(c)
At this point, random functions as well as other functionally specified parameters can be introduced into the system. For example, variations are generated by adding a small random value for the curvature or for the size; for the functional specifications all essential mathematical functions are available. To parameterize this function meaningfully, a number of variables can be applied in combination with the active value interpolated for the respective instance. In this way, positions and orientation, and also recursion depth and the actual iteration number of the instance can be applied. In Fig. 6.11a, an agave plant was modeled using these techniques. Each leaf is individually curved, where the iteration number and a random value determines the curvature. The first generated leaves with a small iteration number are created by the Phiball component at the top of the sphere and thereby receive a small curvature. For the subsequently generated leaves the curvature is increased continuously. Tropisms were already discussed in connection with base, leaf, tree, and world components. The modeling with tropisms allows for generating a number of different effects. For the production of a weeping willow, a downward-pointing gravitational field as shown in Fig. 6.11b was applied. If the field is defined in such a way that the directional vectors point towards a center line, and within a cylinder around this line point outwards, then the branching structure can be forced to grow onto a cylindrical shape. This technique was applied to render the philodendron in Fig. 6.11c. More examples are wind simulations, in which
a lateral field is used, and obstructions, which are realized with fields that block the entrance to a space.
Section 6.5 S HAPE M ODELING
Figure 6.12 Freeform deformation applied to a pine tree: (a) initial model; (b) deformation of branches, the needles remain unchanged; (c) deformation of the entire tree
(a)
(b)
(c)
Figure 6.12 shows an example of the use of freeform deformations. While in Fig. 6.12c the entire tree is deformed, in Fig. 6.12b only the branches were distorted, but not the needles. In particular in the strongly deformed right part of the tree, the needles are more natural, since they were not subjected to a deformation. Many plant shapes are created through effects that do not occur in nature. Aside from hedges, this applies to most trees, i.e., if they were growing free-standing, they would grow as shrubs, and only as a result of pruning the lower branches, do they receive a tree-like shape.
← pruning
Figure 6.13 Pruning of a plant: (a) cube shape; (b) ellipsoidal shape; (c) cone shape; (d) cylindrical shape; (e) espalier shape
(a)
(b)
(c)
(d)
(e)
Pruning is realized by a parameter that controls the growth in the tree component. At the same time, base components are defined, whose geometrical primitives serve as a restriction volume. During the geometry production, plant geometry is then restricted by these volumes. In Fig. 6.13, a shrub was pruned in different ways. Such models can be used for creating simple hedges up to complex Renaissance gardens. Depending upon the model used, the plant is to appear cut off or appears to be naturally grown within its restriction volume. Therefore two kinds of interaction with the restriction volume were implemented: either branches are cut off or a branch only grows up to the defined boundary. Then the lengths of the branches are defined, and in a second run their thickness, and in particular their taper ratios are adapted to these lengths. Using this technique, the plant appears natural within the restraining volume.
103
Chapter 6 RULE -BASED O BJECT P RODUCTION
6.6
Animation
In the two foregoing chapters we occasionally addressed the animation of plants. A problem in this area is always the interplay between geometrical and topological changes in the growth of the plant. Prusinkiewicz works with differential L-systems, in which model changes are described by conventional L-systems; the intermediate growth is generated by differential equations with relatively complex boundary conditions. Some of the procedural approaches likewise permit growth of the produced trees, which is due to the limited model palette (mostly simple trees) easier to implement.
Figure 6.14 Growth of a primrose through changing parameter values and parameterized keyframing
104
With the rule-based object production, we take advantage of the fact that most of the model topology – for instance, how many objects are generated with a multiplication component – is not stored in the topology of the p-graph but as parameters of the components. The topology of the p-graph can therefore be accepted being constant during the process of an animation without too much restriction. In this case, the parameters which are specified within the components, are understood as parameter sets for a specific time. If different parameter sets are defined for different times, then the values of the parameters for intermediate times can be determined through interpolation. Thus, we are concerned here with a keyframing concept based on parameter values. Using cascaded keyframing, a local time is implemented. Here one keyframing sequence can be incorporated into another one. If a sequence is produced by a multiplication component during the course of an animation, the local time starts with zero and runs parallel to the global time. In this way, processes such as the opening of petals in a blossom have to be specified only once, and can then be run again at different times and locations independent from each other. For the cascading of a keyframing sequence, an individual component is used that stores a complete sequence of model descriptions and parameter values at different times. This component is joined just like a normal component to the p-graph of the plant. A great variety of plants has so far been modeled with this system. The generated trees again consist of a cascade of tree components and have between four
and seven branching levels. The geometric complexity ranges between several thousand and, as in the case of the maple, several million polygons per plant (see Fig. 6.10).
The amounts of time needed for the production of the trees were between one hour and one day for complex trees. Generally modeling expenditure increases with the number of branching levels. Thus, if three or four levels are still producible within an acceptable time frame, a greater expenditure of time must be estimated for large trees not only because of the larger complexity of the data but because of the number of branching levels. While modeling, the geometrical complexity of the representation can be limited, however, using the exception mechanism from Sect. 6.2 (base component). For example, all branches except for one can be switched off. The re-
Section 6.6 A NIMATION
Figure 6.15 Several models created with the system.
105
Chapter 6 RULE -BASED O BJECT P RODUCTION
maining branch is then modeled, and only at the end the others again are activated. In Fig. 6.15 additional models are shown that were generated with these methods. The tree models show the spectrum of different branching structures, and the shrubs are additional examples of average complex models. In the lowest row of Fig. 6.15 various house plants are illustrated, which were likewise created with this system. These models were transferred after their creation into a professional animation system, which then created the renderings.
6.7
Resume
Contrary to the many methods presented so far, rule-based object production permits a fast and intuitive modeling of plants. In order to support this statement, a small user study with 18 persons was conducted. After a 10-minute briefing about the system, 10 people had to model the head of a sunflower within 30 minutes, and eight people were to complete a tulip within a 45-minute time span. The modeling task of the first group required more intensive work with the multiplication components, while the second group was confronted with geometrical modeling problems. In addition, during the test period, the participants were allowed to consult with the project leader, and both groups were given photographs of the objects to be modeled. Figure 6.16 shows the results of the questioning following the experiment. All values are indicated as 90%-confidence intervals for a normal distribution. Despite the relatively large confidence intervals, the results prove that the system was judged to produce an intuitive, understandable, and easily edited representation of a plant. 1
Figure 6.16 Evaluation of untrained users (1=bad/insufficient, 5=very good/high)
106
2
3
4
5
Intuitiveness of modeling process Intuitiveness of components Intuitiveness of parameters Understanding of components Understanding of parameters Understanding of p-graph Editing ease of p-graph Editing ease of parameters Predictability of changes Goal-oriented modeling
The p-graph is likewise very intuitive in its structure. However, the number and the comprehensibility of the parameters is sometimes a problem. Here the prominent problem of all modeling systems comes to light: the modeling power is nearly always accompanied with too many parameters. Due to the varying approaches of the different plant modeling methods discussed in the last three chapters, it is relatively difficult to draw a clear comparison between the individual procedures. The techniques are evaluated therefore
Section 6.7 R ESUME
← modeling aspect
Lintermann and Deussen
Gervautz and Traxler
Greene
Weber and Penn
Holton
Vannimenus and Viennot
de Reffye et al.
Bloomenthal
Oppenheimer
Reeves and Blau
really uncertain uncertain quite certain certain
Honda et al.
very large/strong large/strong medium small/weak very small/weak
Aono and Kunii
Legend:
Prusinkiewicz and Lindenmayer
on the basis of individual criteria that proved to be important in the practical work. In the introduction we already addressed the various motives for the reproduction of plant morphology. Botanists are interested in the basic rule mechanisms, since the geometries of the models serve only for validating the production mechanisms or as basic data for the development of extended parameters such as the maximum utilization of light. For computer graphics the shape is the center of attention: “everything goes as long as it looks good”. This phrase allows us even to consciously generate botanically incorrect shapes, as long as the desired visual effect is obtained. In this sense both the botanical accuracy, and with it the question to what extent botanical effects were replicated, and the topological and geometrical quality of the representation are to be evaluated. Furthermore, in computer graphics the modeling aspect plays an essential role. It is crucial how quickly the user arrives at a desired shape. An important point of evaluation is thus the modeling effectiveness and in addition the modeling power that indicates what spectrum of plants can be produced. In Fig. 6.17 the evaluations are summarized.
botanically motivated topologic quality geometric quality modeling efficency modeling power
Since the material for the individual procedures was presented in varying quality and quantity, additionally the accuracy of the evaluation was specified for each evaluation, i.e. the modeling effectivities of the procedures are indicated as relatively large uncertainties in nearly all cases, since only papers were used, and experimenting with the respective approaches was not possible. Unfortunately, the authors nearly never got involved in the indication of the modeling times. The overall results, for all intents and purposes, reflects different strengths and weaknesses in the individual methods, which leads to the conclusion that these methods were designed for different purposes, and the focus shifted over time. The early procedures of Honda et al. as well as those of Aono and Kunii adhere to a purely botanic motivation; they attach importance to the modeling of
Figure 6.17 Evaluation of methods for plant modeling. The values and correlating intervals regarding the accuracy of each evaluation are indicated
107
Chapter 6 RULE -BASED O BJECT P RODUCTION
topology and neglect the geometrical aspects. In contrast, the subsequent work of Reeves and Blau, Oppenheimer and Bloomenthal place botany in the background, and the realistic appearance of the plants becomes the actual goal. De Reffye seems to have found a good compromise between a botanically motivated procedure and the necessary power of the approach. Although the visual results of Vannimenus and Viennot are not really high quality, their combinatorial procedure is methodologically interesting and thus counterbalances the weaknesses in the representation. Holton pursues an interesting principle and moreover is also able to supply realistic pictures. Weber and Penn consciously distance themselves from botanic regularities and model shapes of plants. The results are impressive, in particular since there also different degrees of detail can automatically be produced. Certainly the most prominent method in connection with the modeling of plants is L-systems. With described extensions the group of Przemyslaw Prusinkiewicz at the University of Calgary has succeeded in extending L-systems step by step, so that these are able to replicate almost all important processes of plant growth. The only weakness remaining is the less intuitive structure of the systems, at least insofar as structure and interaction of subsystems is concerned. It demands profound experience in order to be able to use L-systems efficiently. Rule-based object production seems to be a good compromise between the necessary modeling power and intuitivity of a practical approach. Though there is nothing that cannot be modeled using parametric L-Systems, the components of rule-based object production provide the typical user with an intuitive modeling strategy. Global and local manipulation methods enable the user to influence the shape of a plant efficiently. With a small number of components most plants on earth can be modeled – and much more. The examples on the following pages show some of the works that were done using the system.
Figure 6.18 “Valentine” by Jan-Walter Schliep, using an Xfrog model.
108
Section 6.7 E XAMPLES
Figure 6.19 “Poplars” by Gilles Tran, generated with POVray using Xfrog plants
109
Chapter 6 RULE -BASED O BJECT P RODUCTION
Figure 6.20 “Evergreen” by Gilles Tran
110
Section 6.7 E XAMPLES
111
Chapter 6 RULE -BASED O BJECT P RODUCTION
Figure 6.21 “2CV” by Gilles Tran, see also http://www.oyonale.com
112
7
Modeling Terrain The Basis
The modeling of synthetic landscapes not only presupposes a natural look of the plant cover, but also requires the terrain itself to appear as a faithful replica of a scene in nature. Since there exists a complex interplay between the vegetation and the local peculiarities of a landscape, suitable specification methods for terrain, as well as other abiotic environmental factors, must be found. Of course, these should work as automatically as possible, since, especially for large terrains, it would be too cumbersome to implement interactions manually. In this chapter we introduce some of these methods, again with a special focus on computer graphics and related fields. For creating a terrain, it is useful to resort to fractal methods, already referred to in Sect. 3.3. There we already pointed out that the visual attributes of coastlines and mountain ranges prompted the search for new mathematical descriptions. One of the first-observed natural processes with fractal attributes was the movement of small particles in an oil emulsion, the so-called Brownian motion [127, 158]. The microscopic movement of a particle is caused by the thermal motion of the molecules that hit the small particle randomly from different directions. The developing path has a fractal character insofar as it exhibits self-affinity within a large scaling range, and thus, is self-similar except for a scaling factor. The fractal character of the Brownian motion is here significant, since it offers a very elegant option for creating a natural-appearing terrain in a simple way. Here, the Brownian motion is understood as a function, and the function values are interpreted as elevation values. In the following, this is demonstrated with a one-dimensional function, and is then extended to two-dimensional fields. The developing data later serve as input data for a system for the specification of vegetation. To store the data of a terrain, a height map is used. In a height map, for each place on the surface exactly one elevation value is denoted; the height can be interpreted as a function over the surface. This description has a slight disadvantage in that it does not permit the rendering of caves or overhangs, although, this is not a significant constraint when modeling landscapes. The advantages, 113
Chapter 7 M ODELING T ERRAIN
on the other hand, outweigh this weakness, since the data is drastically reduced. The elevation values can be stored directly without indicating their positions, as long as they are available in a regular grid.
7.1
Brownian Motion
In general, Brownian motion can be described using a random function B(t) also referred to as Brownian noise, which is defined by its stochastic characteristic B(t + ∆t) − B(t) P < x = Φ(x) (7.1) ∆tH
fractional Brownian motion →
where Φ(x) is a normal distributed random function, and H = 1/2 is the so-called H¨older exponent. Equation (7.1) states that the probability P of the particle velocity (∆B(t)/∆t) being below x is normal distributed. However, we have an slightly different term here: ∆B(t)/∆tH denotes that the velocity increases with small ∆t. Considering short time intervals, the distribution of the velocity values does not decrease linearly with the time interval, but decreases more slowly. This is due to the fact that during the observation of smaller time intervals, the fine random movements of the particles are included. As an extension the fractional Brownian motion is introduced that allows exponents H ∈ [0, 1], H = 1/2 (see also [127, 142]); hereby all types of paths can be modeled. While the authentic movement of a particle is a movement in space, which usually is written by three coordinate functions x(t), y(t), z(t), in the following a functional notation should be applied. It describes a similar movement as that for a one-dimensional function f (x) or f (x, y) for the bivariate case of a surface in 3D space. In all cases the Brownian motion has the following attributes: It is a nondifferentiable function of time with a characteristic frequency spectrum1 1/f β , where the frequency is denoted by f and β ∈ [1, 3] is the scaling factor. It is statistically self-affine: Its appearance is self-similar in all scalings with the application of an additional vertical scaling factor, meaning we achieve a similar look if we scale the function and then add a vertical scaling factor.
1/f β -criterion →
114
There are three possibilities for generating a Brownian motion via a computer. The first option is the use of a sum of sine functions with random phase and an amplitude that is determined over the 1/f β -criterion. This procedure is similar to the process of the Fourier transform: The function is synthesized by a sum 1 The frequency spectrum of a function is obtained, in that the function is described as a sum of trigonometric functions with individual amplitudes. These amplitudes can then be denoted as function of the frequency, this is termed the frequency spectrum. The transformation between the function and the frequency spectrum is called the Fourier transform.
of sine functions. The resulting functions are known as Weierstrass-Mandelbrot functions [227]: B(t) =
∞
Af rfH sin(2πr−f t + Θf ),
Section 7.1 B ROWNIAN M OTION
(7.2)
f =−∞
where Af denotes the normal distributed random variable, and r denotes the spatial resolution or lacunarity. Θ is a random phase, and H is again the H¨older exponent. The latter determines the ruggedness of the function, as is illustrated in Fig. 7.1.
← Lacunarity
H=2.0
H=1.0
H=0.67
H=0.33
H=0.0
Figure 7.1 The H¨older exponent defines the ruggedness of the fractional Brownian motion. The path of a real particle is approximated for H = 0.5.
The second method for synthesizing the fractional Brownian motion uses a sum of bandlimited noise functions [142, 143] whose amplitudes are likewise determined by 1/f β , where f is the average value of the frequency of the bandlimited functions.2 Although there are quite a few different methods for creating noise [52], the optimal noise function should have, if possible, a small frequency range, in order to produce at synthesization the desired 1/f β property. Since, however, a monochromatic function or a function with a very small frequency range cannot at the same time be a noise function, a band limitation is selected [142], such as the Perlin noise function [52, 157]. This type of noise function is defined over a discrete grid, where the function at each grid point is zero, and only between the grid points does has different values. To achieve this, random gradient vectors are defined at the grid points. The function values between the grid points are obtained through linear interpolation, where the gradient vectors characterize the slope of the function near the grid points. Because of the zero crossings at the grid points, the synthesized noise function has a fixed lower spatial frequency. Since it might have additional zero crossings in between the grid points and saddle points based on the gradient-based syntheses, higher frequencies can develop as well. These are, however, likewise limited by the linear interpolation. Because of the band limit, the function
← Perlin noise function
2 Bandlimitation
emerges in connection with the Fourier transform: if the frequency spectrum of a function has only local support, then the function is bandlimited.
115
Chapter 7 M ODELING T ERRAIN
has also the advantage of being differentiable in each place, thereby avoiding breaks and creases within rendering. A disadvantage of these noise functions is the occasional surfacing of the grid structure that is caused by the zero values at the grid points. This can be avoided by combining noise functions that accept values different from zero at the grid points [52]. In any case, the Perlin noise function is suitable for approximating the fractional Brownian motion: B(t) =
n
rfH N (tri ).
(7.3)
i=1
midpoint displacement →
Here, N is a Perlin noise function, and n varies between 3 and 12. The term r is again the lacunarity, and H is a constant, similar to the H¨older exponent. If a function has to be evaluated for several variables, then t will be replaced by a vector and a multidimensional version of the noise function is applied. The third method uses a pure geometric construction, e.g., polygonal subdivision with midpoint displacement. A given set of geometric primitives (usually triangles) is transformed into another, larger set by the application of division steps. In each step, each primitive is replaced with two or more primitives, whereby their number increases exponentially. A similar principle was used with the initiator/generator scheme in Chap. 5, in which the generator replaced the components of the initiator recursively with other components.
Figure 7.2 Division of a line that yields varying roughnesses
If we want to model a one-dimensional Brownian motion, a number of given line segments is refined. Per step, each segment is divided in half, and the respective midpoint is displaced; hereby the midpoint is calculated using
116
tnew
=
Bnew
=
1 (ti + xt+1 ), 2 1 (Bi + Bt+1 ) + S(ti+1 − ti )N (tnew ). 2
(7.4) (7.5)
Similarly to the plant models, here we are dealing again with a procedural description: complex geometry is generated from a base geometry by iterated application of a function. The variables ti may describe locations, the Bi are the “functional” values. Here the function S(∆t) scales the noise in dependence with the length of the divided segments and thus returns the amplitude factor rfH (see Fig. 7.2). Saupe shows in [188] that the actual difference between the schemes is the point evaluation. The first two schemes compute the function value f of a
point, without explicitly using the information about the neighboring points. The spatial dependence is here given implicitly over the 1/f β property of the sine and noise functions, respectively. In the last scheme, we needed the positions and/or heights of the neighboring points in order to determine the height of a point to be inserted. In practice, that has far-reaching effects, since most imaging methods, such as raytracing (see Sect. 9.4) synthesize an image by discrete point-by-point evaluation. For such an evaluation, we need the height at a specific point in the terrain, where its definition in the previous scheme (at least the local environment of the point) has to be computed completely. For efficiency reasons, in the last instance, the terrain must also be completely generated in order to then use the geometry for image generation. Due to memory and efficiency reasons this is only possible for limited surfaces.
7.2
Section 7.2 F ROM F UNCTIONS TO T ERRAIN
← point evaluation
From Functions to Terrain
To model a terrain, bivariate versions of sine or noise functions are defined. The midpoint displacement, instead of lines, is now applied to triangles. A triangle, for example, is divided by finding the midpoints on each of the sides of the triangle and connecting its consecutive midpoints. Connecting the consecutive midpoints of the edges will divide any triangle into four smaller triangles.
Figure 7.3 Fractal terrain, generated by the sum of sine functions
If, however, a bivariate noise function is used, then it can be combined from three parts, B(x, y) = Bx (x) + By (y) + Bxy (xy), (7.6) thus only out of two functions Bx (x), By (y), and a mixed term. An image generated with such a function is shown in Fig. 7.3. The individual noise functions again evolve out of a sum of sine functions, in this case, seven functions, in combination with a H¨older exponent H = 0.4, as well as r = 0.45 and f0 = 1, fi = fi−1 + 0.7. The illustrated area has a width of 2π. The image shows an already relatively natural-looking elevated field, which drops slightly to the right due to the influence of the low frequencies. Such a terrain is also termed a homogeneous fBm terrain (fBm: fractional Brownian motion). Figure 7.4 demonstrates the influence of the fractal dimension on a height field. Here the ruggedness and also the fractal dimension rises linearly from left to
← homogenous fBm terrain
117
Chapter 7 M ODELING T ERRAIN
right. This variation of the fractal dimension approaches the solution to a problem we saw in conjunction with the earlier procedures: due to the uniform fractal dimension, the terrains came across as looking too bland.
Figure 7.4 Fractal terrain with varying fractal dimensions (increasing from left to right)
multifractal →
Kenton Musgrave [52] developed two methods for varying fractal dimensions locally in a terrain. Due to their attributes, both methods are denoted as multifractals, though that is only because the computer graphics community handles the term rather casually; actually, the synthesized objects are not fractals in the strict mathematical sense. A simple solution for the generation of multifractals is offered by the heightdependent variation of the fractal dimension. Natural mountain ridge outlines are usually much more rugged than the outlines of valleys, since erosion processes affect the landscapes differently. Musgrave replicates this using heightdependent control of the fractal dimension. For each point, through synthesis with low frequencies, the actual height is assessed. The higher frequencies are only added at the points that exceed a certain height. In his second method, Musgrave tries to produce washed-out and thus soft valleys of all depths by scaling the values of the higher frequencies with the preceding ones. Although this method does not yield the desired effect, the results are interesting terrains with alternating ruggednesses. A collection of examples is to be found in [52]. Given these ideas, Musgrave has been developing for some years a system for the automatic production of landscapes. “MojoWorld” produces whole synthetic planets that over a Web interface that can be combined by different users into a synthetic galaxy. However, this is only possible because for a fractal description the parameter set of a whole planet can be reduced to a few kilobytes; nevertheless, illustrations such as Fig. 7.5 can be produced with not too much effort.
7.3
118
Erosion
For the most part, the appearance of a natural landscape is determined by erosion, in that material is cleared away, and rough edges are sanded off. Additionally, there are many other factors that alter the form of a landscape. In computer-assisted simulations of landscapes, this can be illustrated in two different ways: Either erosion-like appearances can be produced using a local change of the fractal generation of a landscape, or erosion processes can be simulated on existing height fields using geomorphologic methods.
Section 7.3 E ROSION
Figure 7.5 Synthetic landscape produced with MojoWorld (Courtesy of Kenton Musgrave)
119
Chapter 7 M ODELING T ERRAIN
geomorphodynamics →
Musgrave et al. [143] extends the already discussed synthesis methods for eroded mountains by the simulation of water paths. Prusinkiewicz and Hammel [163] combine midpoint displacement with predefined river basins, in order to integrate rivers into their mountain models. However, the visual results are not very realistic looking. However, in his system “Mojoworld”, Musgrave included recently a physical water simulation that yields better results. Geologically oriented simulation methods generally are well suited for synthesizing such complex processes. From the view of geomorphology, the forms and shapes of mountains evolve from complex interactions between endogenous and exogenous influences, such as crustal deformations or crust movements and volcanism, and weathering, demolition, and depositing. Endogenous processes are mostly responsible for relief increase, the exogenous processes are usually relief decreasing. There have been several attempts to replicate both processes and thus to create realistic-looking mountain ranges [146], though erosion procedures are in most cases applied to already-existing terrain. With respect to the so-called geomorphodynamic system (see [4]), processes are differentiated as follows: Weathering Weathering denotes the process that disintegrates rock at the earth’s surface due to exogenous activities. According to the kind of the modification of rock and soil material, we distinguish between mechanical disintegration and chemical decomposition. With mechanical disintegration rifts and crevices result from variations in temperature, and the rock is broken up into smaller rocks without altering their composition. Chemical decomposition causes the rock to slowly decompose, and at the same time alters its constituent minerals. On the basis of the observation that the decomposition decreases exponentially with increasing depth under the surface, the mechanical decomposition rate Wm (erosion per time) can be computed using Wm = W0 e−k1 C , (7.7) where W0 is the rate with uncovered stone, k1 is a coefficient depending on the material, and C is the height of the regolith, the already-existing weathered material such as sediment, soil, or stones [3]. In contrast to mechanical weathering, chemical weathering reaches its maximum at a depth, at which sufficient moisture is stored to still preserve chemical decomposition processes during dry periods. For regolith depths below this maximum, chemical weathering increases with increasing C. If the regolith cover is denuded through additional erosion processes, the effect of weathering is likewise changed. In sum, we are dealing with a complex interactive system. Denudation
120
Denudation here means the planar wearing away of the soil cover as well as the relocation and deposition of rock material. In combination with weath-
ering, and as a result of insufficient decomposition, a so-called decomposition-limited denudation can develop – an example is ravines – or, in the reverse case, a transport-limited denudation is caused.
(a)
(d)
(b)
Section 7.3 E ROSION
(c) Figure 7.6 Fractal terrain under denudation effect: (a) start terrain; (b) splash erosion, this affects smoothing; (c) debris sliding causes the vertical angles to become more uniform; (d) fluvial denudation, sediment deposits become visible in the deeper areas; (e) combinations of all denudation types
(e)
The form of rock slopes is affected considerably by the type of denudation: On slopes mechanical degradation first dominates and then usually a decomposition-limited denudation prevails without a visible regolith. Transport-limited denudation, however, leads to planar, continuously regolithcovered overhangs, almost like detritus [4]. The mass balance for each point of a slope is described as follows: C = C0 + (W + A − R)∆T,
(7.8)
where C describes the depth of the regolith at the end of the time span denoted by ∆T , C0 is the initial regolith depth, W is the weathering rate, A is the rate of sediment supply through denudation transport, and R is the rate of sediment discharge. According to the kind of medium being transported, different types of denudations can be distinguished, in particular the gravity-conditioned mass movement of rock and debris which is important for the visual appearance as well as the decomposition by rain. The modeling of debris slides depends on the types of material. Specific angles are used from which material begins to slide (e.g., sand at approximately 27–33◦ , sand gravel at up to 50◦ ). The sliding process can also be modeled over a system of finite differences: a uniform grid is laid over the terrain (the grid usually corresponds to the grid for geometry production, but can also have different grid widths). At the grid nodes material is accumulated, which is then distributed to the adjacent points during the process of simulation as a function of the terrain’s
121
Chapter 7 M ODELING T ERRAIN
local angle. This method is a discretized solution of the system of differential equations described by Eqn. (7.8).
splash erosion →
The spattering of sand, silt and clay/stone particles, i.e., small soil particles, caused by the impact of raindrops on very wet soils is called splash erosion. The loosened and separated particles may or may not be subsequently removed by surface runoff. Here the parabolic flight paths of the particles on a slope surface are somewhat longer downwards than upwards, which causes the movement of the material to lower levels.
fluvial denudation →
Rainwater collected on the surface flows down the slopes, whereby the water drops merge into a system of river-like branched flumes. Soil particles are carried forward with this fluvial denudation and fed into the brooks. Again the process can be described by a system of finite differences (see Musgrave [142]). Figure 7.6 illustrates the effects of different denudation processes. The splash erosion produces a distinct abrasion effect. Through debris sliding, the maximum slope inclinations are adapted, which, however, produces no substantial effects on the illustrated terrain. The fluvial denudation deposits clearly visible material in the dips. Erosion By the term erosion, we mean, in contrast to the planar-working denudation, the rill and carving effect of flowing water along line-like decomposition courses. In particular, in rivers and glacier valleys, loosened rock rubble is cleared away by the friction force of the water, and through collision with other rock chunks. Erosive decreasing of the riverbed is called riverbed erosion, while the erosive displacement of river or stream banks is termed bank erosion . Although erosion is perhaps the most important contribution to the visual modification of mountains, so far only comparatively few works have been published on this topic in computer graphics. Kelley et al. [109] modeled river valleys and networks over parameterizable tree models, which generated a fractal branching structure. According to the branching between the river courses, surfaces are stretched, and over an optimization suitable gradients are obtained. The previously introduced works of Prusinkiewicz and Hammel [163] as well as Nagashima [146] are among the few approaches that focus on the generation of river courses in combination with the modeling of mountains. Musgrave worked with a similar model in his system of landscape generation [142]. Nevertheless, the results obtained using these methods still allow for a vast scope of development.
122
Interestingly enough, so far no methods have been presented that consider the interaction of erosion and vegetation, at least not in computer graphics. Since even a thin plant layer decisively changes the effect of weathering and decomposition, and the corresponding modeling would produce interesting results, this area should definitely be focused on. However, the three-dimensional
forms of the objects involved play an essential role in the necessary detailed simulations, which makes the algorithms far more complex.
7.4
Section 7.4 I NTERACTION WITH F RACTAL T ERRAIN
Interaction with Fractal Terrain
For graphics modeling, often it is not sufficient to let the appearance of a terrain be controlled only by the parameters of the fractal production function or by erosion processes. In many cases complex constraints must be taken into consideration. Also, often the general appearance of the landscape is already given and fractal noise is added to lend a livelier look.
(a)
(b)
(c)
(d)
Figure 7.7 (a)–(c) Three steps in generating a fractal terrain with manual interaction: (a) given height field; (b) adding fractal noise; (c) introducing a small creek using a masking function. (d) Fractal terrain with varying water concentration (Courtesy of M. Pharr)
Masking functions offer options for the combination of fractal-generation methods and interactive landscape design. The user specifies areas in which a mask diminishes or additionally influences the entire height of the model [39]. Figure 7.7 shows a fractal terrain with a manually worked-in brook bed. Here, the interaction with the fractal model takes place through a paint program. The user views the elevated field from above, and edits the work using different kinds of brushes. Similarly, soil factors, such as water content, are graphically defined or generated using a simulation. A variable water concentration for a fractal terrain can be seen in Fig. 7.7d. We will use it again in Chap. 8 for the simulation of a plant community in which plants differ in their preferences for water.
123
8
Modeling Vegetation A Landscape Evolves
When modeling larger landscapes, some of the problems addressed in earlier chapters intensify while others become less significant. For example, the arrangement of the objects, contrary to the objects within plant geometries, now basically takes place on a plane; and some subproblems can be solved in twodimensional abstractions, instead having to compute them on the basis of threedimensional data. The data sets and the complexity of the associated processes force a separation of the whole process into individual steps, which are connected to a modeling and rendering pipeline. In such a pipeline , data is produced over several stages, whereby each stage is dependent on the previous one for the production of new data. Here the abstraction level lessens with each step, until finally it ends in a purely geometrical description of the whole landscape. Following the work of Reeves and Blau [172], which in the context of a film production dealt with similar problems (see Sect. 4.5), the procedure is divided into four subareas:
← pipeline
Production of Terrain and Soil Factors Since position and abiotic soil factors such as water and acidity decisively contribute to the development of vegetation, these must be specified in a first step. The terrain is hereby approximated by a height field that indicates an elevation value for each position on the plane. The concentration of resources or the characteristics of the soil can be stored in discrete fields that define a value in regular intervals – for example, in a square grid of a few meters of side length. Specification of Plant Distributions In the next step the plants are distributed on the height field. For this distribution, methods can be used that are borrowed from plant ecology. Additionally, plant positions can also be the result of a simulation that copies, for example, the competition for light. In places in which ecological systems can develop only to a limited extent due to human interventions, direct specification methods are to be applied.
125
Chapter 8 M ODELING V EGETATION
Modeling of Single Plants If the positions are known, the respective single plants must be generated. Corresponding methods were already described in earlier chapters. The growth parameters of an individual plant are indicated here by parameters that beforehand were defined within the specification of the plant distribution. At the end of the step, the geometry of the plants is placed in the intended places. Image Generation Having the desired geometric data, in the last step single images or animations can be generated. The rendering itself is described in the next two chapters. In this chapter solely the necessary preparatory work on the plant models with respect to reducing their geometric data will be addressed. Similar pipelines have already been used for the simulation of bird swarms [175], complex phyllotaxial patterns [67], and for morphogenetic production processes [64]. In each of these cases, the simulation and specification were implemented with much simpler objects than the later visualization would have required. Blumberg and Galyean extend this procedure to the interaction of autonomous animated agents in simulation applications [19]. The pipeline structure in this form has also disadvantages. For example, to insert a control loop is a very laborious process: If, during an animation, the number of plants has to decrease because of their competition for light, the corresponding result of the light simulation must be brought back into the simulation for the specification of the plant distribution. In the pipeline then all steps up to the rendering stage must then again be run through. In a practical implementation faster ways would have to be found for efficiency reasons. But since the pipeline structure lends itself to a clear representation for the solution of the entire problem, its principle is maintained in this chapter.
126
The steps necessary for the pipeline can be divided more precisely into individual modules corresponding to software modules that are combined to form an open system architecture. This architecture resembles here an implemented system that was presented in [39]. Even if some improvements have to be made, the system proved its applicability in handling complex data, as shown by the illustrations in Chap. 9. The module for terrain modeling produces as an output a file with a height field. This is used together with the soil data as the basis for generating plant positions. The procedures provide in each case a so-called ecosystem file. It contains the positions and parameters of all plants as well as their names. Small plants such as herbs and crawlers are defined here as accumulations. Thus, using the program, for the production of meadows many tufts of grass are manually merged into an accumulation. These are then denoted as a group and assigned a plant name. Later these groups are referenced only as a whole in the ecosystem file, which simultaneously controls the size of the data. Currently some of these tasks are still implemented manually, though, at a later point, they will be automated. It has to be decided, for example, which plants in
Section 8 M ODELING OF PLANT COVER
Figure 8.1 Open system architecture for modeling and visualizing ecosystems
a plant association are visually important when characterizing the whole association and therefore should be modeled; which of the plants could be omitted or only suggestively sketched; or if a number of similar biotope types could be, for visual purposes, represented by only one prototype that sufficiently resembles all the others. These preparatory steps are decisive in decreasing the total number of individual plants and associations to be modeled. The geometry-processing algorithms are more advanced: In order to reduce the quantity of the geometric data, the plant models are quantized. In a meadow, for example, it is not necessary to generate and store each small plant individually. Almost the same visual impression can be produced if a handful instances are individually bent, twisted, and slightly scaled, and are distributed randomly over the meadow. The method for the representation of many individuals by a few instances is called quantization. With this trick the amount of data can often be reduced to a hundredth or even to a thousandth of the original data. Thus for a typical complex scene with 100,000 plants not 10-GByte, but only a 150MByte memory is needed, an amount of data that can be processed without any problems by modern desktop computers. Another important step for reducing the data is to work as much as possible with procedural model descriptions. The position information and the actual geometry of the plants should be generated immediately before rendering. Only the data necessary for producing the plant geometry is processed beforehand, which constitutes only a small fraction of the total geometrical data. This advantage was first described by Smith in a work about fractals [201]. It facilitates the handling of the systems substantially. The quantized ecosystem file is submitted, together with the selected plant representatives, to the rendering system, whose mechanisms are described in the next chapter. In the following we will deal in greater detail with specification
← quantization
127
Chapter 8 M ODELING V EGETATION
methods for plant distributions. First, direct methods are described, then simulation methods, and toward the end of the chapter the quantization methods for the geometrical data are discussed.
8.1
GIS →
aerial photographs →
128
Direct Specification of Distributions
Within the pipeline for the production of geometric data, also the plant distribution is divided into substeps. In a first step, areals are specified and attributed with the characteristics of their vegetation. This step is usually implemented using a geographic information system (GIS). Due to an uniform geodetic reference system, this type of system allows the storing and processing of landscape data independently of its physical resolution. In a GIS geographical data of different logical levels is arranged using a reference coordinate system. In parallel to the digital terrain models, in which the geometry of the landscape – for example, a synthetically produced elevation model – is stored, aerial views can be included, and measured values, single objects as well as many other data types can be called up for visualization and simulation. All geometrical objects, such as roads, houses or individual regions (stands) here are assigned attributes. These can be used for retrieval queries or visualization. For the production of plant distributions the stands of the plant communities occurring in each case are indicated as attributes. The final result of this rather abstract modeling is therefore a file with a set of polygonal descriptions of individual stands, in which only one plant community occurs in each case. Each individual stand is filled in the next step with plants. This procedure corresponds to the module in Fig. 8.1 that generates the ecosystem file with the list of the plants as the final product. As already mentioned in the introduction, there are different options for these techniques. In the following we differentiate between explicitly given plant distributions and those that result from generation procedures. The production of a complex ecological system is relatively tedious; it allows however, dealing in detail with constraints as well as local characteristics. Therefore, it is a preferred methodology with smaller or intricately covered surfaces. Explicitly given distributions are advantageous if large areas must be filled or if human intervention modifies the natural development of ecological systems. Often also a combination of both techniques is meaningful, such as when larger elements on a plane (e.g. trees in a meadow) are explicitly to be modeled and the remaining plants have to be grouped in between them. An explicitly given plant distribution may, for example, consist of an analysis of satellite images or mappings produced by aerial photographs of real existing ecological systems. The satellite Landsat supplies images in several channels from the infrared to the ultraviolet range. Since many species possess characteristic reflection characteristics in different frequency ranges, their position
in a plant community can be obtained from the evaluation of these reflection characteristics. In a mapping, positions and plant types as well as further parameters are stored as, for instance, the growth rate. The resulting distributions can be used as starting points for areas to be filled in a similar way. For example, they can be used in particular in places where uniform distributions are required that are not bound to special local conditions.
Section 8.1 D IRECT S PECIFICATION OF D ISTRIBUTIONS
Iterative Production If the distribution patterns are not explicitly given, but their spatial statistical characteristics are known (see Sect. 3.5), then random-number generators can be applied for their production. This can be implemented in two ways: either points are generated one after the other and then inserted into a point set, until the given specification is reached, or a point set is changed in such a way that its statistical characteristics correspond to given values. Both procedures are outlined shortly in the following. The first procedure class is termed iterative, the second adaptive. An approximation of a Poisson distribution can be generated iteratively by a random generator, in that each coordinate is selected randomly independent from the others. The mean per region is determined by the number of points, divided by the area surface. Algorithms of this type are also called DartThrowing algorithms. Such a distribution can also be generated directly: a random process generates a radial increasing Poisson distribution at a given point density λ after the following scheme [141]: we require independent and equally distributed unit vectors ei as well as independent and equally distributed numbers νi ∈ [0, ..1]. The points pi are generated over qi pi = λ > 0, i = 1, 2, ..., ei , πλ
← Poisson distribution
← Dart-Throwing algorithm
where q1 = − ln ν1 ,
qi+1 = qi − ln νi+1 .
The point set has then the density λ and is arranged according to the increasing radius. Variations of this procedure can be used also for the production of other distributions; for example a spatial anisotropy can be modeled by a change of the unit vectors ei . To create a Poisson disk distribution is somewhat more complicated. Due to the local characteristic of the points – no other point may be within a specified radius r around each point – direct production is difficult. Here, a variant of the dart-throwing technique can be applied. Again points are added iteratively to the point set; now, however, the system checks whether each point to be inserted is located within a disk surrounding
← Poisson disk distribution
129
Chapter 8 M ODELING V EGETATION
one of the so far given points. If not, then the point is inserted; otherwise it is rejected. The procedure works well for distributions whose point densities are so low that the Poisson disk criterion with given r can be easily satisfied. If, however, many points are already present in the point set, the fact that only a few positions are available for other points slows down the efficiency of the algorithm rapidly.
Adaptive Production
optimization →
Apart from the adjustment of a given distribution to a density function while maintaining its random characteristic, it is also possible to change the statistical attributes directly. An important example in connection with plants is the transformation of a Poisson distribution or otherwise given random distribution into a Poisson disk distribution. For this process the problem is more generally approached and converted into an optimization task: A quantity of points p1 , .., pn is to be distributed over a region, so that the region is divided into subregions, as equally sized as possible. To achieve this, a cost function is introduced, which is to be minimized by optimization: F (p1 , ..., pn ) =
n i=1
Voronoi region →
Lloyd’s method →
130
f ( p − pi ) φ(p) dx.
(8.1)
Vi
Here, φ(p) is a weighting function that indicates the local weight of a region and, thus, its desired point density. The term f ( p − pi ) describes a simple cost function on the basis of the Euclidean distance. The global nonlinear optimization of a larger number of point objects based on such a cost function is very expensive. Fortunately, Eqn. (8.1) can be solved by local optimization on the basis of Voronoi regions (see [20]). Each point pi in the point set is assigned its respective Voronoi region. This is an area surrounding pi that contains all points of the plane that are closer to pi than to every other point of the given point set. For the Euclidean distance function the Voronoi regions are bounded by convex polygons; altogether all Voronoi regions of the point set form a complete partitioning of the plane. The local optimization uses an iterative method, in which each point is successively moved into the centroid of its Voronoi region. This is called the generalized Lloyd’s method. It ensures that after each iteration the optimization goal is reached for the point’s local region. Open regions, which develop at the border of the point set, must be closed before, for example by intersection with the boundaries of a given definition area. This process is iterated until convergence is reached, i.e., the points form the desired distribution. If the process is continued for a huge number of iterations, a pattern would develop, in which all Voronoi regions are equally large: a hexagonal grid. Although this seems to always be the result in practical attempts, a convergence
of the procedure to this kind of global minimum for the general case is analytically not yet proven [49].
Section 8.1 D IRECT S PECIFICATION OF D ISTRIBUTIONS
Figure 8.2 Application of the generalized Lloyd’s method to a point set: (a) initial points with Voronoi regions; (b) movement of points; (c) distribution after 20 iterations
(a)
(b)
(c)
In Fig. 8.2 the algorithm is applied to a small point set. At the beginning of the iteration, the Voronoi regions have a very irregular form. Toward the end we find almost equal pentagons and hexagons. In Fig. 8.4c the procedure is applied to the positioning of grass tufts obtained from an image drawn by the user that was discretized. The procedure can be extended to general objects. The Voronoi regions can be computed similarly; instead to a specific point now the distance to a whole object is defined. However, the areas are now not necessarily convex any longer, and in some cases the optimization also no longer converges in an even manner. Additionally to the displacements, with expanded objects also a rotation can be implemented, in order to further optimize the distribution. In particular, the procedure can also be applied hierarchically. Thus, for example, in the first step large objects of a population can be distributed; these remain stationary, while smaller objects are iteratively distributed around them.
Figure 8.3 Hierarchical distribution of objects: the points with a circular marking are generated first. The other points are inserted later and the set is then relaxed while the first points are held in a fixed position. (Image courtesy of Stefan Hiller)
This extension of the above methodology is being examined by Hiller et al. in [87]. In Fig. 8.3, the procedure is demonstrated by a synthetically generated distribution of larger and smaller objects, both arranged in Poisson disk distributions, but with differing disk sizes.
131
Chapter 8 M ODELING V EGETATION
Interactive Specification The interactive specification of plant associations is necessary in all those places, in which by human intervention the natural development of the plant associations is altered. Some examples are gardens, parks, urban landscapes, and large parts of what we call “cultural landscapes”. Thus the specification encloses many different areas that are dealt with in landscape-architectural planning. As already mentioned above, there are also cases in which one would like to mix explicitly given plant distributions with others that were obtained by simulation. In some cases, particular distributions not controlled by humans have to be studied, such as if a biotope is to be simulated, that after planting is left to its natural development. Since plants can only in a few cases be positioned individually, efficient specification methods for the modeling of whole populations must be found. In conjunction with this problem, graphical specification proved to be a powerful tool. In this case, the user draws images that are converted afterwards by the system into input data in the form of plant positions and parameters. Similar to the soil factors mentioned above, almost all parameters of plant populations can be specified this way using images. To specify the density of the population and/or further values such as orientation of the plants or their growth rate, the user paints a grayscale value image. These images can be understood as discrete pixelwise approximation of functions with two variables. Per picture minimum and maximum values are indicated that correspond to the black and white pixels. Intermediate values are computed through interpolation: f = fmin +
Floyd-Steinberg algorithm →
132
(p − pmin ) × (fmax − fmin ) . pmax − pmin
Here, fmax and fmin are maximal and minimal function values, pmax and pmin maximal and minimal pixel values, and p the actual pixel value. The conversion of the grayscale values into the positions takes place in the first step. For the production of the points a so-called half-toning algorithm is applied, which is also used in printing techniques for producing grayscale images with discrete black points. There are a number of such methods (for an overview see [221]). For specification of plant distributions, however, only such algorithms are useful that produce uniform points that are varied in their density for the production of the gray tone. The Floyd-Steinberg algorithm [65], a classic in half-toning, provides good initial values for this purpose. To transformation the grayscale value image into discrete black and white pixels, all pixel values above a given threshold are rendered in white, all others in black. The error made during this process is distributed in both cases onto the neighbors. 3 16
·
5 16
7 16 1 16
(8.2)
Section 8.1 D IRECT S PECIFICATION OF D ISTRIBUTIONS
(a)
(b)
(c)
Figure 8.4 Graphical specification for part of a garden: (a) user-defined grayscale value image; (b) given growth parameter for grass; (c) computed positions; (d) parameterized grass tuft with variable number of daisies; (e) resulting image
(d)
(e)
In Eqn. (8.2) the actual pixel is at the place of the point. The error is distributed to the right neighbor and the three neighbors in the next row. An example clarifies this process: If the threshold has a value of 100 and if the pixel has the value 111, then it is set to 255 (white) and the error amounts to 144; the gray tone of the right neighbor is therefore increased by 144×7/16 = 63, and accordingly for the others. The black pixels generated with this procedure are interpreted as positions of the plants that are to be simulated. Thus, more plants develop in the places that were dark in the gray tone image. After application of the procedure, however, the plants are on a square grid and do not yet have the required distances to each other. Consequently it is necessary to change the positions slightly in a second step in order to obtain random distributed points with almost uniform distances to their next neighbors. This guarantees an optimal covering and also corresponds to the distribution patterns of many species such as grass. The appropriate mathematical distribution again is the Poisson disk distribution; hence, the Lloyd method for the adaptive production of such distributions also finds here an application. Figure 8.4 shows the entire process of the graphic specification using a part of a garden as an example. The user draws the images for the positioning of the individual species as in Fig. 8.4a. In another image the vigor for the grass tufts in the lawn is defined. To demonstrate the modeling ease, the grass tufts are parameterized in the plant modeling system in such a way that the number of
← Poisson disk distribution
133
Chapter 8 M ODELING V EGETATION
daisies visualizes the vigor. In Fig. 8.4e, we finally see the result with a palm tree manually inserted. At the positions where a large vigor was specified, many daisies can be seen.
8.2
Simulation of a Plant Population
In Sect. 3.6 we discussed different models with which populations can be simulated. In contrast to the direct specification, here the plant distribution is the result of the production algorithm that replicates the development history of a population. The goal is to obtain a simulation of a population in a balanced condition, and to transfer it into images. In the following we will take a closer look at the implementation of two such models. Both were used to generate synthetic plant ensembles. The first deals with a single population, while the second simulates an entire association. An essential process in a population is the competition for the resources such as light. This process leads to typical changes in a population over time, which are simulated here. In the next paragraph, this is extended to a plant association with several species and locally varying growth conditions. Typically, the number of plants in a population decreases after a certain time due to the growth of the individual plants. According to Eqn. (3.17), which described this process, the density of a population reaches a maximal value, and then stabilizes itself.
Figure 8.5 Number and weight (both in logarithmic scale) of a population according to the power law. The marked states correlate to the respective parts of Fig. 8.6.
In actual plant populations, this maximal density Dm does, however, change over time. The taller the individual plants grow, the less individuals can survive per region, since the quantity of resources (light, water, nutrition) is limited. Dm can empirically be determined using −k , w = b Dm
(8.3)
where w is the average dry weight per plant, and b is a constant. By applying the logarithm, the more typical notation is obtained log w = log b − k log Dm ,
(8.4)
B = log w + k log Dm .
(8.5)
or 134
In this equation, B = log b and k are constants with k having the value of approximately 3/2. If we draw the logarithm of the plant density against the logarithm of the average dry weight, a straight line results (see the solid line in Fig. 8.5). This relation was first described by Yoda et al. [235]; it is called the law of the −3/2 power.
Section 8.3 S IMULATION OF A P LANT A SSOCIATION
Figure 8.6 Simulated growth of a plant population following the self-thinning process. Red plants die, light-green plants are dormant (Courtesy of P. Prusinkiewicz)
(a)
(b)
(c)
In a simple simulation process, plants are randomly distributed on a plane in the form of a small circles with a random diameter [61]. The growth takes place through a successive increase of the circles. If two circles collide, the smaller of the corresponding plants “dies”. Plants that reach a certain height become dormant, and later die also. At the beginning of the simulation, the sum of the logarithmic dry weight and the plant density is below the maximal value given by Eqn. (8.5), that is why the seeds at first develop unconfined. As the graph approaches the straight line, the number of plants decreases until the modification of the population only takes place along the line given by the power law. Figure 8.6 demonstrates this kind of self-thinning process in a part of the population. Starting with 20,000 young plants in total, here shown are three stages of the population.
8.3
← simulation
Simulation of a Plant Association
A somewhat more intricate model describes the development of a plant association with different species. In [39] open L-systems are used for this process, though simulation can also be programmed in a more simple way using other methods. Each species is described by a number of values. The values include the rate of new plants per simulation step, the maximal size of the plant plus the associated circle diameter, the average growth rate, the probability of the plant to die when the competition with another plant is lost, as well as the preference for dry or wet locations. A single plant is characterized by its type, its individual size, and its growth rate. The growth rate is obtained from the interval [0..1], and is determined by multiplication of a random value with the local water content of the soil and the plant’s preference for wet locations. The ability to assert itself in the competition for growth is the result of the growth rate and the relative size.
135
Chapter 8 M ODELING V EGETATION
Figure 8.7 Simulated plant population of eight different species on a terrain with varying water concentration (see Fig. 7.7d) and resulting image (Courtesy of P. Prusinkiewicz, M. Pharr and R. Mech)
In the case of the intersection of two plants and their corresponding circles, their competitive abilities are compared. The weaker plant is dominated by its competitor and dies. This takes into consideration that some plants may also survive regardless of their competitors demanding a greater part of the resources. By adding new plants per simulation step, the initial plant cover evolves after some time into a continuous developing plant association that adjusts to the dynamic environmental changes. Figure 8.7 shows a snapshot of this type of simulation. Eight species are competing for propagation in a terrain described by Fig. 7.7. Plants with a preference for wet soil, here drawn in dark blue, prefer to spread in wetland. The final result shows some 10,000 plants. In this image a total of approximately 2 billion polygons exist, since no data-reduction techniques were applied.
8.4
Reduction of the Geometric Data
The preceding sections focused on the production of individual plant positions and parameters in complex plant communities. For rendering, however, the quantity of the geometrical data must be drastically reduced. The starting point here again is a list L of the plants, which is generated by the simulation models or graphical specification algorithms. L, for example, has the following form: %Descr: % x y z ax ay az 135 279 10 0.0 0.0 47.0 127 281 11 0.0 0.0 23.4 120 271 10 0.0 0.0 0.0 ...
136
sx 1.1 1.2 1.0
sy 1.1 1.2 1.0
sz vigor domin 1.2 1.2 0.0 1.2 0.9 0.3 1.0 1.1 0.0
name Urtica Urtica Poplar
Typically one works with hundreds of thousands of plants, and, without compression, L consists of many megabytes. Each line of the list describes a plant of the species (name) with position (x, y, z), orientation (ax, ay, az), rela-
tive size (sx, sy, sz) and relative growth rate (vigor) as well as dominance (domin) by other plants. For rendering, L is processed line by line, and per plant a geometry production algorithm is called, which generates the geometry of the plant from a previously generated database with all the actual plant parameters (here only the parameters “vigor” and “domination” are shown). Within this process large quantities of geometrical data are produced, also the relatively complex geometry production for many plants adds up to unmanageable computing times. The form variety produced with this method – each plant is given an individual appearance – is usually, however, not necessary for the graphical representation. Empirical investigations show that for a good graphical representation of a plant population some few individually bent and easily scaled copies are already sufficient. In the plant community which has to be represented, it is adequate to produce per species some representatives, and to distribute replicas at many places in a population. In the illustrations in this and the other chapters therefore we usually worked with 10 to 15 different representatives. If additionally the number of total species to be represented in the image is limited, some dozen geometric models are usually sufficient to generate the impression of a complete synthetic landscape. The representation of many individual plants that are copied from a few representatives and are then positioned in many different places throughout the scene is called approximate instancing. Instancing procedures were already used much earlier for the compact representation of complex botanical scenes (see [203]). As mentioned before, the general pattern originates from Sutherland [216] and was developed in 1963. A further important step for its use with natural objects was the realization by Smith [201] that the sets of random numbers in stochastic processes for the production of fractal mountains and of particle-based trees can be significantly reduced without incurring visible changes. Hart later developed a procedure for the automatic Instancing of a subset of L-systems [83, 84]. Approximate instancing, the representation of objects using similar objects, was applied for the first time by Brownbill [23] to plant associations. In [39] the procedure was extended to a multidimensional variant that combines the vector quantization with a weighting function (see also [229]). That makes it possible to produce a larger number of representatives for visually important plants. Back to the list of plants: Within the instancing process, L is converted into a new list L . This list has the same length, but a significantly reduced number of different objects, since it now no longer refers to individual geometry, but to the representatives. These representatives are stored in a second list R. To generate the lists, the parameters of the plants of L are divided into two groups. One group of parameters describes position, orientation, and scaling of the plant, and thus can later be generated using an affine transformation of the representative. The other group contains all other parameters. The list R consists of the descriptions of the representatives. In the next paragraph we will explain how it is obtained. In advance it can be said that the
Section 8.4 R EDUCTION OF THE G EOMETRIC DATA
← rendering
← approximate instancing
← list of instances: L
137
Chapter 8 M ODELING V EGETATION
form of this list is similar to the original list format, only this time all plants are stored in a canonical form, i.e., in the coordinate origin with uniform scaling and orientation. However, the nonaffine parameters of the plant models – thus those of the second group of parameters – are located in this list and are used for generating canonical plant geometry. R has the following form: %Descr: % x y z ax ay az sx sy sz vigor domin name 0 0 0 0 0 0 1 1 1 1.2 0.0 Urtica 0 0 0 0 0 0 1 1 1 1.2 0.3 Urtica 0 0 0 0 0 0 1 1 1 1.2 0.5 Urtica 0 0 0 0 0 0 1 1 1 0.9 0.0 Urtica 0 0 0 0 0 0 1 1 1 0.9 0.3 Urtica 0 0 0 0 0 0 1 1 1 0.9 0.5 Urtica ... 0 0 0 0 0 0 1 1 1 1.1 0.0 Poplar ...
rname Urtica1 Urtica2 Urtica3 Urtica4 Urtica5 Urtica6 Poplar1
Additonally, each representative receives an explicit name, here stored in the entry “rname”, which is referred by the entities in list L . When processing R, the geometries of the representatives are generated according to the line entries and stored together with their names. Now the list L no longer refers to an individual geometry. Rather it contains instancing information, which states which representative from R is to be positioned at which place, and how it is to be oriented and scaled. The nonaffine parameters have disappeared out of the list, since they were already used for the production of the representatives, instead the affine transformation is applied to the already created geometry of the representative. %Descr: % x y z 135.0 279.0 10.0 127.0 281.0 11.0 120.0 271.0 10.0 ...
rendering →
138
ax 0.0 0.0 0.0
ay az 0.0 47.0 0.0 23.4 0.0 0.0
sx 1.1 1.2 1.0
sy 1.1 1.2 1.0
sz 1.2 1.2 1.0
rname Urtica1 Urtica5 Poplar1
The advantage of the new data description is not only the smaller amount of the total geometry that has to be produced, but also the increase of the production speed. For setting up a scene only the representatives must be produced in the form of geometry data. The preprocessed geometry is then handed over to the graphics hardware. Now per plant position only one affine transformation is to be produced, instead of having to generate the geometry each time. This type of function can be denoted using homogeneous coordinates using a single matrix multiplication. With the use of graphics hardware, such operations practically do not require any additional time expenditure. Now we come back to the question of how the appropriate plant representatives can be obtained from the models in L. The answer is a quantization procedure that is found in different implementations in mathematics as well as related fields.
Vector Quantization Vector quantization [73] works on a set P of points Pi = (pi1 , pi2 , ..., pim ) in IRm . The individual coordinates of the points designate numeric parameters of the individuals, such as, in the above list, the growth rate or dominance. The method works for any number m of parameters and searches for the mass centroids of subsets of the points, thus places, at which particularly many points are located. Each center is then represented by a point that here stands also for a particular plant representative and is used to approximate a number of plants as an average model. In computer graphics, vector quantization is a preferential method for image quantization [85], which in this case consists of points representing the color values of the pixels (red, green, and blue as numerical values). These color values should be represented by a minimal set of colors, in order to produce indexed images using a color table. Other applications in vector quantization involve the reduction of the storage requirement for textures [12] and light fields [115]. For the sake of clarity, we describe the process with a two-dimensional point set. It is divided sequentially into rectangular areas, so that an optimal homogeneous allocation of the points develops in the areas. For this, the bounding box of the actual point set is recursively divided along the respective longer edge. Per area the point set median is searched for with regard to the edge that has to be divided. If the plane is divided at this point, equal numbers of points are in each of the two parts (median cut algorithm).
Section 8.4 R EDUCTION OF THE G EOMETRIC DATA
← image quantization
← median cut algorithm
Figure 8.8 Median cut algorithm: (a) initial partitioning at the median regarding x-values; (b) areas after a number of divisions with representatives (red panes) at the center of gravity of all points in a box
(a)
(b)
At the beginning of the procedure, the number of areas is defined. After respectively many areas have been generated, the representative is positioned at the centroid of all the points in an area. In a plant population, the representative is thus assigned the attribute and thereby also the respective appearance resulting from the centroid element. Figure 8.8 demonstrates this process.
139
Chapter 8 M ODELING V EGETATION
Hierarchical Instancing Instancing can take place on several levels. Thus not only can different plants be represented over a single geometry, but instancing can also be implemented within tree structures: Leaf instancing is used to define a small branch; branch instancing is applied to define a larger branch, and so on. This way, optimal compression is achieved for the geometry of a tree. The concept can be extended in that for each instancing object several representatives are generated to increase the variability of the total geometry. This step was applied in [132] in order to simplify an image-based rendering method.
8.5
tiling →
Instancing of Plant Populations
For a reduction of data, but also especially for lowering the modeling effort, it is very helpful to render a large plant population by combining many equal base elements. Doing so, the region or space that a population usually inhabits, is divided into squares using a plane division method. On each square, i.e., each tile, a small part of the population is generated. The total population results from the combination of the squares, which are iterated over the plane. The time used for storing the data decreases hereby considerably. Aside from the representatives of the plants, now only the positions of the individual tiles must be stored. Consequently, for rendering significantly less data needs to be processed. Also, per tile some preparatory steps can be performed to speed up image generation. To prefabricate the distribution for the use of tiles, specification and simulation methods must be adjusted. However, in a Poisson distribution, this is trivial, since the positions to be distributed randomly for the plants are simply placed into the tiles analogously to the total distribution. The tile iteration then again produces a distribution similar to a Poisson distribution. The task becomes more intricate when creating a Poisson disk distribution. In order to yield the criteria of the circle panes, the edges of the tiles must be coordinated; this can be accomplished by using an extension of the dart-throwing method or by applying an extension of the local optimization mentioned above.
Figure 8.9 (a) Local optimization of a tile; (b) periodic arrangement of tiles; (c) the whole set results again in a Poisson disk distribution
140
(a)
(b)
(c)
The application of the already-mentioned dart throwing mechanism is problematic here due to the additional boundary conditions. It decreases the number of possible positions at the edges of the tiles, and therefore makes a uniform coverage difficult to obtain. An easier method is an extension of the adaptive production method for the Poisson disk distribution, as demonstrated in Sect. 8.1. The edges of the optimization area, which up to now were given by the population boundaries or the boundaries of the given area, are now eliminated. Instead plant locations are cyclically continued beyond the edges, meaning the plane behaves as if it was the surface of a torus.
Section 8.5 I NSTANCING OF P LANT P OPULATIONS
A point that slides over the left or lower tile edge during tile iteration appears on the right or upper edge. If continued in this way, all Voronoi regions can be closed, and the iteration converges. The edges now are no longer straight lines, but instead show folded jags. Figure 8.9a illustrates the result of the optimization on the tiles. A total of 200 points were distributed here.
Aperiodic Tiling Unfortunately the eye is extremely critical in the recognition of repeating patterns. It will always realize the periodicity of simple tiling, in particular with flat viewing angles, as is evident in the sunflower field from Fig. 8.10b. Here a tile with 160 sunflowers was iterated over the plane. Despite the large number of plants per tile, the repetitions are clearly recognizable. Tiling, which does not form a periodic pattern, provides the solution for this problem. The question of whether an aperiodic tiling of the plane with a finite number of square tiles could be produced using a deterministic tiling rule was disputed in mathematics for some time. A first result was achieved in 1966 by Berger [14]. He used 20,426 tiles and proved for this number the aperiodicity, which contradicted the converse assumption of Wang in 1961. Later he found a set of 104 tiles, and Culik and Kari, independently of each other, reduced this number to 13 tiles [99, 106]. Stam [206] was the first who applied this kind of tiling to simulate textures in computer graphics. In connection with the positioning of plants it is of less interest, however, whether tiling results from a stochastic process or not; therefore we speak of of a nonperiodic tiling, in contrast to an aperiodic tiling that cannot tile the plane periodically. The corresponding production algorithms need a tile set with the attribute that in the process of tile arrangement always at least two tiles are selectable from the tile set in order to join them to the already-existing ones. If this selection is performed at random, usually no periodicity will appear. In principle, two tiles can be distributed randomly over the plane without any periodicity. However, problematic in this method are the boundary conditions at the tile edges: since, in the case of two tiles, the own opposite side as well as the respective border of the other tile could lie on all borders of each tile, we would have two conditions that need be fulfilled.
← boundary conditions
141
Chapter 8 M ODELING V EGETATION
These conditions, in combination with only two options for the selection of the tiles themselves, lead to visible structures at the tile borders that can only be made invisible by adding more tiles.
(a)
(b)
Figure 8.10 (a) Small group of plants on two tiles; (b) plant positioning with a periodic repeated tile of 160 plants, and (c) with eight nonperiodic repeated tiles of 20 plants each
142
(c) However, in addition, with an increasing number of tiles and arbitrary combinations, the number of boundary conditions increases also, which in the end results in ever more restrictive patterns along the tile borders. Therefore, it is necessary to limit the combination of tiles. This can be done using a color coding of the borders: Only borders with the same color may be aligned. If a suitable set of tiles are used, and if the point production is adapted accordingly, then the repetition effects can be significantly decreased, as can be seen in Fig. 8.10. In part (c) a plant population on eight tiles was generated, which is repeated nonperiodically.
How does this method work? In the above case of two tiles that can be combined arbitrarily, this would correspond to a color coding with only one color for vertical and horizontal borders (see Fig. 8.11a).
(a)
(b)
(c)
(d)
(e)
Section 8.5 I NSTANCING OF P LANT P OPULATIONS
Figure 8.11 Tile set with color coding of the borders: (a) two tiles; (b) set of eight tiles with two horizontal and two vertical colors; (c) 12 tiles with two horizontal and three vertical colors; (d) 18 tiles with three horizontal and three vertical colors; (e) sample tiling for set of subimage (b); (f) color-coded tiles on the plane, no repetition patterns can be recognized
(f)
If two colors each for horizontal and vertical borders are used, then four possible combinations of colors result for a corner to which a new tile is to be set. Therefore at least eight tiles must be present in the tile set in order to always have the selection possibility (see Fig. 8.11b). In the case of two horizontal and three vertical colors 12 tiles are needed; for three horizontal and three vertical colors 18 tiles. A nonperiodic tiling is generated by the following algorithm. In the first step a line of tiles is generated by successively adding tiles to an initial tile: 1. Choose a random tile. 2. Select a tile from the tile set with its west color corresponding to the east color of the already-selected tile and place it on its east side. Now the following lines are generated by successively adding new tiles to the already-existing line. 1. Select a tile from the tile set with a south side that corresponds to the north side of the leftmost tile in the line above.
143
Chapter 8 M ODELING V EGETATION
2. Select successively tiles with a south color that matches the north side of the tile below, and a west color that matches the east color of the selected tile in the previous step In Fig. 8.11e a nonperiodic tiling of the plane is shown; in Fig. 8.11f all the tiles from the tile set are colored individually – the border colors are removed here – so that we can visually analyze the generated patterns.
Point Production for Nonperiodic Tilings Similar to the point production on a single repeating tile we have to proceed for a set of tiles. The only difference here is that for computing the Voronoi diagram, the points cannot be repeated cyclically over the tile borders. Instead we have to fit them to all possible points that are on tiles that correspond to the actual border colors. This is implemented in such a way that for the calculation of the movement of a point using the Lloyd’s method, we determine all Voronoi regions that occur if the tile is combined with all tiles with matching border colors. The movement is then determined using the average of all movements indicated by the Voronoi regions. In Fig. 8.12, a set of eight tiles is shown with the resulting point set.
Figure 8.12 Eight tiles with points and corresponding distribution if tiles are combined
144
This method of generating instances makes sense, as can be seen in Fig. 8.10. As mentioned above, a comparison is shown of a tiling with one tile of 160 sunflowers and a set of eight tiles of 20 plants each. Though the same number of different models is used, the nonperidoc tiling shows no repetition artifacts. The method offers a way to populate an infinitely large plane with a very limited number of objects (eight or more tiles with corresponding plant models) without any visible patterns. If the plant coverage is to be changed locally, new tiles must be added or the corresponding plants have to be inserted manually.
Texture Synthesis for Nonperiodic Tilings Aside from using the tiles for the efficient production of plant positions, the nonperiodic tilings can be applied in many other places. One example is texture synthesis. For the photorealistic rendering of landscapes often a realistic ground texture has to be used. Here again we want small images that are to be repeated on the ground without repetition artifacts. Nonperiodic tiling can be used for this purpose. A source image must be given that is then converted into a set of eight or more tiles that are repeated nonperiodically on the plane.
Section 8.5 I NSTANCING OF P LANT P OPULATIONS
Figure 8.13 Automatic production of tile textures: (a) textures are chosen randomly from a source image; (b) for the four colors of a tile four textures are used; (c) the tile is created through combining the textures; (d) tile set of 18 tiles (here six colors are used)
(d) The method is based on an algorithm for texture synthesis proposed by Efros and Freeman [54] in which a large image is created by successively adding small square tiles that are obtained randomly from a source image. The tiles are assembled line by line. For combining a new tile with the already-existing image, an optimization process tries to generate a best fit between the tiles. This is done by defining an overlapping region in which a path is searched in a way such that the color differences of the two images along the path are minimal. Doing so, it is possible to generate from an appropriately chosen source image a large image that is quite similar in its characteristics.
145
Chapter 8 M ODELING V EGETATION
This algorithm is now adapted to the tiles. At random as many images are selected from the source image as colors are given by the tiles set (see Fig. 8.13a–b). The images are selected as diamond-shaped regions – 45◦ -rotated squares.
(a)
(b)
(c)
(d)
Figure 8.14 Nonperiodic tilings with textures: (a)–(b) textures generated using a set of eight tiles, shown is a tiling with 64 tiles in total; (c) and (d) manually created labyrinths
These sources are now connected to form a tile with the corresponding colors by finding the optimal paths using the Efros and Freeman algorithm (see Fig. 8.13c). Here an error is determined that is minimized for a number of combinations of source images. If the system finds a combination with a small overall error, the user has to verify visually if the resulting tile set does not provide visible structures. More details can be found in [30]. Figure 8.14 shows two sample textures as well as two manually created patterns.
8.6
146
Modeling of a Sample Scene
Our concluding example demonstrates the simulation of a complex plant scene. Here we applied some of the previously discussed instancing methods, in par-
ticular the approximate instancing procedure, whereby the terrain from Fig. 7.7 serves as a basis. The parameterized data base of different species is generated using the Xfrog modeling system (see Fig. 8.15). In the scene shown below, the production of the apple tree model took several hours. All other objects were created more quickly, partially they could be extracted from other scenes.
Section 8.6 M ODELING OF A S AMPLE S CENE
Figure 8.15 Sample models for a complex plant scene: (a) stinging nettle; (b) reed; (c) apple tree
(a)
(b)
(c)
For the rendering of the plant population, density functions were specified graphically. The stinging-nettle population in Fig. 8.16 serves here as an example. To parameterize the growth rate in this illustration, the height image was used, so that the specimens located in the lower river valley reflect a higher growth rate than those that are situated in comparatively dry regions on the small hills. Large objects, such as the apple trees, were added manually into the scene. Figure 8.16 Simulation of a population of the stinging-nettle: (a) height image of the terrain; (b) image of the planned creek; (c) density function of the population; (d) generated plant position
(a)
(b)
(c)
(d)
The already mentioned approximate instancing was applied to the completed populations. For each species a different number of representatives was selected. The values are indicated in the table of Fig. 8.17. The number of polygons without instancing amounts to 16.6 million for the scene; with instancing there are only one million. Thus, all in all, a reduction factor of 16.6:1 is obtained. If further reducing the representatives, the reduction factor can be improved. In isolated cases, one representative is sufficient, so that the expenditure for the production of a scene is confined to the modeling and simulation of only one plant.
147
Chapter 8 M ODELING V EGETATION
Figure 8.17 Number of representatives and instances in the example scene
All in all, instancing procedures provide a good basis for the handling of geometrical data in natural scenes. The remaining data typically is of a size that is also manageable with standard computers. Plant Apple Grass Reed Stinging nettle Dandelion Buttercup
Representative 1 15 140 10 10 10
Instances 4 2577 140 430 55 2751
In the next chapter, we will introduce procedures for rendering the geometric data. In this context there are also approaches to additionally reducing the data with so-called level-of-detail modeling methods. While these approaches do not facilitate data reductions for the geometrical models of the representatives, they do, however, significantly reduce the data to be generated per image. We will demonstrate that this kind of methodology allows us the rendering of complex ecosystems in near real time.
Figure 8.18 Complete scene consisting of six species. The image resolution is 2560×1720, the time for loading of geometries and for rendering is ca. 75 min.
148
9
Rendering Creating “Virtual Reality”
In the previous chapters, single plants and vegetation as a whole was described more or less from a botanical aspect. We discussed several methods that were designed to generate single plants and others that combine plant models to form plant communities and associations. To actually generate a realistic-looking image of a landscape, we must transform the so-far produced geometric data into the pixels of an image. This is done similar to shooting with a real camera, whereby the scene is projected onto the film material through the lens. In synthetic rendering, the geometric data is projected analogously to the real camera using a mathematical projection onto the image plane, and the illumination of each single surface is computed. To determine the surface illumination, approximations of physical lighting processes are used. The illumination values are then transferred onto the pixels of the computer image, meaning that for each pixel in an image we determine which surface will be seen there and which color the pixel has at a respective position. In the following we deal with several methods for implementing this process. First we will describe algorithms that synthesize photorealistic renditions. Such images are created in such a way that they almost cannot be distinguished from real photographs. Although photorealistic renditions are needed in most cases, we will demonstrate, that in a number of applications, abstract, i.e., “nonphotorealistic” images, are preferred. As mentioned several times already, the data complexity in plant geometries is the greatest obstacle in efficient rendering. Often the computing time for the transfer of the data is longer than the rendering time itself. Thus, the geometric approximation and the use of special data structures for complex plants play essential roles, especially when scenes have to be synthesized as fast as possible, though, this issue will not be addressed here, but rather in the next chapter. Aside from the appropriate modeling of the plants, we will describe special algorithms designed for their fast rendering. This encompasses the acceleration of conventional algorithms as well as new approaches using alternative definitions and treatments of geometric data. 149
Chapter 9 R ENDERING
Before discussing the details of rendering, we should briefly reflect on a topic that was already touched upon in the introduction. Due to the vastly differing areas of application, the demands relating to plant rendering also differ greatly. The spectrum of possibilities spans from photorealistic pictures for the film industry to abstract sketches of landscapes in the area of landscape architecture and planning. It is therefore helpful to look at the underlying motivation and the resulting needs for specific rendering techniques with synthetic landscapes. Realism Especially in the area of film and advertising, the most important characteristic is the realism of an image. Predominantly postprocessing is used to combine real and synthetic images, requiring an absolutely exact adjustment of the lighting conditions and the models used for creating such renditions. In the film industry rendering efficiency is now less of a problem (at least compared to the work of Reeves and Blau [172] in 1985), because today thousands of powerful computers are used in parallel and they can compute even complex animations in a matter of seconds. However, the vast amount of data is still problematic, and that has to be improved upon. Computer installations often consist of a number of commercial personal computers that are connected through high-speed networks, and each computer calculates images autonomously out of a given sequence. Efficiency/Real Time Computation In simulation applications and computer games, the frame rate as well as the realism of an object must be taken into consideration. Modern simulation environments require up to 60 frames per second for a smooth simulation. Here, approximation techniques have to be applied to simulate acceptable images with high frame rates. Proportions/Spatial Division
architecture →
Botany is more interested in the investigation of spatial division, especially for the production of plant associations, meaning that the places from which plants emerge must be emphasized in the renditions. Characteristically, such images do not show any shading, but rather the specific shape of an object. Similarly, in the area of architecture, buildings are surrounded by plants to illustrate their proportions. Visibility Conditions/Spatial Appearance
150
Visualizations in landscape planning primarily have to reflect visibility conditions and the spatial appearance of the planned landscape. Usually, drawn objects are used, in contrast to the above cases lighting and shadowing are used, since these effects aid the recognition of spatial dimensions in such scenes.
The types of representation for different applications can be illustrated well with a particular tree. Figure 9.1 shows components used in landscape planning, such as a photorealistic rendition, abstract representations, and a symbollike design. Each representation adapts to its respective area of application. Thus the requirements of the rendering procedures must be given different considerations with respect to the individual areas for which they were developed. Realistic images should still be able to be measure up to the quality of photographs, in particular if a combination of computer-generated and real image clips is aimed at. Although computing times no longer play a significant role, developing efficient algorithms for reducing computation expenditure and the quantity of data remains a primary goal, since experience in recent decades shows that the demands for complexity in the data by users often grows faster than the arithmetic performance of computers.
(a)
(b)
Section 9 S YNTHETIC L ANDSCAPES
Figure 9.1 Different illustrations of a tree: (a) photorealistic; (b) illustration-like; (c) abstract; (d) symbolic
(c)
For nonphotorealistic renditions different criteria are decisive, depending upon the respective application. Aspects of the form and the lighting were already addressed. In combination with photorealistic rendering techniques, the spatial coherence is often achieved automatically: If the point of view is moved, the object changes in a foreseeable way, without flickering or producing other visually discernible errors. Such errors would be extremely disturbing in animations and must absolutely be avoided. For nonphotorealistic images, which are often the result of severe simplification processes, the spatial coherence is often difficult to simulate, and thus requires special effort. The algorithms for photorealistic rendering that will be introduced below are, for the most part, already standard methods in computer graphics. They were developed based on so-called lighting models, a number of which were designed during the past 20 years. The lighting model describes the light distribution in the three-dimensional space. It is usually approximated in such a way that with a justifiable computational cost the lighting conditions for one point of the surface develop. The model is used within the shading process that represents the actual rendering algorithm. The procedure computes the illumination values for all visible surfaces, so that a picture of the scene is generated. During the early years of computer graphics, displays or screens of today’s quality were of course not available. Usually the pictures were given for output
(d)
← spatial coherency
151
Chapter 9 R ENDERING
lighting model →
to converted oscilloscopes, so-called random-scan terminals, or vector monitors where the electronic beam was directly controlled over the screen. The shading applied in the corresponding renditions was therefore only visible as silhouettes of the objects. With improved output devices also the lighting models themselves were refined. First, so-called local lighting models were developed, in which the illumination of the surfaces depended solely upon the position of the artificial light source and the view of the user. All interactions between the objects, such as, for example, shadow casting from one object to another object, or the indirect lighting of objects by reflections of light sources from other objects, were here excluded. Later, global lighting models appeared that were able to take all the interactions of objects in a scene into consideration. The light transport between the objects is described using an integral equation system, in which the brightness of a surface potentially depends on all other surfaces.
9.1
Local Lighting Models
The local lighting methods utilized during the early years of computer graphics completely ignored indirect lighting in a scene. The amount of light was controlled only by the radiance of the light sources and direct illumination, where the reflection was approximated using different terms. The situation is illustrated in Fig. 9.2.
Figure 9.2 Local lighting model: the illumination consists of the ambient term La , the diffuse term Ld , and the specular term Ls
La
Ld
Ls
Using the ambient light term La , a base illumination of all surfaces is implemented. The amount of this light is calculated using a base amount of light in space, Lg , and a material parameter ka ∈ [0...1], which is the ambient reflectivity of the object. La = ka Lg . (9.1) diffuse light term →
152
The second term of the approximation designates the diffuse reflection of the light by the object. It is computed using the diffuse light term Ld . Examples of diffuse reflectors are materials such as chalk and concrete. The quantity of the reflected light depends here solely on the angle between the vector ωi from the , multiplied by the diffuse reflectivity light source i and the surface-normal N kd . With the diffuse reflection, light is distributed evenly in all directions. ) Li . Ld = kd cos( ωi , N
(9.2)
Glare lights on the object surface result from so-called specular reflection Ls . This value describes shiny surfaces. A mirror reflects the light of a light source i a shiny object, a so-called non-perfect mirror, only in the reflection direction R; reflects the light into the close neighborhoods of this direction also. ω The function cos(R, )n = cos(α)n describes, in dependence of the material parameter n, how fast the reflected light in the environment of reflection direction decreases, and thereby determines the size of the glare lights on the object surface. The term ω is here the direction of the virtual viewer. The specular term is then given by ω Ls ( ω ) = ks cos(R, )n Li .
Section 9.2 T HE R ENDERING E QUATION
← specular reflection
(9.3)
The sum of the three terms for each pixel gives a visual approximation for direct lighting. Together with m light sources, the approximation formula is given by: L( ω)
= La + Ld + Ls m ) + ks cos(R, ω ωi , N )n . (9.4) = ka Lg + Li kd cos( i=1
In physical reality the situation is, however, more complex. Thus, the material properties depend on the respective position on the object, and must accordingly be included in the equation. Also, the reflection characteristics are substantially more intricate and can be approximated only for some materials in the way presented so far. Finally, an object may potentially illuminate all others, which produces the global interaction already addressed.
9.2
The Rendering Equation
In 1986 Kajiya introduced an appropriate equation from thermodynamics into the formula that generally today serves as the starting point for all lighting models [103]. The emitted radiance L of a point on the surface at a place x in a direction in space ω is given by L(x, ω ) = Le (x, ω ) + fr (x, ω ,ω ) L(x , ω ) G(x, x ) dA , (9.5) S
where we have to integrate over all surface points x of all surfaces dA of the viewed scene S, which also can be seen as an integration over the hemisphere surrounding the object. The term ω denotes the direction vector that points from x to x. For the solution of the integral we furthermore assume energy equilibrium, i.e., a condition in which the energy input and output are in an equilibrium state for the entire scene and also for each subspace of the scene. The term Le (x, ω ) in Eqn. (9.5) is the radiance of the surface at place x in the direction ω . If the examined surface shines – meaning it is a light source – this will be noted here, otherwise Le = 0 applies.
153
Chapter 9 R ENDERING
The function fr (x, ω ,ω ) is the so-called bidirectional reflection distribution function (BRDF) of the material at the position x. It indicates which part of the radiance in point x is emitted in the direction ω , if it is illuminated from the direction ω . In this function the material properties of the surface at the point x are contained. If this, for example, is a mirror, then radiance is only emitted in the direction in which the reflection vector ν points due to the vector ω . The function fr thus turns into the delta function fr = δ( ω − ν ). If the surface consists of a purely diffuse material, the radiance is scattered independently of ω equally in each direction. It thus applies for fr = const. The BRDF was approximated in the local lighting model by the ambient, diffuse, and specular light terms. The function L(x , ω ) describes the outgoing radiance of the observed point x of another object in the scene in the direction of x, and is thus responsible for the global energy exchange. The geometry term G(x, x ) finally considers whether the points x and x are blocked by an object lying between them, and, if not, how the associated surfaces are positioned. If the surfaces face each other, a larger part of the light is transferred from one surface to the other surface, as if they were tilted to each other. Finally, also the distance is taken into consideration, which likewise affects the brightness. The problem with Eqn. (9.5) is the term L(x , ω ); it is found on both sides of the equation, once under the integral. Hence, we are dealing with an integral equation, which usually cannot be solved analytically and thus must be approximated numerically.
9.3
Radiosity
A solution for Eqn. (9.5) is the radiosity method, in which all objects of the scene are divided into triangles and squares. Furthermore it is assumed that the objects consist of diffuse material only, which scatters the light evenly in all directions. The BRDF reduces itself in this case to a factor ρ, which is independent of the direction of the outgoing radiance. This combination, together with the application of a finite element method, makes it possible to convert Eqn. (9.5) into a large linear equation system in the following form: Bi = Ei + ρi
n
Bj Gij .
(9.6)
j=1
In the form of a matrix equation this can be expressed as: E = (I − G) B.
154
(9.7)
Final results are the radiosity values Bi (as vector B) of the triangles and squares, which are converted afterwards into a visible image. E is the emission of the surfaces, and Gij a discretized form of the geometry term, which
is also called the form factor, and is to be computed from the geometrical data beforehand. This finds its place together with the reflection ρi in the matrix G. The term I describes the identity matrix (see also [31]). Thus, for a scene with n triangles a set of equations develops with an n × nmatrix1 , which is to be solved by numeric methods. The computational cost as well as the difficulty of finding realistic working reflection values and appropriately parameterizing the procedure have so far prevented the broad use of radiosity methods. For special applications and for the precalculation of global lighting effects in the context of fast local rendering methods for computer games, they are however used.
9.4
Section 9.4 R AYTRACING
Raytracing
A far more popular method is raytracing, in which Eqn. (9.5) is solved point by point. The emitted light of a surface point in a certain direction is yielded, in that first the direct lighting for the position is computed. This includes the direct light emitted from the light sources, as well as the shadow computation. For doing so, from the object point outgoing search rays are sent to all sources of light, and it is determined whether further objects of the scene lie between the object point and the light source. If this is the case, then the object point lies in the shadow.
Figure 9.3 Raytracing algorithm: a ray is sent from a virtual viewer eye through the pixel into the scene and is reflected by the surface object
Additionally, for the current point the incident light is determined. This corresponds to the numeric evaluation of the above integral, and is implemented here, for example, via an amount of randomly distributed search rays in different directions in space. The points of impact of these rays onto other objects are computed (if available), and the outgoing radiance of these points is determined in the same way. If the outgoing radiance has been computed, the values of all search rays are averaged and added to the direct light term of the current point. The desired image is created by sending a search ray from the eye of the virtual viewer through each pixel of the image into the scene, and intersecting it with the objects [230]. 1 This
is only an approximate indication, since the size of the matrix depends on different factors. The order of magnitude, however, is correct.
155
Chapter 9 R ENDERING
antialiasing →
In this way, a recursive procedure results, which sends rays, intersects them with objects, determines direct and indirect light terms, averages the intensities of several rays, and finally passes on the result. The computation is especially easy if the indirect light is assumed to be emitted only from mirror surfaces. For the definition of the indirect illumination it then is sufficient to just send one ray in the reflection direction and another ray in the transmission direction for transparent surfaces. In Fig. 9.3 we see such a simplified process. However, for computing the pixels it is often not sufficient to send one search ray per pixel into the scene. The results are most likely not satisfactory, especially with data that shows sharp edges. Along the edges, particularly if these run diagonally, jagged patterns appear. In computer graphics, this effect is termed “aliasing”. Here special “antialiasing” procedures are applied to soften the effect. Within ray tracing, the antialiasing can be implemented so that per pixel several rays are sent into the scene. The results are then averaged. If an edge runs through the pixels, the colors of the objects are mixed and hence softened. A jagged pattern is here less noticeable [75]. Unfortunately, the price is a considerably higher computing time. Most of the plant images shown in this book were computed with raytracing and antialiasing, though often with simplified versions. Thus, in many scenes it is sufficient to use local lighting in combination with the shadow computation. The tracing of reflection or transmission rays is here not necessary. The processing of the primary rays outgoing from the viewer eye can also be accelerated by preprocessing, as is shown later in this chapter.
9.5
point objects → 156
Further Rendering Methods
Global and local lighting methods, just like the procedures described so far for the modeling of plants, are based on the standard rendering pipeline: a threedimensional model of the data to be represented is generated and transformed by a mathematical projection onto the computer screen. Here the color of surfaces or pixels is determined by local or global lighting procedures. A great disadvantage of this method is the necessity to often generate very complex surface models in order to convert these into a comparatively small number of pixels. The scene in Fig. 8.18 consists of approximately 16.5 million triangles. If it is projected onto a computer screen with 1024 × 768 pixels, then even with a triangle size of one pixel more than 10 triangles per pixel are to be drawn on the screen, where per triangle in each case the information on position, texture, and lighting is to be stored. There are a number of approaches that attempt to work around this dilemma. A very promising approach is to use points in place of triangles as the base elements of the imaging. This technique substantially lowers the amount of data per element to be stored; however the two-dimensionality of the surface
representation is lost, which is particularly disturbing in close-ups. Here the object converts to a point cloud. This approach was used in 1985 by Reeves and Blau (see Sect. 4.5) who modeled whole forests and meadows using particle systems, whose basic elements were also points. A variety of point-based methods were proposed during recent years, some of which we will introduce in Sect. 10.3. Often a virtual landscape must be synthesized by combining real and synthetic objects. Again, an example here is landscape planning, where in most cases an existing landscape is to be modified. Consequently, attempts have been made to mount photographs of real objects into synthetic scenes, or, vice versa, to integrate synthetic objects into photographs. In both cases there are problems with spatial coherence: a photograph is taken from one position and then shown in an animation from differing directions. Since the true object shape relative to its position cannot be reflected due to the parallax, the object appears unnaturally flat. Using the methods of image-based rendering researchers therefore try to reconstruct from one or more pictures of a real object its three-dimensional shape and incorporate the obtained 3D data into rendering – that is if the real object is to be combined with a synthetic one. We will explain some of these techniques and their application to plant rendering in Sect. 10 of the next chapter.
9.6
Section 9.6 P HOTOREALISTIC R ENDITIONS OF L EAVES
Photorealistic Renditions of Leaves
Following the description of general rendering methods, we will now discuss special algorithms for the production of photorealistic landscape images. First we must determine what kind of visual effects are really necessary for the rendering of landscapes. For example, with the tools available today, it would be impossible to calculate the correct global light exchange in a scene with millions or maybe billions of leaves. On the other hand, amazingly realistic images can be rendered without the complex methods we have discussed so far. In the case of light exchange, for the exchanged amount of light simply a constant ambient factor IA can be included in the luminance calculation. A significant factor, however, is the shadow computation. Since the leaves of a plant create effective shadowing, most of them are situated in deep shadow, and thereby create a high contrast in the overall image. Another important effect is the translucency. A leaf that is illuminated on one side shines on the other side a light green, just as if it was a light source. Although it is not necessary to apply this glow as an indirect light in the lighting calculation, the effect must still be included in the rendering of the leaf. Figure 9.4 shows the most important effects. The model in (a) was computed without shadow, the appearance is relatively flat. In (b) the shadows are computed and naturally the contrast is much more pronounced. If the transluminance is added, a progression of reality is realized; in (c) this last step is implemented over a simple extension of the lighting model. In the following chapter
157
Chapter 9 R ENDERING
(a) Figure 9.4 Visual effects in rendering: (a) simple local lighting model; (b) image with shadow; (c) image with transluminance
we describe a model that simulates such effects in an improved way, and that also deals with the subsurface scattering within the leaf.
(b)
(c)
Other effects often present are the atmospheric scattering of dust in the air, as well as the so-called bluish fading of distant areas. In the global light exchange, all effects are generated with relatively simple rendering algorithms. More and more can be computed using graphics hardware found in most computers, which, of course, speeds up rendering significantly.
Optical Properties of Leaves For the visual appearance of a synthetically generated image, it is important to determine how far the applied methods for the approximation of the light distribution are adequate for the data to be generated. While rendering of the surfaces of the tree skeletons with the already-mentioned local and global lighting procedures is achieved satisfactorily, the leaves and small petioles must be generated with different methods. As already mentioned, a leaf is translucent. If it is held against a light source, such as a lamp, the light shines through remarkably softly. This effect is caused by the diffusion of the light inside the leaf, where many small particles of varying optical density diffract the light rays. Similar effects are created when light hits marble, skin, or snow.
158
Incident light is either reflected by the leaf surface or penetrates the leaf interior. The light is diffused by small particles, such as pigments, it may either be absorbed or transmitted back through the upper or lower sides of the leaf. The situation becomes even more complicated: a leaf consists of several layers, which each have their own optical characteristics. In Fig. 9.5b, the scattering process is illustrated in the two top layers of a leaf. Light hits the leaf surface at angle Θi and is partially reflected directly at an angle Θr . Another part of the light enters at angle Θ into the leaf and is either diffused or absorbed. At the border of the next layer, the light is again diffused and enters at angle Θt the next layer. Another part is reflected towards the
surface and is reflected at angle Θr . The two angles Θr and Θt are here not fixed, but instead there is an entire angle area throughout which the light is diffused. In the sense of Eqn. (9.5), the BRDF, which describes the reflecting attributes of a leaf, must be supplemented with an appropriate transmission function, the BTDF: a ray hitting the leaf surface is changed by the BTDF in its strength and can be perceived on the lower side of the leaf. Consequently, the integration area in Eqn. (9.5) must be expanded from the hemisphere to all spatial directions.
Section 9.6 P HOTOREALISTIC R ENDITIONS OF L EAVES
Figure 9.5 Light dispersion in leaves: a) layer structure in a leaf; b) scattering at the layers
(a)
(b)
The BRDF and BTDF are together abbreviated as the BDF which describes, in relationship to the angle (now 360◦ ), the amount of the emitted light. The BDF can be measured for real leaves and the data can be applied for the rendering. This was demonstrated in a number of optical experiments using leaves of different plants (see [96]). In addition to the quantity of light dispersed into a certain direction, the spatial conditions are also of importance; in particular, the distance the light travels inside the leaf before being reflected back is responsible for the soft effect at the surface. The basis for the computation of such subsurface scattering inside objects with different layers is described by Hanrahan et al. [82]. Using this source, Jensen et al. [101] developed a practically applicable model. They reduced the needed computation to a direct reflection and another term, that per each hitting light ray added a diffuse light source with a limited effective radius. In a special analysis for leaves, Baranoski and Rokne [8] use an abstracted leaf model that is shown in Fig. 9.5a. Four layers determine here the optical characteristics. On the leaf surface the light enters into the epidermis. The color-producing layer, the mesophyll, lies directly below. The cells within the mesophyll have cylindrical form and are surrounded by air. This is also true for the layer further down, which consists of small round cells, the chloroplasts, that also are surrounded by air spaces. The last layer, the lower epidermis, seals the leaf. The optically important properties are here the leaf surfaces (Boundary 1), the boundary between the mesophyll and the air field (Boundary 2), between the air space and the lower epidermis (Boundary 3), and on the lower epidermis (Boundary 4). At each boundary, the light is directed dependent on the diffraction index ηi of the medium from which the light originates (at the first bound-
← leaves
159
Chapter 9 R ENDERING
ary, the air), and that of the second medium ηt , into which it penetrates. The so-called Snell’s law is written as ηi sin Θi = ηt sin Θt ,
(9.8)
where, again, Θi is the angle in the first medium and Θt is the light angle in the penetrated second medium. The ratio of the reflected light is determined by the Fresnel coefficient F ∈ [0...1], which is written in a simplified form as F =
(ηi2 − ηt2 )c2it + (cos Θ2i − cos Θ2t )n2it , (cit (ηi2 + ηt2 ) + nit (cos Θ2i + cos Θ2t ))2
(9.9)
with cit = cosΘi cos Θt , nit = ηi ηt .
(9.10)
A ray directed by raytracing is, dependent to a random value being above F , either reflected or directed into the adjacent medium. If its path length in the respective medium is above a given length, it will be absorbed. Absorption and reflection behavior depend on the material properties of the leaves. For instance, the epidermis can be described by a number of adjoining ellipsoids, which determine the reflection properties through their form. If the ellipsoids are flat, then the leaf, for example, has a larger specular reflection ratio. Actually, the global absorption is determined by the thickness of the leaf in combination with the concentration of pigments and their absorption coefficients. In sum, with the calculation indications of the layers, their thicknesses and the concentration of the pigments, as well as the flatness of the ellipsoids of the epidermis, a sufficiently accurate simulation model for the light distribution can achieved. The computed curves comply well with the measured values of the already-mentioned experiments, although an application of the method in current rendering has not yet been implemented.
Figure 9.6 Textures used for rendering leaves: (a) adaxial diffuse reflection; (b) abaxial diffuse reflection; (c) translucence; (d) alpha channel; (e) thickness; (f) extinction; (g) bump map
(a)
160
(b)
(c)
(d)
(e)
(f)
(g)
On the other hand, a simplified raytracing model on the basis of the approximation presented by Jensen et al. [100, 101] makes it possible to achieve good results with an approximate scheme. In a preprocessing step a number of textures are obtained. These are photographs of the upper and lower leaf sides as well as a throughlight image obtained by scanning the leaf in a corresponding
scanner. This image is used for modulating the leaf’s throughlight behavior. The textures are then computed from these three source images (see Fig. 9.6). The raytracing algorithm for rendering the leaf works according to the following scheme: if the virtual observer is on the same side of the leaf as the light source, the corresponding texture for the reflection is used and the intensity is computed according to the algorithm below (see also Fig. 9.7).
Section 9.6 P HOTOREALISTIC R ENDITIONS OF L EAVES
Figure 9.7 Raytracing scheme: the ray is traced through the leaf; at discrete positions it is tested for shadow; at each optical border the ray is refracted
If the leaf is located between the viewer and the light source, we do not distinguish from which side the leaf is viewed; in both cases the tranclucence is computed in the same way according to the optical measures, which do not show any significant differences here. The algorithm can be written as follows: for each ray through do begin obtain thickness and extinction value from maps alter surface normal according to bump map for each of the three layers do begin refract ray at border of layer compute step width from current thickness value according to [101] for each step through volume do begin for each light source do begin compute light path length inside the leaf reduce light intensity exponentially according to path length and extinction value if light source and viewer are at same side of leaf then modulate value by front- or backside texture resp. else modulate value by throughlight texture end end end for each light source do begin add multiscatter term as an ambient factor (if necessary) if light source is on the same side as viewer then add specular term end end 161
Chapter 9 R ENDERING
Figure 9.8 Synthetically illuminated plants, light comes from different angles (Courtesy of Oliver Franzke)
162
As mentioned above, this is a simple but efficient variant of the algorithm of Jensen et al. [101] for rendering leaves. Figure 9.8 shows a synthetic plant with varying light positions. In Fig. 9.22 a similar technique based on a standard lighting algorithm is used, the image appears realistic because of the proper use of specular reflection and translucency.
9.7
Rendering Complex Scenes
After having introduced the lighting model for leaves, we now turn to the lighting methods in the rendering of larger scenes. Especially in this case, the lighting computation must be applied in the most efficient manner, since we are working with an increased quantity of data. A number of techniques are available to practically solve problems of data processing. In the following we introduce some of these methods. We saw in Sect. 4.5 that the first commercial computer film with realisticlooking plants was produced by Lucasfilm [172] under the scientific leadership of Reeves and Blau. With the particle systems and a simple lighting procedure, they achieved good visual approximations of single trees, entire forests, and
meadows. Each tree was represented by up to 1 million particles. Since the quantity of information would have exceeded the computer capacity during rendering, one tree after the other was rendered and later superimposed. This method offered the possibility of dividing the computer work. Another option is to partition the image itself into subareas and to compute these in different computers. In this case, however, all data must be transferred to each computer, and each computer must not only be able to handle that quantity of data but also transpose it into an image. Even if in a subimage only a small part of the data can be seen, all data must be included in order to be able to compute global effects, such as shadowing. A general scheme for the composition of images with complex content composed from partial scenes was introduced in 1985 by Duff [51]. Here the scene was also partitioned, however the global interaction was implemented over several buffers in the form of special image data. Each partial scene was treated individually, and the results were then given to the other partial scenes in the form of those buffers. In the first step, from each subscene a shadow buffer in the form of a special image is produced. From the position of the light source, for each pixel of the image we specify the depth from which a shadow may be cast onto the other objects by the objects of the subscene. The coding of the depth values usually is done using a real number in the interval [0...1], where the value zero equals the minimal distance d0 from the objects to the light source, and the value one equals the maximal distance d1 . Details on this interpolation are mentioned in another context in Sect. 11.3. If the lighting of a subscene is defined, for the shadow computation the distance from an object to the light source is computed, and all shadow buffers are checked for any object that could be in-between the object and the light source in another subscene and could possibly cast a shadow.
Section 9.7 R ENDERING C OMPLEX S CENES
← space subdivision
← shadow buffer
Together with the image data of the subscene produced in this way, for each pixel the depth value is stored; this time, however, in the coordinate system of the virtual camera. Additionally, for the color values of the image a transparency value is defined. All pixels for which no object exists in the subscene, are assigned the alpha value one. If an object that is partially transparent exists in the scene, an alpha value between zero and one is assigned; otherwise the value is zero. At the combination stage, the different depth values of the subscenes are assessed per pixel, and finally combined with the transparency values to become the actual pixel value. The advantage of this procedure is the possibility of dividing the object data into subscenes without the need to transfer the complete geometric data among these scenes. Unfortunately, the temporary image data together with the additional buffers also require high storage capacity and a high bandwidth to transfer the data within a computer network.
163
Chapter 9 R ENDERING
Spatial Subdivision As already mentioned in Chap. 8, if a virtual landscape with many plants must be rendered, several assumptions can be made concerning the data, which assist in finding an efficient rendering method. Usually the plants are arranged on the plane, which allows for the application of space partition methods. This is further simplified by the fact that the plants are local objects, meaning that the plant geometry is not distributed over large parts of the scene. In this way, the scene can be efficiently subdivided into a number of smaller regions. For the production of such a spatial structure, the space is divided into compact regions, which each include about the same amount of geometric data. In Fig. 9.9 three methods are shown. Subimage (a) shows a quad tree, which divides the scene recursively into four subscenes. The partitioning is continued until the number of geometric objects in a subscene decreases below a given threshold or until the cell has reached a minimal size. The resulting data structure is a tree whose nodes describe the cells. The children of a node are the subcells into which the respective region was divided. Accordingly, each of the inner nodes has four children, and the data structure is called a quad tree. Figure 9.9b shows a BSP tree (BSP = binary space partition), in which the space is alternately divided in the x- and y−directions. Positioning and orientation of the dividing plane in this case can be performed with a higher degree of freedom. Thus, the division can at each time be fitted in such a way that in both subspaces the same number of objects are present. A similar method was used for the quantization of vectors in Fig. 8.8.
Figure 9.9 Data structure for space partitioning: (a) quad tree; (b) BSP tree; (c) grid structure
(a)
(b)
(c)
In Fig. 9.9c a simple grid partition can be seen, in which the space is divided into many cells of equal size. In contrast to the quad tree and to the BSP tree, which are dynamic data structures, and which can adjust to varying object densities, the grid is a flat structure that allows for a significant faster access. A grid division is always then of advantage when the density of the geometric data is more or less uniform. Fortunately, this is the case in many natural scenes with dense vegetation cover. raytracing →
164
Several rendering algorithms such as raytracing can be performed more efficiently with such a space partition data structures. As an example, the calculation of the first object of the scene hit by a tracing ray can be restricted to those objects whose cells were hit by the ray, instead of having to include all objects. This allows for a drastic reduction of the computing effort. However, even the
processing of a single object can be time consuming; hence a combination with so-called bounding boxes is useful in such approaches.
Section 9.7 R ENDERING C OMPLEX S CENES
Bounding Boxes In raytracing, a great amount of computing time must be spent on the so-called ray query. Here, with each tracing ray, we have to check which object or polygon of the scene is hit first. On the other hand, in local illumination models a lot of work is due to the visibility calculation, which defines for all polygons of each object whether or not they are actually visible. In both cases the efforts can be simplified and the computing time decreased, if complex objects are approximated using simple bounding geometries such as cubes or spheres, which include these, so-called bounding objects or bounding boxes [108, 180]. If such objects were produced, then for the ray request as well as for the computation of the visibility the bounding object can be used for a first test. Only if it was hit or if it is visible is the actual object taken into consideration. In this way a conservative assessment is reached: if the bounding object is not visible, the included geometry is also not visible. However, it is possible that the bounding object is visible, while the actual geometry is not.
(a)
(b)
Figure 9.10 Hierarchical approximation with bounding objects: (a) structure; (b) ray query
In the case of plant geometries, the approximation with bounding objects is especially meaningful, since these are very complex, and, as already mentioned, are mostly compact objects. The recursive structuring of trees and shrubs permits hereby also a recursive, nested description with bounding objects. The entire plant is embedded into an enclosing object. This contains the bounding objects of the main branches, and these again contain the bounding objects of the smaller branches, and so on. This is continued until the amount of geometry to be included is small enough so that a further approximation is not worthwhile. At the request, first the overall bounding box is tested. If the result is positive, then the next-closest approximation is treated, and so on. This way, a request can be handed down in a cascade and decided on with a minimum of effort. Figure 9.10 shows the structure of a hierarchical approximation with bounding objects and the ray query.
165
Chapter 9 R ENDERING
Occlusion Culling The term “occlusion culling” defines methods that exclude all the objects hidden by other objects before the actual image computation. In connection with local rendering methods, these objects are not even transferred to the graphics hardware. In connection with raytracing, these procedures are used to decrease the total complexity of the scene description, and to avoid unnecessary shadow computation. In this case, the visibility of the light source is to be computed for the object points, and we must find out in the most efficient way whether or not one or more objects are in-between. If there are very many objects to be considered, occlusion culling can be helpful in decreasing this effort. To execute the computation of the complete visibility information for every single point in a complex scene is much too time consuming. However, it is sufficient to compute the amount of the potentially visible triangles for a position or, better, for a subregion of a scene (a cell). While for the computation of every single position the depth buffer of the graphics hardware can be used – which executes the visibility test for each pixel, but has to be calculated separately for each image – this can be avoided when using cells. Here for the cell volume all parts of the scene that are visible are determined (volume visibility). Just like with the bounding objects, in this procedure often a conservative approximation is performed: all objects that could be visible are drawn, and only those are discarded that are guaranteed to be occluded. However, this permits many objects to be classified as visible, although they are actually not visible from most places in the cell. Consequently, the efficiency of this approach is not optimal.
Figure 9.11 Occlusion culling: covered objects are defined and are sorted out
If the objects are large and convex polygons, efficient methods can be found to determine occluded objects (see [187]). Schaufler et al. [189] extend the method to general objects in arbitrary scenes. The scene in this case is divided hierarchically into cells (see Fig. 9.9a) that are either fully opaque or transparent. Looking from the cell of the virtual viewer, an object occludes a number of cells in the scene description and the corresponding objects do not need to be processed (see Fig. 9.11). terrain →
166
For terrains different methods have been developed. Cohen-Or and Shaked [32], for example, delete parts of a terrain in a pixel-based method. Stewart [208] represents terrain using a quad tree with square cells, for which a horizon line is specified, and then defines together with the cell a set of areas from which
the cell is not visible. The visibility of the scene is computed in a recursive approach that determines the visibility of all cells, and, if visible and if sufficiently detailed, divides them further. A general problem with occlusion culling with regard to plants is the absence of complete occlusion. The leaves of the plants often only cover parts of the background, and thus make a conservative approximation of the occludee impossible. Satisfactory occlusion culling methods for the rendering of these kinds of scenes are still missing.
9.8
Section 9.8 P LANT I MAGES U SING R AYTRACING
Plant Images Using Raytracing
As already mentioned, raytracing is the most widely used method for the simulation of global illumination. With the described spatial division methods and bounding objects, the time-consuming process of the ray query can be optimized. Additional optimizations can be reached with special versions of raytracing that are described in the following. First two aspects for the implementation of efficient raytracing algorithms are explained, which allow for a better ray query. The first method affects the optimal processing of rays using an efficient memory management. This is especially useful when complex scenes are rendered. The second process takes advantage of the fact that in natural scenes reflection rays are rare, since they are not needed in combination with plant materials. Here, raytracing is mostly found in a simplified form of ray casting, i.e., only the primary ray per pixel has to be computed. However, as mentioned above, within the leaves complicated conditions are present, since through a number of subsurfaces light will be scattered, and additionally the translucence must be computed. Though efficient solutions for this problem have been found, it must be noted here that the simulation of these effects causes an extreme slowing down of the rendering process, and therefore they are only used when we have to show very detailed renditions to solve special problems.
Memory Management Within Raytracing Generally, the data of synthetic landscapes consist of a large number of triangles in 3d space. The memory capacity needed for this kind of data is most often much larger than the main memory capacity of the computer used. To allow an efficient rendering under such conditions, special memory management methods are necessary. These are so-called caching procedures. A caching method exploits the coherence in the rendering process. As in raytracing, rays used for the calculation of adjacent pixels will often also hit the same geometry. Thus if a smaller area of an image is computed, we can also work with a smaller amount of geometric data.
167
Chapter 9 R ENDERING
Unfortunately this is only true for raytracing with primary rays. Reflection and transmission rays can direct in all directions of the scene, and thus possibly hit all geometric primitives. In order to reduce in such a case the amount of geometry and texture data via caching, the order of the processing of the rays must be changed.
Figure 9.12 Complex plant scene rendered using cache-coherent raytracing (Courtesy of M. Pharr)
Instead of computing for each ray all the reflection and transmission rays to immediately calculate the final result, the rays leading into areas that contain geometric data that are momentarily not in the main memory are stored in temporary memory [159]. Here they are sorted in a way that when loading new parts of the geometric data, the respective rays can be found and worked quickly. If all rays are computed, the image is constructed. Interesting here is the possible separation of the ray query, i.e., the tracing of the object first hit by the tracing ray, and the illumination computation. While, for example, in the first case only the geometry of the object is needed, in the second case also the texture information must be included, which again causes the amount of data to be stored to exceed the memory capacity. Thus, also this data is held in a cache.
Figure 9.13 Block diagram of a memory-efficent raytracing system
168
Figure 9.13 shows a scheme of such a system for cache-coherent raytracing [159]. A monitoring process selects a group of tracing rays. Information about the actual contents of the memory is used here, as well as the measure that states how much the respective group of rays contributes to the finalizing of the image. Then the ray query is executed, and if necessary the geometry in the geometry cache is added. If a hitting point is found, the illumination is defined, and the necessary textures are loaded into the texture cache. All rays that need geometry outside of the geometry cache are stored in temporary memory. They are only executed if the respective geometry is located in the main memory.
Section 9.8 P LANT I MAGES U SING R AYTRACING
Accelerated Ray Query with Index Images The method described here takes advantage of the fact that in plant scenes very seldomly must reflection rays be traced. A great part of the ray query thus consists of the so called primary rays, and the number of secondary rays caused by reflection is minimal. All primary rays start at the viewing point of the viewer using the virtual camera model, and penetrate through the pixels of the image to be produced. The ray query thus represents the question: Which object can be viewed in each pixel of the image to be produced? At this point we take advantage of the fact that the local lighting simulation can be computed very quickly via the graphics hardware, which helps to answer the question just posed. For this purpose, we produce a false color image of the scene, a so-called index image. In this image each triangle is filled with a color that relates back to its object number in the given triangle list. This number is coded in the three color channels (red, green, and blue) of the RGB color model of the computer graphics hardware, each with an eight-bit depth. In total, this way 24 bits of information are to be stored, though almost 17 million different objects per image can be coded.
(a)
(b)
The index image is produced in a preprocessing step and is transferred to the raytracing algorithm. Thus for each pixel the first hit object of a primary ray can
Figure 9.14 Accelerated rendering for plant scenes using index images: (a) standard result with local lighting model; (b) index image with false colors to determine the first hit triangles in each pixel; (c) result using index images
(c)
169
Chapter 9 R ENDERING
be found in the image through extracting the color information of the respective pixel position. In practice, this method allows for a run-time reduction of 10:1, especially if the graphics hardware is able to quickly produce and store false color images. Figure 9.14 illustrates the use of such an index image for the rendering of a shrub.
9.9
hierarchical radiosity →
applications →
In the rendering of landscapes, radiosity has so far rarely been used. The enormous amount of geometric information causes extreme computing times and needs a huge amount of memory. Soler and Sillion [204] decreased this by integrating hierarchical instancing in radiosity procedures (see Sect. 8.5). With the hierarchical version of the algorithms, Eqn. (9.7) is not solved in one step, but rather this is accomplished through a recursive mechanism that first calculates directly the energy exchange between the larger part of the scene, and only then includes the smaller units when a given error threshold is crossed [202]. The hierarchical instancing is integrated into the hierarchical structuring of the scene using so called clusters, for which the energy exchange with the environment is managed through a simplified and geometry-independent representation. However, the computing time still is extremely high. For example, a scene with 1 million triangles still needs approximately 2 hours on an efficient workstation (SGI Origin 2000). Here it should be noted, however, that the computed solution is independent of the viewing location, and an animation can later be produced relatively quickly. The correct calculation of the light exchange between plants, and especially the backscattering of vegetation, is of interest for satellite-based earth observation. Here the reflection behavior is used for determining the type and the condition of the vegetation. Various rendering methods were applied in the past to adjust satellite data using computer models [145]. However, also here the procedures fail often because of the complexity of the geometric data. Max et al. [133] reduce this complexity, in that they compute the illumination only relative to the height above the ground and not for the individual locations on the plane. Thus for homogeneous vegetation the originally threedimensional problem of the light exchange can be reduced to one dimension.
9.10
170
Plant Images Using Radiosity
When Do Computer Images Appear Real?
In concluding this chapter, some questions remain when viewing images, such as those on the following pages. Why is it actually possible to reproduce using relatively simple methods a sometimes astonishing degree of realism? One reason could possibly be the relatively simple lighting conditions within the plants that are easy to approximate using traditional computer graphics procedures.
Another reason lies in the complexity of the data. The eye is used to process large amounts of visual information at the viewing of images. If this information is missing, an impression of flatness is created. Although the images shown so far were produced with standard computergraphics algorithms that produce an almost synthetic impression with other data, the images shown appear relatively “natural”. A reason for this effect could be the extremely high visual complexity of the data, which misleads the eye into accepting the visual information as “authentic”. This impression of being authentic is obviously not easily defeated once it was accepted by the brain. Another example: All images in this book were rendered without any collision prevention, meaning that every single geometric object might grow through others, such as in Fig. 9.15–9.22. Here we see how daisies overlap or how grass grows right through flowers. The eye ignores these errors maybe just because the lighting conditions appear realistic, and the complexity of the scene is sufficiently high. These observations suggest the same kind of conclusions with regard to other computer-generated images. The synthetic impression still dominating in many images may originate from the lack of geometric complexity of the objects. Too smooth surfaces, missing dust or dirt, and too regular shapes produce extremely low amounts of information. These facts could possibly be judged by our brain right from the start as “not real”, although the light conditions appear realistic. During recent years some weathering and dirt effects have been considered [45, 46, 47]; however, generally accepted analysis is still missing. In Chap. 11, we will take another direction: here nonphotorealistic images are created. Within the context of the motives that were described at the beginning of this chapter for the rendering of images, these illustrations pursue different goals and need other fascinating instruments for their production. However, let us first address another important area in connection with virtual outdoor scenes. The question is how, by using the right methods, can the amount of data be reduced efficiently to further speed up the rendering process.
Section 9.10 W HEN D O C OMPUTER I MAGES A PPEAR R EAL ?
171
Chapter 9 R ENDERING
Figure 9.15 Synthetic meadow with six different herbs and dandelions
172
Section 9.10 W HEN D O C OMPUTER I MAGES A PPEAR R EAL ?
Figure 9.16 Fallen leaves
173
Chapter 9 R ENDERING
Figure 9.17 Small landscape
174
Section 9.10 W HEN D O C OMPUTER I MAGES A PPEAR R EAL ?
Figure 9.18 Sunflower field with tree
175
Chapter 9 R ENDERING
Figure 9.19 “Darkside” by Gilles Tran, generated using about 15,000 Xfrog plants in combination with raytracing and radiosity
176
Section 9.10 W HEN D O C OMPUTER I MAGES A PPEAR R EAL ?
Figure 9.20 “Darkside” by Gilles Tran, detail view
177
Chapter 9 R ENDERING
Figure 9.21 “Warm up” by Norbert Kern, rendered with raytracing using Xfrog-plants
178
Section 9.10 W HEN D O C OMPUTER I MAGES A PPEAR R EAL ?
Figure 9.22 “Jurassica” by Krysztof Plonka, generated using Xfrog plants (background is photograph).
179
Chapter 9 R ENDERING
Figure 9.23 “Green” by Jan Walter Schliep, generated using Xfrog plants.
180
10
Level-of-Detail Fast Rendering of Images
The procedures discussed in the last chapter, and particularly the efficient raytracing implementations, allow for a relatively fast, though sufficiently exact calculation of the light distribution in complex botanical scenes. The performance of the procedures is here mostly only restricted through the quantities of the data that have to be processed. However, it is not always necessary to show the plant models in their full complexity. For example, if the visual size of a plant only consists of a few pixels on screen because it is part of the background, it is pointless to use thousands of polygons for its production. The geometric resolution thus should possibly be adjusted to the visual size of the plant. If the plant is part of an animation or an interactive system and the viewer moves toward it, the complexity must change accordingly. Additionally, the modification of the complexity should not be noticeable. The methods used for this kind of modeling are called level-of-detail (LOD) methods. Some of these are addressed in the following. LOD methods can be divided into two classes: static and dynamic algorithms. In a static method, for each model geometry there exists one or more reduced variants that are applied, if the model is shown in the background. Each of these variants is a unique independent form of representation with varying types of geometry. The change between individual representations occurs through overlaying, i.e., blending of the model representations. Here two representations are drawn on top of each other, where the transparency increases in one representation simultaneously with the increasing distance, while the transparency in the other decreases. In a dynamic LOD method, the representation of the model changes continuously depending on its projected size. The model description itself includes a procedure for coarsening or refining. Here the data is stored in such a way that precomputed parts of the model can be displayed efficiently in order to reach a reduced representation. In practical applications, methods with a combination of static and dynamic LOD are often used. Thus, the detailed models for the foreground are mostly polygonal, meaning they are represented with their detailed surface description. 181
Chapter 10 L EVEL - OF -D ETAIL
With increasing distance, these models are transformed into a dynamic LODmodel description, such as into a smaller set of surfaces or a cloud of points that can be smoothly reduced. If the model is moved to the background and is represented only by a minimal number of objects, an additional change of the representation may take place. Most often this is a flat polygon, such as a billboard, which almost always is a sufficient representation for distant objects. The classification of LOD methods depends on the underlying geometry. The surface description of a tree can be divided into two very different types of geometry. The tree skeleton is a classic closed geometry with a smooth surface, which is common for representing many objects in computer graphics. In contrast, the foliage is divided into many isolated surfaces that must be represented properly in the LOD modeling according to their character and lighting.
10.1
edge collapse →
LOD Methods for Smooth Surfaces
The successive simplification of closed, smooth surfaces is the subject of many approaches. Some methods work directly with geometric data; others transform the data into a new representation in which the reduction is executed. A common example is the simplification in wavelet space [53, 209]. The classic method, which works directly with geometric data, is described by Hoppe et al. [93, 94]. An initial surface is successively simplified by removing triangle edges. If an edge has to be deleted, the end points are moved to the middle point of the edge, and all adjacent triangles are modified accordingly. This is called an “edge collapse”. The deletion of the edges is repeated until a sufficiently simple base geometry is yielded. Hereby those triangle edges are coarsened that generate the smallest errors during the removal process.
Figure 10.1 Edge collapse: deletion of an edge, two vertices are merged into one
For representing the data, the base geometry and the succession of the “edge collapse” steps is stored with the respective data. Interestingly, through efficient storage management, a representation can be found that almost uses not much more memory than the initial geometry itself. In Fig. 10.1 an “edge collapse” operation is illustrated. The thin lines are the initial geometry, which is transformed into a simplified net through the collapse of an edge (thick lines).
182
The base geometry can now be used for representing the distant object. If the virtual viewer moves towards the object, the inverse operation to the edge collapse is performed. Thereby a vertex is doubled, the new vertices are moved to the position of the original vertices, and the connection structure is updated
due to the inserted edge. In this way, a more and more refined description is developed until the initial geometry is won back. A similar simplification method for height fields (see Chap. 7) is discussed in [120]. Here triangles are simplified if the occurring error in the height is below a given threshold that is defined by the distance from the viewer to the actual geometry. The technique allows a fluent display of complex terrains with applications in real-time rendering, such as in flight simulators.
10.2
Section 10.2 S TATIC LOD M ETHODS FOR T REES
Static LOD Methods for Trees
The appearance of trees is mostly determined by the foliage, so that methods have to achieve an optimal approximation for the many isolated surfaces of the leaves. The problem here is the special characteristic of the foliage, since, in contrast to smooth surfaces, the approximation should not reveal a smoothness but rather the fringed outline of the crown. In an earlier study, Gardner [69] approximated trees and terrains with a few geometric primitives. He used quadrics, i.e., surfaces that can be described with square functions such as paraboloidal or hyperboloidal functions. Here procedural textures control the color and the transparency of the surfaces. Similar methods are used in a number of computer games in order to illustrate foliage. However, this modeling method often causes an unrealistic appearance, since it is noticeable that the trees were modeled using a set of closed surfaces.
← textured primitives
Marshall et al. [129] try to avoid these shortcomings by combining a polygonal representation of larger objects with tetrahedral approximations of smaller objects. Here the important large objects are represented detailed, while the smaller ones are being approximated. However, the problem of the unrealistic appearance is also here still present. Max and Ohsaki [134] blend the polygonal model description with images of trees or parts of trees that were computed beforehand. Since these images are again generated from already-produced models, the authors are able to receive important additional information: the depth value of each pixel from the direction of the virtual camera position. If the model should be shown from a slightly modified camera position, this can be done through the reprojection of these pixels with depth. The method is one of the earlier studies of the alreadymentioned image-based rendering, in which a computer image is not generated through the projection and rendering of a polygonal geometric description, but rather directly from existing image information. The function, mathematically seen, determines the transformation between the pixel coordinates of the already rendered image (x, y, z) where the x, y are coordinates describing the pixel positions in the image and z is the respective depth value, and the pixel coordinates (x , y , z ) of the desired new viewing position; this is an affine mapping. It can be executed through the multiplication of the pixel position in the form of homogeneous coordinates with a 4×4 matrix M (see [230]).
← reprojection
183
Chapter 10 L EVEL - OF -D ETAIL
The computation of the image values for a virtual camera takes place through a perspective projection of the world coordinates into the camera coordinate system. This is also accomplished with an affine transformation that is described by a matrix C1 . The matrix M for the calculation of the desired camera position C2 is now obtained by M = C2 C1−1 .
(10.1)
A problem in combination with the reprojection is the occlusion of pixels. Since in the initial image always only one value can be stored for a pixel, in the reprojection we find spots for which there is no image information (see Fig. 10.2). A procedure that lessens these problems is rendering of the initial object from many different directions, and then combining several of these original images for the production of a new image. In [134], for example, 23 original images are used in order to obtain satisfactory results.
Figure 10.2 Reprojection: the image data from one viewing angle is transferred to another viewing angle
The problem of lacking image information as well as the need for a high memory capacity can be decreased through a hierarchical approximation [131, 132]. Here the tree is not approximated through image information as a whole, but rather by approximating the single primary and secondary branches. Results of this method are shown in Fig. 10.3. For a strict hierarchically constructed tree with only one branch geometry in each level that is arranged along the trunk and produces branch geometries via recursive replication, the method can be written as follows: Generate a leaf through a textured polygon with the image of the real leaf. Generate a twig through combinations of leaves. Generate an image-based description of the branch geometry from several images with depth values. Produce branch through combinations of the descriptions of the twigs as images. Produce an image-based description of the whole branch. Generate a tree description through the combinations of the branches. Generate an image-based description of the whole tree.
184
For rendering of a camera path in the direction of the tree, a hierarchical description with details relative to the projected size must be generated. In [131] this is realized in software, while a hardware-oriented extension for recursive trees with several branch and twig types is presented in [132]. The rendering takes place in the following way:
For the distant viewing positions render the tree from the combination of the images of the total object.
Section 10.2 S TATIC LOD M ETHODS FOR T REES
Starting at a distance threshold, replace the representation through the combination of the reprojected images of the single branches together with the (polygonal) trunk. For the detailed images, replace each of the visible branches through a combination of the reprojected images of the smaller branches, and so on.
(a)
(b)
Similar methods of approximations with images originate from Schaufler and St¨urzlinger [190]. So-called impostors – representations of complex geometry in the form of successively positioned images with depth information – are here reprojected. A similar technique is used by Perbert and Cani for the interactive rendering of meadows [156]. Instead of storing the depth information of the pixels explicitly using volume textures this can also be handled implicitly. Just like a single image that is the discretized representation of a surface, a voxel description is the discretized representation of a volume. If a pixel equals a square base element of an image, then a voxel equals a cubic base element of a volume. In computer graphics, volume data can be stored using volume textures [104] that represent a set of parallel arranged textures in a space. Each texture is allocated a uniform depth, and the image information of the texture describes the corresponding voxel values of the respective plane in the volume. In contrast to classic volume rendering, a volume texture, however, only exists close to the surface of the given model, and thus permits in this way an essential reduction of the data. If model parts are instanced and deformed, then this takes place also via the volume texture. In addition to common voxel data, here further parameters such as reflection attributes in the form of the BRDF are stored. Neyret worked extensively with volume textures for the rendering of plants [148, 147, 149]. Through the application of hierarchical texture representations and the respective rendering methods, he was not only able to produce faithfullooking landscapes relatively quickly, but also to represent complex light and shadow interactions realistically.
(c) Figure 10.3 Image-based rendering: (a) polygonal model; (b) image-based representation; (c) close-up with textures (Courtesy of N. Max, Univ. of California, Lawrence Livermore National Laboratory, and Dept. of Energy, USA)
← volume texture
185
Chapter 10 L EVEL - OF -D ETAIL
Figure 10.4 shows two landscapes that were produced through hierarchical rendering. The rendering in video resolutions takes about 20 minutes with a R4400 processor at 200 MHz. An acceleration of the method is proposed in [140], and a similar approach for volume rendering of forests was introduced by Chiba et al. [25].
Figure 10.4 Production of complex scenes using voxel-based hierarchical rendering (Courtesy of F. Neyret)
Shade et al. [195, 196] introduce a cascaded representation method for plants in complex outdoor scenes. The goal here is to also render large landscapes in real time through carefully coordinated static level-of-detail descriptions. In their system distant plants are represented using billboards. Closer objects are approximated using images with depth that are obtained through reprojection. The next detailed model description that is used is a dynamic point-based method that represents an extension of the images with depth. These methods will be introduced in the next section.
10.3
Dynamic Point-Based Representation
We already mentioned that good visual approximations of trees should display the fringed character of the foliage. If only a few large-sized polygons are used, the desired look is not achieved, not even if partially transparent textures are used. point-based representation →
186
It is more efficient to represent the foliage deliberately using unconnected primitives. Since leaves mostly correspond to small discrete objects, points can be used instead of polygons. That way the already-mentioned geometric overspecification can be decreased. For example, such an overspecification occurs when for one million pixels (image size is approximately 1000×1000), 100 million polygons are used for rendering. This will result in many polygons per pixel that are processed and only one that finally can be seen. Thus, for a fast rendering, the visible image information must be determined in an efficient manner, so that later the geometry can also be stored and rasterized efficiently. Points offer this advantage, especially if the visual size of the object to be represented does not need too many pixels onscreen. In a dynamic LOD
rendering that decision must be made individually for each object relative to the representation in which the image can be computed in the most efficient way.
Section 10.3 DYNAMIC P OINT-BASED R EPRESENTATION
Figure 10.5 LOD modeling of trees: (a) approximation of a single tree; (b) synthetic scene using LOD (Courtesy of J. Weber)
(a)
(b)
The capability of contemporary graphics hardware together with such dynamic methods of representation is best characterized through the vertex rate at which the geometric information can be transferred from the processor to the graphics chip where rasterized. This is an important aspect, because most graphics processors achieve their best values when processing static information. For a dynamic representation, however, all information must be newly processed from the start. The connection and rasterization of two vertices to a line or of three vertices to a triangle is for smaller objects an almost constant factor, so that an efficient description of the data produces a given scene most optimally through a coordinated mixing of point- and line-based representations with polygonal data, and where a minimum of vertices are transferred. One of the first studies in which such a mixture was used for the rendering of trees was proposed by Weber and Penn [231]. They divided trees into lines and points, whereby the lines approximated the branching structure, and the points approximated the foliage. The points were produced through the analysis of the leaf distributions along the trunk. For this, clusters of leaves were defined and replaced with geometric points. Figure 10.5 shows a LOD approximation of a tree as well as a synthetic landscape.
Layered Depth Images A method that does not need special knowledge of the model, and which is not only applicable to trees or plants, is presented by Shade et al. [195, 196]. They solve the problem of the earlier-mentioned occluded pixels and resulting holes by storing all occluded pixels during the production of a source image for the
187
Chapter 10 L EVEL - OF -D ETAIL
extended raytracing →
image-based description. To yield a satisfactory result, a raytracing algorithm is applied and, thus, the method can only be applied to computer-generated models. Starting from the center, rays are directed through each surface of a unit cube, which surrounds the center. Each of the six surfaces is used just like the projection surface for obtaining a conventional raytracing image, and has accordingly a number of pixels that are penetrated by the rays from the center. However, along these rays not only is the first intersection point with the geometry stored, but also all other intersections with the scene, including their respective depths. This results in a so-called layered depth image, or LDI. Here, each ray consists of a list of intersection points with color, transparency, and depth.
Figure 10.6 Scene from Fig. 8.18, illustrated using layered depth images. Good image quality in mid-distance; images at a closer distance show strong pixel effects and have to be replaced with polygonal representations
This information can be used to compute the image information for a new camera angle through reprojection. Since we are dealing here with many points that now have to be processed, Shade et al. [195] develop an optimized calculation. Figure 10.6 shows a plant scene rendered with LDI. For a medium distance, acceptable results are yielded, while with closer distances a polygonal approximation still has to be applied.
10.4
Dynamic Polygonal Representation
All point-based methods have in common the need to change their representation at one point back to a polygonal model, which can result in visual artifacts. Rossignac and Borrel [179] try to solve this problem by merging closely positioned vertices within a set of surfaces without being concerned about whether or not they belong to the same surface. This procedure is acceptable for foliage, although the lighting conditions are changing, which leads to artifacts. Nevertheless, the advantage here is the fact that it is still a representation produced with polygons.
188
A similar approach modifies the geometric description of the foliage without changing the shape of the individual leaves or branches. This method takes advantage of the fact that the shape of a tree has fractal characteristics. Just like in the case of tree skeletons, also the shape of a complete tree is often similar to the shape of a single leaf or to the shape of a small branch with leaves. Hence it might be possible to approximate the foliage of a whole tree with a small set of enlarged leaves. This works at least as long as the tree is displayed at a
large distance. The approach described in the following, we called “Drop and Resize”, attempts to realize this observation. The type of representation depends here on the overall surface A of the plant as well as its distance r from the virtual camera. If the distance of the image plane to the camera is assigned the value one, the projected overall surface Ai of the plant can be calculated using (see also [207]): Ai =
1A . 2 r2
Section 10.4 DYNAMIC P OLYGONAL R EPRESENTATION
(10.2)
Here it is assumed that the triangles are double-sided, where the projection must be calculated with the front as well as the back side. The factor 1/2 takes into consideration the almost random orientation of the leaves in the space, and 1/r2 represents the perspective decrease. If the original foliage of n leaves should be represented through a reduced set of k uniformly enlarged leaves, then a scaling factor s(k) = n/k for all the leaves is necessary because of the effective enlargement of the leaves in two dimensions. However, in the practical application we use a weighted form s(k) = w n/k + (1 − w), w ∈ [0...1], (10.3) in which w is a factor defined by the user. The weight allows continuous selection between no scaling at all and the correct scaling. No scaling results in a very thin foliage; thus, selecting a medium value often is the best choice. The deletion rate, which is also defined by the user, displays how quickly and by what function a model is thinned out once the camera moves away. The following images were produced using a deletion rate according to a square function. This kind of deletion rate is motivated by Eqn. (10.2), which describes a square decreasing of the surface in relation to r. Additionally, for each tree a minimal number of triangles is defined, which is used for the minimal representation.
Figure 10.7 Reduction of the foliage of a tree: (a) 3500 ∆; (b) 2500 ∆; (c) 700 ∆; (d) 100 ∆
The leaves are deleted on a horizontal plane that is moved vertically through the tree. On the plane, positions are defined and the next leaf is removed. The positions are computed using the already-known function of the Golden Section (Eqn. (3.8)), which is written in polar coordinates (r(i), φ(i)) as r(i) =
hmax i mod ph , 2
2π i φ(i) = √ , ( 5 + 1)/2
(10.4) 189
Chapter 10 L EVEL - OF -D ETAIL
Figure 10.8 Several plants as LOD models: (a) sample tree: 36,500 ∆; (b) 30,000 ∆; (c) 20,000 ∆; (d) 10,000 ∆; (e) 5000 ∆; (f) 2500 ∆; (g) 500 ∆; (h) 250 ∆; (i) 60 ∆; (j) pine tree: 11,700 ∆; (k) 8000 ∆; (l) 4000 ∆; (m) 1500 ∆; (n) 500 ∆; (o) 100 ∆; (p) bush: 8648 ∆; (q) 4000 ∆; (r) 500 ∆; (s) 40 ∆.
where i is the index of the leaf to be removed, hmax √ is the maximal horizontal diameter, ph is the horizontal periodicity, and 4π/( 5+1) is the Fibonacci Angle. If deletion takes place according to this function, then successive positions are never close (see Fig. 3.5). If, however, a random function is used, inevitably clustering would occur, and consequently spots with stronger thinning would result. The horizontal plane is moved vertically in the tree using a saw tooth or sine function. The sine function has an advantage in that it tends to remove more leaves in the center, where we find the highest concentration, than at the edges of the tree crown. The periodicity of the sine function usually cannot be seen within an animation, since a vertical period includes several horizontal periods. In Fig. 10.7 the method is used for generating a tree. Here the foliage was reduced from approximately 3500 triangles down to 100 triangles.
Figure 10.9 Screenshot rendered with 126 trees. The total amount of displayed triangles for a walkthrough varies from 20,000 to 32,000 on a high-resolution monitor and from 11,000 to 16,000 for video resolution
190
If, during the process, the projected surface Ai sinks below the surface of a respective point approximation with a reasonable set of points (see below), then the representation can be switched. Doing so, the described process can be combined with a representation-changing LOD method in order to move the change of the representation into the background and, thus, make it invisible.
This idea can also be applied to billboards. If a complex forest is to be rendered using a set of billboards, the number of the billboards can cause problems in large scenes. In Fig. 10.10(a) we see a scene with a forest that consists of 13,500 billboards. In the subimage (b), the billboards were enlarged in the background, and their textures were slightly changed. The visual appearance essentially remains intact, although still 4500 billboards were used.
(a)
10.5
Point- and Line-Based Rendering
Section 10.5 P OINT- AND L INE -BASED R ENDERING
(b) Figure 10.10 “Drop and Resize” with billboards: (a) all trees rendered, totally 13,500 billboards; (b) enlarged billboards in the background, now 4500 billboards (Courtesy of Nick Halper)
Having discussed several methods, we are now introducing a system that further refines the modeling and rendering with point- and line-based representations. It was proposed by Marc Stamminger and George Drettakis together with one of the authors [37]. The system allows even for complex landscapes to be rendered interactively. This is enabled by modern graphics cards with their enormous capacity and efficiency. Following the open system architecture in Chap. 8, also here single plants are generated as surface models, and are combined with the description of the whole plant cover in the form of an ecosystem data file. As an additional component we now use an LOD editor that approximates the geometry of the plants needed for a fast rendering through points and lines. Generally most of the plant geometry consists of relatively small leaves, which are represented by triangles. Already for a relatively small distance to the plant, for these triangles the average projected surface falls below one pixel, and a representation using a point is more efficient. Similarly, this is true for long objects, such as a stem or the branches of a plant. Also here an approximation using one or more lines is almost faster (see also [231]). Interestingly with such approximations often also the quality of the rendering increases. Very small polygons most likely start flickering through aliasing effects, due to the graphics hardware’s inability to process high-quality images during animation. Here the rendering of points and lines is essentially more
191
Chapter 10 L EVEL - OF -D ETAIL
stable. In fact, an increase in quality is obtained using this kind of approximation. At the start of an interactive landscape visualization, the rendering system reads in the plant geometries and the ecosystem data. Then from the LOD data of the plants of each ecosystem data file a strongly reduced point set of the total data of all plants is generated. This is done in order to use it once the plants have to be reduced to a level that even one point per plant is too much for an efficient representation. In addition, the ecosystem data can be constructed recursively, meaning a data file can, aside from the plant information, also include references to other ecosystem files. In this way, large areas can be rendered independent of their size, and, what is more, this hierarchical processing of the data enables the user to render such areas in real time. During the rendering process, the system decides for each plant and each frame to be generated whether the polygonal or the approximated model description should be used. Additionally, the geometric resolution of the approximation is dynamically adjusted to the projected size of the plant. Figure 10.11 illustrates the schematic procedure of the data processing as a partial refinement of the open system architecture of Fig. 8.1.
Figure 10.11 System outline for LOD rendering of complex ecosystems
Preprocessing of the Models
visual importance →
192
Each plant is divided into two subgeometries, one is represented by points, the other by lines. The decision on what approximation to use is currently provided by the user. In the future, however, this will be determined automatically through geometric analysis of the model structure. As a further step, the user determines the visual importance of each subgeometry. This is necessary, since some plant parts are visually more important than others. If this effect is exploited, a high visual quality can be obtained with an enormous reduction of the data. The decision with regard to the kind of approximation as well as the visual importance of the plant parts is done once per plant model. Thus in one step all petals of a plant can be allocated a high value in order to increase their visual importance. In the same way they can also be transformed as a whole into a set of points or lines. This assures a minimal manual preprocessing effort. As already mentioned, compact objects such as leaves are approximated using points. Here two different methods can be applied, depending on whether we are dealing with many small leaves or just a few larger ones. For an amount of many small objects a random point set is used, while for large, complex-
Section 10.5 P OINT- AND L INE -BASED R ENDERING
Figure 10.12 Point representation of a pine tree: (a) original model; (b) 13,000 points; (c) 6,500 points; (d) 3,250 points; (e) 1,625 points
(a)
(b)
(c)
(d)
(e)
shaped leaves a Poisson disk distribution is applied. Figure 10.12 shows a pine tree whose extremely large number of small needles was approximated using randomly distributed points. In Fig. 10.13 we see an example for the approximation of a plant with large leaves. If a Poission disk distribution is used, more satisfactory results are obtained. Since the calculation of the point positions is here very complex, previously computed distributions are used. Such distributions can also be generated in a hierarchical form [135]. Thus the appearance remains essentially unchanged, even if through the reduction within the context of the LOD rendering only some of the points are shown.
(a)
(b)
(c)
Thin and long structures are more easily approximated by lines rather than points. Since contemporary graphics hardware renders a line in about the same time as two points, a simple upper bound results for the point approximation. If three or more points can be represented by a line, the line rendering is faster. When four or more points can be represented by a triangle, then this is used instead.1 Figure 10.14 demonstrates a line approximation. The entire plant is represented by 106 lines. This transformation of the data in combination with the dynamic reduction allows us to render a field with 1500 plants with several frames per second. For rendering the original data consisting of approximately 12 million triangles, an much longer time would be needed.
Figure 10.13 Representation of plant leaves with points: (a) original; (b) representation with random points; (c) optimized point positions
← representation by lines
Using the described system, the LOD data description of a plant contains the polygonal data and its approximation. Beforehand the data was rearranged in 1 The
triangle strips used in many cases to decrease the number of vertices can most often not be applied in foliage, which consists of many small isolated surfaces.
193
Chapter 10 L EVEL - OF -D ETAIL
such a way that an efficient rendering and an invisible transition between the polygonal and approximate description are made possible.
(a)
(b)
Figure 10.14 (a) Representation of a small plant with 106 lines; (b) a field with 1500 plants. The original data was 12 million triangles, at the LOD rendering 5–10 Hz was obtained
The triangle description of the plant is arranged as a whole, but in random order in a display list (a vertex array). The same reordering is then applied to the point and line approximation of these triangles. In this way it is possible to produce any desired approximation by choosing a number k between one and n, where n is the total number of triangles: the first k triangles are rendered normally, and the last n − k triangles are displayed by their point or line representation out of the respective lists (see below).
Figure 10.15 Reduction according to the visual importance: (a) uniform reduction; (b) importance reduction, the visually important objects are kept polygonal
(a) visual importance →
194
(b)
The best results are achieved if the plants are not uniformly reduced. Visually essential parts such as the petals or other elements with special coloring should be reduced later. An example is seen in Fig. 10.15. The daisies in the meadow are visually important, although their geometric complexity is relatively small. If the scene is uniformly reduced, the result is not as good as if the essential parts are not reduced as much. A smaller reduction is often possible without losing much performance, since the visually important parts are often small. Because of the additional storage of point and line data, the quantity of the data to be stored is approximately doubled. Although this is acceptable for the mid-sized landscapes, for larger scenes the entire process of generating point and line approximations must be automated. In this case only a very compact description for the plants can be stored. In the case of Xfrog models this is possible only by storing the production data of the system instead of the geometric data. These are only a few kilobytes. The approximation and production of geometric data would here only be executed on the fly if this becomes necessary during rendering.
Rendering After a plant model and an ecosystem data file have been loaded, the geometric data is stored on the graphics board in so-called vertex arrays. These arrays permit a quick access through the graphics hardware, whereby the program can control which part of the list is displayed. This decision is made dynamically for each image during the run time of the system. First, visibility culling is executed on the basis of the ecosystem data, and in the following it is performed recursively for all visible ecosystem data files on the geometrical plant instances or the hierarchically included ecosystem data files. Once the visible models are defined, then for each model it we determine how it should be rendered. In the following, we are assuming that the original model consists of n triangles T1 , ..., Tn that in world coordinates have the surface A. As already mentioned, a part of the set is to be approximated by lines, another part is to be approximated by points. The triangles are divided into two subsets, respectively: TP = T1 , ..., Tk with the total surface Ap and TL = tk+1 , ..., tn with the surface Al (we have A = Al + Ap ). Hereby the subset TP should be approximated by points and TL should be approximated by lines. Let us further assume that TL is to be approximated by nl lines L1 , ..., Lnl , TP by np points P1 , ..., Pnp . In rendering, point and line representations are treated differently: for compact elements, which are approximated by points, we identify the number of points that are needed to render the object without holes. The number of defined points depends on the total surface of the plant, which was already defined in Eqn. (10.2), and permits an estimation as to the efficiency of a polygonal or pointbased visual representation. The actual decision can be influenced by the user, in that the user modifies a parameter d indicating the distance between two adjacent points in the image plane, i.e., the so-called sampling distance. An increased value of d produces a decreased number of needed points and thereby permits a rougher approximation. Consequently the actual size of the points on the screen should correspond to about Asp = d2 , however, in practice a slightly higher value is used. The number of necessary points is determined by the projected overall surface of the plant. According to Eqn. (10.2) this is Ap =
1 Ap . 2 r2
Section 10.5 P OINT- AND L INE -BASED R ENDERING
← point approximation
(10.5)
Here, r is the average distance of the plant to the virtual camera. The necessary point number p is obtained by dividing the projected surface of the plant by the surface of the points: Ap p = cp . (10.6) Asp Additionally, for defining the number of points, a factor cp is brought in that permits small corrections for the rendering, and possibly closes still-existing
195
Chapter 10 L EVEL - OF -D ETAIL
line approximation →
holes. Meaningful values for cp are between 1.2 and 1.5. If the number of the points needed for the approximation is greater than np , then the object will be rendered polygonally; otherwise it will be rendered as a point cloud. Further down we show how the number of points is varied and switches between the representations are obtained invisibly. For the part of the plant that is to be approximated by lines, the algorithm has to be slightly modified. Here two conditions are mandatory: the projected surface must be represented satisfactorily by lines, and the geometric errors of the line approximation itself should not be too great. Let L1 , ..., Lnl be the number of lines for the approximation of TL with a geometric error of l . In the image plane this error will be compared with the sampling distance. If l /r ≥ d , then TL is rendered polygonally; otherwise, just like in the approximation with points, the projected surface is computed as if all lines were drawn. Here again the projected surface Al of the triangles TL is determined. The computation is written as follows: Asl = l d =
ld . 2r
(10.7)
Here l is the total length of the lines in world coordinates. Accordingly the projected length is l/2r, where the factor 1/2 again considers the random orientation of the lines. The perspective shortening is considered with the factor 1/r, and not, as could be assumed, by 1/r2 , since the length and not the surface is projected here. In the next step we define the relationship between the projected surface Al of the triangle description and the line approximation using ql = Al /Asl .
196
(10.8)
If ql ≤ 1, then ql nl lines are drawn, otherwise the triangles. The lines are here selected randomly just like the points previously. Up to now we described where and when changes took place between polygonal rendering and the approximation with points and lines. In particular, with large d , this change can be made visible, and so-called popping artifacts can result. However, in the case of plant models, this can be avoided in that the representations of the whole model are not changed in one single step, but rather continuously for an always-increasing part of the triangles. Since the leaves are equal to many isolated surfaces, this switching is easily possible. As already indicated above, per triangle two points are randomly defined, and stored in a point list. The triangle list is then randomly reordered, and the per triangle obtained points in the point list are treated in the same way. Both lists are then arranged so that the points for the kth triangle can again be found at the positions 2k and 2k + 1 in the point list; meaning that the first 2k points accord with the first k triangles. The selected degree of detail in each case depends on p. If the necessary number of points p is greater than the triple number of the triangles, the entire triangle set is rendered. This is a good strategy based on the already mentioned ability of graphics adapters to generate a small triangle as fast as three single points.
If p < 2k is true, then the first p points of the point set are rendered; for a value of 2k ≤ p < 3k a representation change between triangles and points takes place, in that the first p − 2k triangles are displayed, and simultaneously the point rendering of the leftover triangles. Based on the uniform reordering of the triangles and their point approximation in the preprocessing step, the data can be rendered efficiently using two vertex arrays. This process of data selection is demonstrated in Fig. 10.16.
Section 10.5 P OINT- AND L INE -BASED R ENDERING
Figure 10.16 Rendering of a plant with points and lines. If the distance is small, polygons will be used. Starting at the distance given by Eqn. (10.6) the polygons are transformed into points. Later only some of the points are rendered.
Because of this form of transition to the approximated rendering, always p vertices are rendered, but never more than 3k. Here the rendering time is directly related to the number of pixels on the screen which were covered up by the object, and is thereby independent of the object complexity. This is an essential condition for efficient rendering algorithms of complex data. Figure 10.17 shows the influence of the point size and the scaling factor cp of Eqn. (10.6) on the rendering. If cp is decreased, the elements will be transformed earlier into the points. If the point size is increased, although the spatial resolution is decreased, the size of the points, however, permits a greater reduction. With this form of computation an interesting side effect is obtained: c and the point size can be varied dynamically, in order to achieve a given vertex rate. This in turn allows animations with constant frame rates and a very high frame rate during the pivoting of the virtual camera.
← dynamic variation
Hierarchical Description and Optimization As already discussed, in our system the vegetation is represented by plant models and ecosystem data files. To deal with the extremely large geometric complexity of entire landscapes, in two ways hierarchical data structures were implemented: firstly for the handling of complex single plants, and secondly for the representation of large amounts of small plants. The rendering and the LOD treatment of a plant are controlled by Eqns. (10.2), (10.6) and (10.7). These supply in each case the decision for the entire plant, a fact that on the one hand speeds up the production, but on the other hand has also disadvantages. As an example, parts of a large plant such as a complex tree, can be close to the viewer, and for this reason should be rendered as polygons, while other plants are distant and therefore could be approximated.
197
Chapter 10 L EVEL - OF -D ETAIL
Figure 10.17 Influence of scaling factor cp and the point size; top: a small scaling factor cp = 0.75 produces fewer polygons and more points; middle: scaling factor and point size of one; bottom: point size is two, the image displays a greater granulation, however the holes are filled
spatial hierarchy →
198
In order to avoid such an effect, we divide such objects spatially. An octree is produced that divides the object recursively into cells at those places at which much geometric data is present. A similar construction was already addressed in Sect. 9.6 with the quadtrees. These are defined two-dimensionally, while octrees work in a three-dimensional space in an analogous way. For each cell of such an octree, the decision about the geometric representation is made separately by the LOD, and the approximation is executed accordingly. A similar strategy is pursued for large concentrations of plants. Here it is often too time consuming to handle each single plant, even if only one point of the approximation is used. Consequently, such large sets usually are stored in square cells that are then joined. If there are too many plants in a cell, it is divided until the number of plants is below a given number. Each of these cells is represented using ecosystem data files. Aside from the plant positions, in such a data file also a point set is stored that approximates the whole geometry constituted by the cell. Instead of dealing with single plant models for the rendering, the point set is used when a cell lies in the background of the image. Additionally, cells can be organized hierarchically, meaning ecosystem data files can include several ecosystem data files as references.
In this case the approximations from the references are merged in order to obtain an approximation of the total geometry.
Section 10.5 P OINT- AND L INE -BASED R ENDERING
Results Current PC-based graphics boards offer a true vertex rate of about 5-10 million vertices per second. With the applicable caching strategies that store possibly the most often used geometries of a scene directly on the graphics card itself, a rate of about 11-15 million vertices can be obtained. This data rate is sufficient to render relatively complex outdoor scenes interactively. However, if the current development of graphics boards remains stable for the next two years, then a fluent rendering should be possible for almost all scenes.
(a) Figure 10.18a illustrates a scene similar to that in Fig. 8.18; however, the image here consists of approximately 100 million triangles. While for the image rendering of the original scene with about 16 million triangles, generated using conventional raytracing, about 75 minutes of computer time was needed, the extended scene with one sample per pixel can be rendered with two to five frames per second. However, here it must be noted that with the conventional rendering also antialiasing techniques were applied, which by their nature demand a greater computing time. Figure 10.18b shows a second scene with a complex tree and 13,000 sunflowers, which consists of about 70 million triangles. This scene can typically be rendered at four frames per second. The relatively low performance occurs in connection with these models, because the sunflowers, with their large leaves, do not allow for a greater reduction. The table in Fig. 10.19 illustrates the complexity and the average computing time.
Figure 10.18 (a) Outdoor scene rendered at about 5 Hz frame rate, the original model size is 100 million triangles; (b) sunflower field, 4 Hz, original size approximately 70 million triangles
(b)
199
Chapter 10 L EVEL - OF -D ETAIL
Figure 10.19 Geometric complexity of various scenes and the average rates of polygons, lines, and points together with the average frame rate
200
After we discussed in the previous chapters a number of approaches to modeling plants and rendering them on screen, in the next chapter of this book the focus will be slightly modified. Up to now we have been dealing with possibly natural and photorealistic images. Now we will introduce nonphotorealistic techniques, though still focusing on the rendering of natural objects. Model 640 trees as in Fig. 10.12 Fig. 10.14 Fig. 10.18a Fig. 10.18b
orig. size triangles
LOD triangles
LOD lines
LOD points
frame rate
10×106 12×106 100×106 70×106
250,000 280,000 230,000 450,000
50,000 20,000 200,000 220,000
200,000 0 150,000 400,000
6–8 Hz 6–10 Hz 4–5 Hz 3–4 Hz
11
Landscape Sketches Artistic Renditions
In contrast to photorealistic landscape images, the rendering of synthetic plant and landscape sketches has undergone little research so far. However, the already-addressed areas of application in architecture and landscaping require this kind of rendering. Currently, prefabricated images, which are combined via computer, most often must suffice. In addition, there are several collections of images [58] that incorporate lots of plant images in different styles and scales. These images can be copied and added to the drawings. Aside from the enormous manual effort that is needed to combine the images, this method, of course, is only applicable for single images. New media, however, permit entirely new forms of presentation. The user should be able to analyze planned buildings virtually, to see them in different views, and to modify the corresponding scenes interactively. This is not possible using traditional plant images as part of a series. Digital plant models and drawings are required, which can be turned and moved and thereby reflect a spatial coherence. Since this kind of modeling is also useful in areas outside of architecture and landscaping, such as biology, botany and education, developing the proper methods and tools is a worthwhile undertaking that reaches far beyond the rendering of plants. In this chapter we will introduce different approaches for the production of plant images in the style of hand-drawn artworks. After a short introduction into the area of nonphotorealistic rendering (NPR), traditional drawing styles used by artists will be examined with regard to their algorithmic implementation. It has become evident that some drawing styles are replicated satisfactorily via the computer, while others cannot be simulated. In a new method, some of the traditional techniques are imitated, and sample plants are produced in various drawing styles. Sample animations can be found on the accompanying website that prove that models generated in this way have the required spatial coherence, i.e., they can be turned and scaled without interfering flickering effects. An important aspect when drawing trees is the rendering of the trunk and the branches. Here the methods differ from those used for the leaves, since we are
201
Chapter 11 L ANDSCAPE S KETCHES
dealing with a totally different form of geometry. In particular, the production of cross-hatchings on the trunk and branches is an interesting problem that is, however, partly solved by existing approaches.
11.1
Nonphotorealistic Rendering
Not only the production of synthetic plant sketches, but also the entire area of nonphotorealistic rendering will be continuously investigated during the years to come. The subject has been in discussion since the 1990s, and today the second phase in investigating the problems has been reached, with some notable attempts to systemize the area (see [215]) and to classify the related approaches. Aside from the purely scientific interest, a starting point for the investigation of such representational forms is the realization that many illustrations in books and other traditional print media are not photographs, but rather abstract drawings, sketches, and illustrations [212]. This might be due to technical reasons such as low printing costs. Beyond the cost factor, illustrations seem to offer a better way for expressing the contents of certain kinds of complex pictures. As an example, let us imagine that a medical anatomy atlas consisted only of photos. It would not be very expressive, because photographs can for the most part only vaguely reflect the internal organs of the body and their relationships to each other. Here drawings serve the intent of such a highly specialized thematic much better, since they can represent the important picture content with a few lines. Strothotte et al. emphasized such advantages of illustrations in various articles [194, 213, 214].
line graphics →
path-and-stroke metaphor →
202
An additional advantage of nonphotorealistic rendering is the possibility of coordinating the illustration style with the image content, meaning that parts can be emphasized in correspondence to their importance. Also, different drawing styles allow for the production of totally different image expressions or mood settings for one and the same scene. The first studies about on nonphotorealistic rendering originated from the time in which raster displays were introduced, and procedures were required to display geometric data on those output devices. Line drawings were used, and soon algorithms were developed to draw the lines in a way to enhance the geometric characteristics of objects especially well [6]. Later works focused on refining algorithms for line drawings [44, 55, 56, 57, 105]. Here the so-called “path-and-stroke”-metaphor is used, where a line to be drawn is rendered using a path that becomes the base for a possibly very broad line or a line that consist of a pattern. The actual line then imitates, for example, a brush stroke or a pencil line. Guo and Kunii [78] use this method to imitate Chinese brush drawings. Hsu und Lee [98] extend the approach by allowing the user to draw lines with arbitrary images as well as with recursive and fractal functions along the path.
Section 11.1 N ONPHOTOREALISTIC R ENDERING
Figure 11.1 “Winterland”, nonphotorealistic rendering using image manipulation (Courtesy of Jan Walter Schliep)
For a simple form of nonphotorealistic renderings, image manipulations can be used. These work exclusively with image data without any other information. Most of the image-processing programs offer different filters that allow for the corresponding alienation of the images (see Fig. 11.1). Another important step is to include three-dimensional model information that is used to control the image production. Such information is usually available if images are generated within the framework of a rendering pipeline such as the one mentioned in Chap. 9. Saito and Takahashi [181] use such model information to modify the image rendering, and also to add important edges of the models into the produced images. The images adopt the appearance of drawings, and allow in an elegant way the merging of photoimaging and drawing. In order to analyze the edges, the method uses the already-mentioned depth buffers of the image, which are used by the graphics hardware during rendering. Since for each pixel the depth value is stored, mathematical operations can be executed on the depth buffer, such as the calculation of the spatial derivation of the depth function. If pixels with large derivations are colored, lines evolve that emphasize the important edges of the model. The results are then overlayed onto the realistic image in order to render it more expressively. The three-dimensional model information is here merged into the image through the application of the depth buffer. Lansdown and Schofield developed independently from Saito and Takahashi a similar approach, which they published as the “Piranesi”-system in [112]. However, the method is a half-interactive drawing program, and thus is appreciated by a different type of user, such as the artists or architects. The system is designed to change and artistically manipulate images; for example, twodimensional areas can be mixed with projections of three-dimensional models.
← depth buffer
203
Chapter 11 L ANDSCAPE S KETCHES
The article that most likely was the first one in computer graphics focusing on the illustrative rendering of plants was written in 1979 by Yessios [234]. The paper deals with computer-generated patterns for applications in architecture, such as tiled floor covers, walls, and also plants, which are generated as symbolic images (see Fig. 9.1d). Alvy Ray Smith focused on fractals and formal plant descriptions [201]. And aside from other models he generated a tree that he called the “cartoon tree”. The branches of the cartoon tree display disks instead of leaf clusters. Reeves and Blau (see Sect. 4.5) implemented a similar form of representation of leaves and sets of leaves using small discs for the production of their (realistic) trees. Both works are important sources of inspiration for our method using so-called abstract drawing primitives, an approach that represents the foliage of trees and shrubs with simple forms. It will be described later in this chapter. Another article in this context was authored by Sasada [186]. He uses tree sketches in an architectural environment. For the rendering of the trees, he used an approach developed by Aono and Kunii (see Sect. 4.3). The generated images are projected as textures onto billboards. Since the method of Aono and Kunii only renders branches, but not the leaves of the trees, the spectrum of image contents is limited.
Interactively Generated Plant Sketches
stroke texture →
difference-image algorithm →
204
A number of works on nonphotorealistic rendering were introduced by the David Salesin’s group at the University of Washington. Instead of defining lines individually with the path-and-stroke metaphor, so-called “stroke textures” are introduced. Here, a texture consisting of strokes is generated for various gray scales and viewing angles. This texture can be applied for automatic rendering [232, 233] as well as in the context of interactive drawing programs [182, 183, 184]. In [184] a tree sketch is modeled with this method. Hereby the directions of the foliage and trunk silhouette are modified by a given vector field, and by an additional gray value image. Figure 11.2 shows the tree sketch as well as the applied data. The user defines the grey value image, for which a photograph can be used. Additional inputs are the stroke texture itself as well as the vector field for their orientation. The angles are defined by colors of a corresponding texture. For the production of the image, the so-called difference-image algorithm is used. The algorithm places textures or strokes in the resulting image until the differences in the grayscale values between the given and the resulting image are sufficiently small. Here a simple optimization algorithm is used for the filling that adds new strokes at the places with the largest differences. In this sense the method is a half-toning technique with a greater freedom in the choice of the line objects that are used for drawing. In a similar way it is possible to illustrate other objects.
Section 11.1 N ONPHOTOREALISTIC R ENDERING
Figure 11.2 Interactively generated tree sketch: (a) grey value; (b) vector field; (c) stroke texture; (d) result (Courtesy of M. Salisbury)
(a)
(b)
(c)
(d)
The results are of a high aesthetic quality; however, this procedure is not suitable for the automatic rendering of landscapes. An important aspect of this work is the use of different pictures or buffers for the production of the strokes in the illustrations; this is an extension of the Saito and Takahashi approach, and will be used in the following at several places.
Plant Pictures in the Style of Children’s Books Kowalski et al. [111] introduce a method to illustrate plant scenes in the style of two well-known authors of children’s books. In contrast to the alreadymentioned procedures of Salisbury et al. [184], here we deal with an automatic method that also uses a 3D model as its basis.
(a)
(b)
Figure 11.3 Automatic rendering of tree illustrations (Courtesy of M. Kowalski et al.)
(c)
For rendering the image, the authors apply a multilevel algorithm, which in the first step illustrates the scene conventionally. The grayscale values of the created image are the starting point for the placement of so-called “graftal textures”, which are positioned at those places that appear dark in the initial image. Here the authors utilize the difference-image algorithm introduced by Salisbury et al. A graftal texture contains strokes or other shaping elements, but also an algorithm for the production of graphical objects can be called up. A special ad-
205
Chapter 11 L ANDSCAPE S KETCHES
requirements →
vantage here is that the sizes of the objects can be selected to reveal the correct perspective distortion or to be constant. For the first image of a sequence, the objects are chosen according to this scheme. For the following images, on one hand the system tries to position the objects due to the new positions of the corresponding elements in the scene, and on the other hand to achieve a possibly high coherence between the frames. Once the surfaces of an object are retrieved and the old positions of the graftal textures, the authors are then able to choose the new positions similarly. However, here they have to consider old graftals that can be left out and new graftals that possibly appear. However, the so-obtained image sequences show that the goal of spatial and temporal coherence is only reached partially using this method. In Fig. 11.3 the method is sketched. Area (a) shows the initial scene, area (b) the respective nonphotorealistic result. Particularly the foliage of area (c) is a good rendition in the sense of illustrations. A disadvantage of the method is that the initial models must represent the foliage of a tree through large balls that have to be specially produced, and thereby the use of realistic tree models is excluded. A generally applicable procedure should use such surface models, of which there are many. Also, the application areas such as architecture, landscaping, and biology create more requirements: it should be possible to vary the level of abstraction and to execute the transition from the illustrative rendering to a realistic representation. Additionally, the already-mentioned spatial and temporal coherence between the individual pictures of a sequence should have been established, so that the illustrations generated can be shown interactively or as animations. In Sect. 11.3 we introduce a solution for this problem. It is based on the analysis of traditional drawing methods from various illustrations. Thus in the following we will examine what kinds of effects or styles are actually used in hand-drawn illustrations, and also up to what degree it is possible to formalize and transfer the findings into an executable algorithm.
11.2
206
representation of light →
Traditional Drawings of Plants
There is a large number of different illustration styles for plants. At the beginning of Chap. 9 some examples were shown that only let us anticipate in how many different styles a tree can be drawn. A comprehensive demonstration of all the methods is not possible within the context of this book. However, different approaches are illustrated in the following by means of several hundred plant drawings made by different authors. The illustrations mainly originate from Evans [58]. He offers a collection of models prefabricated specially for architecture. Additional tree illustrations can be found in the literature; see, for example, [123, 198]. A first classification of the illustrations is oriented on the use of light. While
many illustrations from botany and landscaping only replicate the shape of the plant, architectural illustrations also use light and shadows. The motivation for the often exclusive usage of the general form results from the descriptive character of botanical drawings, which mostly aim at illustrating the spatial divisions in a plant community. Architects and designers, however, are interested in the light exchange between the objects of a planned ensemble, and create their illustrations accordingly.
(a)
(b)
(c)
(d)
Thus, for the algorithmic production of plant illustrations three factors have to be examined. Firstly, the representation of the general plant shape that must be generated in any case; secondly, the light effects and their representation; and, thirdly, the drawing-like production of a tree skeleton. The form of a tree is in most of the illustrations generated using two methods: either the artists use figural abstraction, or the presentation of form takes place through visual agglomeration of many small objects that constitute the model. With figural abstraction, the tree is illustrated using a few strokes. Examples are shown in Fig. 11.4. While in the subfigures (a) and (d) the mere outline was drawn, in (b) and (c) cross-hatchings indicate additionally the threedimensional shapes of the trees. With visual agglomeration, the form of the tree, and especially the shape of the foliage, is generated using a collection of many small objects. Examples are shown in Fig. 11.5: while for (a) relatively abstract primitives were used, the chestnut in (b) consists of more-exact visual approximations of the chestnut leaves. In the tree in (c), the leaves are indicated just by point-shaped objects. Thus, in an algorithmic implementation the leaves should possibly be generated using primitive objects, whose appearances can vary from extremely abstract forms to realistic outlines. That also means that the presentation of the leaves must occur in a relatively general manner, and may no longer be limited to the geometry of the real leaf shape. Therefore, it is necessary to specially process the data provided by the plant-generating programs, and to store the leaves in the form of abstract primitives. Let us turn to the rendering of light and shadows. In most of the artworks the illustrators use two methods for the trees: either the wealth of details of an illustration is varied in order to represent lighter and darker areas or crosshatchings are used. The upper part of Fig. 11.6 shows a number of trees that
Section 11.2 T RADITIONAL D RAWINGS OF P LANTS
Figure 11.4 Production of form using abstraction (Courtesy of L. Evans)
← representation of form
207
Chapter 11 L ANDSCAPE S KETCHES
Figure 11.5 Production of form using visual agglomeration (Courtesy of L. Evans)
(a)
shadow area →
characteristic structures → 208
(b)
(c)
were created by varying the detail richness. Depending on the drawing style, the densities of the primitive objects were varied and also their appearances. As an example, the dark areas of the crown were blackened additionally using thicker contours of the primitives. The applications of cross-hatching are manifold. Depending on the drawing style, one or more directed cross-hatchings are overlaid, some of the artworks display relatively long cross hatching lines. The lower part of Fig. 11.6 shows some examples that reflect the variations available using these techniques. When viewing the shadow areas of tree sketches we notice a commonality: the intensity distribution can be divided into two or three areas. One area consists of the part of the crown that is fully affected by the light. This area is mostly represented only with a few strokes. Another area lies in the penumbra; here a medium lighting has to be achieved; the necessary strokes are generated using cross-hatching. The last area encompasses the dark shadow. In the illustrations, which modify the grey values of the illustration through variations of details, this is obtained using additional detail or through thicker lines that are extended to the black areas (see also Fig. 11.6 left bottom). All three areas do not exist in each drawing. However, the above division offers a chance to achieve from the algorithmic viewpoint complete definitions of the problems. If an algorithm for the automatic rendering of plant sketches is able to render all areas with their integral elements, and at the same time to separate these areas, a potential solution of the problem is ascertained. Of course, this does not mean that there are no other rendering methods (see Fig. 11.5c). However, a great number of the drawing styles could be covered through such a solution. From the illustrations shown so far it becomes evident that the imitation of a natural leaf or branch form is in no way the only means to achieve the characteristic appearance of a tree. In fact, there exist very different approaches for the computer-assisted illustration of foliage and tree skeletons. Figure 11.7 shows the range of options. On the one hand there are drawing styles in which the foliage is a combination of many primitives, similar to those
Section 11.2 T RADITIONAL D RAWINGS OF P LANTS
Figure 11.6 Upper part: shadows created by adding detail. Lower part: shadows created by using cross-hatching (Courtesy of L. Evans)
209
Chapter 11 L ANDSCAPE S KETCHES
Figure 11.7 Methods of rendering typical tree structures (Courtesy of L. Evans)
(a)
tree skeleton →
(b)
(c)
that were already introduced. The rendering of the primitives varies from realistic three-dimensional renderings to flatter two-dimensional-looking objects up to abstract points. On the other hand, we can replicate the characteristics of a tree using abstract lines. Such drawing styles are also seen in Fig. 11.7. Part (b) shows a tree (probably an oak) whose foliage was given depth using added elements such as indications of cross-hatchings. In part (c) this is not expressed that strongly, i.e., the foliage is almost exclusively represented using lines. In both cases the lines function as silhouettes and thereby represent the tree as an entity. Just like the rendering methods for foliage, different drawing styles are available for rendering the tree skeleton. These range from realistic representations of the tree skeleton up to mere silhouettes (see Fig. 11.8). Here shorter and longer cross-hatching lines are used; the lines can be overlaid in several crosshatching directions.
Figure 11.8 Representation of the tree skeleton using cross-hatching lines (Courtesy of L. Evans)
210
A special case, interesting from the algorithmic viewpoint comes into effect when in specific styles the directions of cross-hatching lines are selected in such a way that they can also be interpreted as intersection lines between the object and a number of planes. Such examples are also to be seen in Fig. 11.8. Further down we introduce an algorithmic implementation of these processes, and show synthetically generated images. Beforehand, however, we will discuss a computer-based method with which the foliage of a tree can be “drawn” with a high degree of freedom in the style of the already-presented hand-drawn images.
11.3
Synthetic Plant Drawings
Section 11.3 S YNTHETIC P LANT D RAWINGS
As discussed at the beginning of this chapter, in the past diverse attempts were made in which trees were illustrated as skeletons with a number of different objects representing the leaves or leaf clusters. This idea can be generalized with the introduction of so-called “abstract drawing primitives”. These are polygons always facing the viewer, similar to the already-discussed billboards. The polygons reflect here an outline of a leaf or of a group of leaves. The drawing of the entire tree then consists of a drawn version of the tree skeleton and the appropriate rendering of these primitive objects. For the variation of the detail, which was identified as an essential forming element, depth buffers are used analogously to the works of Saito und Takahashi. They determine which part of each of the primitives should be drawn. However, the decayed form of the foliage and the corresponding unsteady structures in the depth cannot be processed by applying depth derivatives of first and second order, since in this case too many lines would be created. Instead, simply the depth differences are analyzed. As a starting point for the drawings, realistic tree geometries are used that can be generated with the already-introduced methods. Aside from the applicability of the existing models, here another advantage results: with the appropriate selection of abstract drawing primitives, a correlation between a sketched tree and a photorealistic rendition can be produced. This is useful in an animation when a transition is desired for artistic reasons, or in the course of a design process when the status of the planning should be visualized using the realism of the illustrated models. An additional advantage is that the complete three-dimensional information can be used, and, thus, the correct shading of the models is possible.
← abstract drawing primitives
← depth differences
Figure 11.9 Example trees used: tree I as complex example, tree II (small lime) as an example for a model that has to be represented in detail, and tree III (thuja) as a representative for pine trees
Tree I
Tree II
Tree III 211
Chapter 11 L ANDSCAPE S KETCHES
(a) Figure 11.10 Data used for the processing of tree models: (a) tree skeleton; (b) thinned out tree skeleton; (c) leaf positions, the varying colors mark points of different geometric resolution
drawing of the foliage →
212
Figure 11.9 shows some models for which the synthetic illustration is to be analyzed. Tree I is a larger tree that is used to demonstrate whether the method is appropriate for realistic complex models, tree II was selected as an example for a smaller, detailed tree to be drawn, while tree III is used as a representative of a pine tree. The tree geometries are divided into two parts for further processing: the tree skeleton and the foliage. The latter is only represented with the position and the surface normal of the leaves; all geometry information is deleted. In this way the already-discussed abstraction is implemented. However, it is not necessary to process the very detailed information provided by the realistic tree models, if later on they are to be represented by solely a few lines. If for relatively abstract illustrations only a few, but large primitives are required, then the number of leaf positions in the initial model can be decreased accordingly. This takes place either manually in the modeling program or through an automatic level-of-detail (LOD) mechanism in the rendering program for tree geometries.
(b)
(c)
Figure 11.10 shows the required intermediate data for the illustration. The tree skeleton in part (a) most often is only required up to the second branching order, since, similar to the hand-drawn illustrations, in the computer-generated illustrations the higher orders often can be left out. In part (c) the leaf positions are shown for different sets of leaves. In the highest resolution we have 183,000 positions, in the coarsest about 8,800 positions. After the preprocessing and the reading of the model data, the foliage is drawn. The use of the abstract drawing primitives occurs here following the drawing styles shown in Figs. 11.5 and 11.7, in which leaves are illustrated with more or less naturally realistic contours.
The polygons that are used as drawing primitives are joined to the leaf positions in the tree, and are aligned according to the viewing direction. A number of drawing styles can be achieved with disks or randomly aligned ellipsoids. Additional candidates that function as representatives for whole clusters of leaves are leaf-shaped polygons or also jagged larger circle type disks, similar to the drawings in the children’s books at the beginning of this chapter. The algorithm works in two steps: in the first step the primitives are drawn according to their position in the tree, whereby through the depth buffer of the hardware hidden parts are eliminated. The polygons are closed, their surface will be drawn in white, and their contours with black color. The result is a very detailed clustering of primitives similar to Figs. 11.5a or 11.7b–c. To achieve fewer details, in the second step it becomes necessary, in addition to the elimination of occluded surfaces, to further delete parts. This process is executed using the depth-difference algorithm.
Section 11.3 S YNTHETIC P LANT D RAWINGS
The Depth-Difference Algorithm Saito and Takahashi [181] recognized the importance of depth-buffer-differences for obtaining important lines. The models they dealt with are, however, smooth surfaces in contrast to the decayed surfaces of foliage. In the same way as discontinuities of the first and second order are appropriate for the production of important lines on smooth objects, discontinuities of zero order, i.e., simple differences, can be used for defining important lines of decayed objects, such as trees and fractals: the contour of a drawing primitive is only drawn if the difference to the depth of the primitive positioned behind it surpasses a threshold defined by the user. These values can either be defined in the coordinate system of the camera or can be read out directly from the depth buffer. However, the relationship between the two values is not linear. The depth z in the camera coordinate system can be determined from the depth buffer value d (d ∈ [0...1]) using z=
d−
z1 z0 (d1 −d0 ) z1 −z0 (z1 +z0 )(d1 −d0 ) 0) − (d1 +d 2(z1 −z0 ) 2
,
(11.1)
where d0 and d1 are minimal and maximal representative values of the depth buffer, z0 is the minimal distance from the virtual camera to the object to be illustrated, and z1 is the distance to the object furthest away (see [136]). The reason for this nonlinear relationship is the appropriate usage of the available memory for the depth values in connection with the projection of the graphics hardware. Since the values can only be stored with a limited accuracy, this accuracy must be used in a range close to the image plane, where comparatively smaller objects have to be depth-ordered exactly. In the back part of the image, however, where only large objects can still be recognized, the depth test is implemented with less accuracy.
213
Chapter 11 L ANDSCAPE S KETCHES
The relationship between the depth in the camera coordinate system and the depth buffer is, after elimination of unimportant terms, z ≈ l/(d − k), where l and k are constants that determine the nonlinearity between z and d. The greater the nonlinearity, the greater the relationship between z1 and z0 . The nonlinearity thereby results in the depth differences for distant objects being smaller than for close objects. Interestingly enough, this effect is often desired. The consequence is that the depth differences between the drawing primitives for distant objects must be relatively larger in the camera coordinate system so that the same difference can be produced in the depth buffer. This way fewer lines and thereby fewer details are produced for distant objects. This effect can also be seen in hand-drawn scenes. To compute the appropriate threshold for the depth differences in the camera coordinate system, the depth of a tree is defined and an appropriate percentage, such as 10%, is allocated as the threshold. The same happens with depth buffer values: the following examples were computed with values d0 = 0, d1 = 65, 535, z0 = 1 and z1 = 11. Here the maximal depth difference of 10 meters accords approximately to that of large trees.
Figure 11.11 Computer-generated drawing of tree I with varying depth-difference threshold and disk sizes: (a) size=0.15, threshold=1000; (b) size=0.7, threshold=2000
(a)
abstraction degree →
214
(b)
In Fig. 11.11, tree I is illustrated with disks as drawing primitives. For varying sizes and depth values different illustrations are yielded for the same object. To enhance the depth impression, each of the lower parts of the primitive contours is illustrated using thicker lines. The trunk and the branches are in these illustrations only represented in a simple way by their outlines. The implementation of additional drawing primitives is shown in Fig. 11.12. Here the example tree II is illustrated using leaf-shaped primitives with an outline depending on the normals of the respective leaf positions selected from the given set. For the definition of the respective leaf shape, interpolation between nine given primitive outlines takes place. This procedure offers another advantage: because of the interpolation, the variation of the leaf shape can be applied to a greater or lesser degree, and it is possible to replicate the different representational forms for the structure, ranging from an almost flat to a three-dimensional appearance.
Section 11.3 S YNTHETIC P LANT D RAWINGS
Figure 11.12 Application of leaf-shaped primitives; here interpolation takes place between nine given shapes depending on the direction of the normal
As already mentioned, through the nonlinear representation of the values in the depth buffer, an automatic reduction of the detail for trees in the background is possible. This effect can be increased or decreased by varying the relationship between z1 and z0 : a small quotient produces smaller differences, a larger one allows for the trees in the background to only appear as their outlines.
(a)
(b)
This kind of visual abstraction can be reinforced by scaling the primitives for the plants in the background. Kowalski et al. propose in [111] an equation for the scaling factor r for the size of their primitives: it uses a weighted sum between a scaling d/s for primitives with visually constant size in all distances (here d is the desired projected size, and s the actual size), and a scaling with uniform size: r = w(d/s) + (1 − w)
w ∈ [0..1]
Figure 11.13 Additional abstractions through enlargement of the primitives for distant trees: (a) primitives remain unchanged; (b) primitives are enlarged, a clear outline results
(11.2)
Equation. (11.2) can be extended in that w is allowed to accept values larger than one, and in this case the second term can be eliminated. The result is that the primitives for the more-distant trees can become greater, and in this way an additional abstraction degree is created. Figure 11.13 shows the effect. In part (a) tree I is illustrated with different distances to the viewer, where the primitive size was not modified. In part (b) the primitive size was enlarged over-proportionally, so that the trees behind the first tree appear to be smoother.
215
Chapter 11 L ANDSCAPE S KETCHES
animation →
real-time rendering →
shadow computation →
216
Rendering There are three application scenarios from architecture and landscaping in which the production of hand-drawn plants is not feasible or not even possible. In the first case individual high-quality illustrations are to be produced from computer-generated planning data, in order to make the planning results visually accessible for the user. Here it is a special advantage if the plants can be illustrated realistically as well as at different abstraction levels, since here the illustration of the landscape can be adjusted to the needs of the planner. In the second case, a planned landscape or a building with surrounding plants is to be animated as a drawing, so that the viewer can virtual stroll around. For this, the produced images must inherit a large coherence in order to avoid flickering during the animation. In the third case, a planned area is to be interactively explored. This can also be implemented using a drawing-like style, which has the advantage that many details can be left out, though simultaneously the planning-like character is visualized. In this case the images must be rendered very quickly, and loss of quality is here acceptable. The rendering process therefore consists of two variants. The first variant produces images with high quality, where the computing time can be higher; in the second variant a quick rendering with lower quality is desired. Both variants are realized within the framework of the software. The results are discussed in the next section. In the first step the depth differences must be computed. For interactive usage, the tree skeleton is illustrated together with the abstract drawing primitives, the depth buffer is read out, and all pixels with a depth difference beyond a given threshold are colored black. The resulting image can be combined directly with other elements in the scene. For high-quality images, and also animations, tree skeletons and leaf primitives are treated separately. The images are later combined. Here for each image part, an individual depth-difference threshold is used. Many of the drawing styles require the illustration of shadows. As already indicated in Chap. 9, this can be implemented in two ways: In the first method, each pixel can be calculated via the software to analyze whether the illustrated object is illuminated directly from the light source or whether another object lies in between. In this method the image is generated from the viewing direction of the light source, and the depth buffer is read out. In the second step, if the coordinates and the depths of the objects are transferred into the coordinate system of the light source, with the support of the stored depth buffers, it can be determined whether an object is closer to the light source. In this case the object lies in the shadow (shadow buffer technique). The second method uses the graphics hardware. Each triangle of the scene produces together with the light source a shadow volume. Per triangle a frustum of a pyramid with a triangular base is created. With a special buffer, the light source for all objects within this volume is switched off [136]. The method has
the advantage, facilitated by the graphics hardware, of working very quickly. Because of some additional technical constraints it unfortunately does not work with the large number of isolated surfaces that are found in the foliage of the trees. Consequently, the shadows for the plant sketches are calculated by applying the software method. The respective image will be stored in a separate shadow buffer, and can then be used for the modulation of the depth threshold or to modify the line thickness of the illustrated primitives. In an interactive case, no shadows are computed at all. For rendering high quality images with temporal coherence, the retrieved pixels above the depth-difference threshold are not drawn directly, but instead are transferred into lines (vectorization). Here a so-called mean-square-error method [155] is applied, which inserts a fitting line or a curve segment into a set of points. The vectors produced can then be drawn with different line styles, and can also be scaled as needed.
(a)
(b)
An additional refinement of the procedures uses an index image with false color representation (see Sect. 9.8). With the subsequent vectorization, all the primitives belonging to the lines can be combined and drawn later. This increases the quality of the illustration immensely. Also the coherence can be noticeably increased, for example if an object has to be turned and scaled. An additional enhancement of the quality could be achieved if for each of the primitives the respective visible area of the outline was assigned, and then interpolated over time. This would eliminate even the last remaining artifacts in the animation, although the image sequences already reflect a high quality without this optimization. In Fig. 11.14a, the thuja from Fig. 11.9 is illustrated using two different drawing styles. In both cases ellipses were used as drawing primitives, here with
Section 11.3 S YNTHETIC P LANT D RAWINGS
(c) Figure 11.14 Computer-generated tree sketches: (a) drawing of a thuja in two different styles; (b) maple tree; (c) oleander
217
Chapter 11 L ANDSCAPE S KETCHES
interactivity →
random orientation. During the drawing a slight random move and rotation was executed, so that the lines are overlapping, which gives the image a lighter appearance. While for the left thuja the above algorithm with a threshold of 400 was applied, the right version was created through a slight modification: here each time only the lower part of each visible ellipse was drawn. The threshold was decreased to a value of 100. The maple in Fig. 11.14b consists of 16,200 primitives and is rendered from part (a) just like the thuja. The threshold here has a value of 1000. For the rendering of the oleander in part (c), leaf-shaped primitives with random orientation were used. A threshold of 10 assures that practically all visible parts are drawn. The illustrated results were published in [42]. Although the method is a partial success on the way of rendering computer generated plant sketches, with this procedure only a small part of the wide range of drawing styles can be replicated. The method does however allow for a certain freedom in generating variations, so that a variety of images within a presentation can be rendered. Unfortunately, the method in the present form has only a limited suitability for an interactive rendering. The readout of the depth buffer is a time-critical operation that currently is still not sufficiently fast. New forms of hardware-related programming of graphics boards could here lessen the problem. These, for example, allow for rendering routines such as the retrieving of depth differences directly in the graphics memory without having to transfer the data to the CPU. The suitability of this method for synthetic illustrations must however still be evaluated. The following paragraphs focus on additional questions with regard to the rendering of drawn plants, and also on more common objects. We address the rendering of cross-hatchings that are found in various drawing styles. The implemented methods allow for an automated rendering of cross-hatchings on different surfaces. Two of the methods are introduced in the following.
11.4
Rendering of Cross-Hatching
Cross-hatchings usually serve the rendering of lighting effects in illustrations. They are applied to those regions that lie in the shadow, and in contrast to adding details they permit an additional blackening that has a more two-dimensional effect. Hence, they are rather used for smooth surfaces such as the trunks and branches (compare Fig. 11.8). However, in the lower part of Fig. 11.6, cross-hatching can also be seen in the foliage.
218
Methods for the automatic rendering of cross-hatching again must include algorithmic approaches. At the beginning of the chapter, we addressed the method of Salisbury, Winkenbach and Salesin, who solved this problem with special stroke textures that display cross-hatching. Through the arrangement and blending techniques, cross-hatching can be rendered that consists of many short strokes. Producing longer strokes, however, often proves a failure.
Winkenbach and Salesin [233] extend the approach to parametric surfaces. Elber also presents an algorithm for the cross-hatching of parametric surfaces [55, 57]. In both cases the authors have illustrated cross-hatching with longer strokes. However, both approaches have the disadvantage of being dependent on a parameterization of the geometry which is often poor or not even present.
Section 11.4 R ENDERING OF C ROSS -H ATCHING
The parameterization allocates to each vertex two additional numbers in an interval [0...1], which aim at pointing to a position of the texture. The place described by this vector is to be colored with the respective pixel of the textures. The parameterization is either to be given for each point of the surface beforehand or is specified at least for the corners of the surface and is then determined by interpolation. In the case of tree models, parameterization unfortunately often is not given. Hence, surfaces of a tree skeleton, and also many other models in computer
Figure 11.15 Computer-generated tree with grass
219
Chapter 11 L ANDSCAPE S KETCHES
raytracing algorithm →
Figure 11.16 Drawing of the trunk and the branches with short cross-hatching lines: (a) realistically rendered image; (b) image without textures and with modified surface parameters; (c) cross-hatched image after using the modified Floyd-Steinberg method
(a) halftoning →
220
graphics, consist of triangular sets without explicit parameterization. Consequently, methods that do not need parameterization should be preferred. Such a method is the algorithm of Saito and Takahashi from Sect. 11.1. Aside from the contour lines, in the work the production of simple cross-hatchings using depth values of pixels is discussed. The procedure is demonstrated in simple examples. The results here are individual pixel values, whose grayscale values are changed. Leister presents in [114] another parameter-independent method for cross-hatching of surfaces. He uses a special variant of the raytracing algorithm in combination with image processing. The objects are here attributed with a special volume texture, consisting of black and white regions. The resulting image displays the intersection of the black and white texture function with the geometry on the surface that has a cross-hatched appearance. An advantage of the method is the inclusion of highlights, reflection, and shadows into the cross-hatching process, which is only possible with the implementation of raytracers or other global light simulation algorithms. Disadvantages are the artifacts and the aliasing effects in the images as well as the difficulty of adjusting the cross-hatching directions to the geometry.
(b)
(c)
Both disadvantages are avoided using the method of Ostromoukhov [151] in which the rendering of cross-hatching is done without any three-dimensional model information, and is executed interactively. A grayscale image serves as the input for the object to be drawn. The user defines the line directions for those areas to be cross-hatched, by deforming a standard pattern consisting of parallel lines. This takes place through a geometric transformation or a socalled morphing algorithm. Both allow an almost arbitrary deformation of the standard pattern. The image is subsequently rendered, in that the directions of the cross-hatching lines are generated, and their thicknesses and densities are varied so that the grayscale values of the input images are approximated.
This method is a half-toning procedure (see again [221]) that translates the grayscale values of a given image into another image consisting solely of black and white pixels. Similar methods were implemented in Chap. 8 to specify plant positions. Ostromoukhov introduced in recent years several artistic halftoning procedures, in which, aside from the visual optimal grayscale value approximation, increasingly artistic freedom can be integrated [152, 153, 154]. Additional works on this subject were authored by Buchanan [24] as well as by Verevka and Buchanan [223, 224]. Also here artistic effects are integrated into the half-toning process in order to give the images the appearance of a drawing.
Section 11.4 R ENDERING OF C ROSS -H ATCHING
Cross-Hatching Using Half-Toning Halftoning procedures also offer the option of generating a cross-hatching with short lines on the surface. Here the standard algorithms are modified: instead of generating points, now lines are created. In [36] this is realized through a modification of the classical Floyd-Steinberg algorithm [65]. Usually the algorithm scans the image per line from top to bottom, sets black and white pixels into the image to be produced, and measures the grayscale value error that hereby occurs. This error is then distributed to the neighboring pixels. A modified procedure for lines uses another error term1 . Unfortunately, only short lines can be used, since the Floyd-Steinberg algorithm is a locally working method that consequently produces larger errors when working with long lines. The directions of the lines are modified according to the surface in such a way that a spatial impression is created. Markosian et al. present a similar method in [128]. Figure 11.16 shows an application of the modified Floyd-Steinberg method on the trunk of tree I. The silhouette was rendered using the depth-difference algorithm, and the cross-hatching with the modified half-toning method. In part (a) we see a realistically rendered image; part (b) shows a model without textures and with modified surface attributes; part (c) displays the result for which approximately 2000 lines with roughly equal lengths were used. Using the half-toning method, cross hatchings with short lines can be produced. A further, completely differently working procedure allows us also to create longer lines. This is described in the following. With the method a large number of different geometric models can be represented as line drawings. Here we again refer to the principle differences of shadings using short and long lines. While the former can be produced using local procedures, and must give little consideration to the geometry, the latter are to be generated only using global methods and are affected strongly by the geometry. Often the form of the hatching lines is the strongest visual hint to the form of the geometry and must therefore be selected accordingly.
← Floyd-Steinberg algorithm
← creating longer lines
1 For example, it must be taken into consideration that the lines can overlap, and thereby produce
a smaller overall grayscale value.
221
Chapter 11 L ANDSCAPE S KETCHES
The starting point for the algorithm is the observation that in many drawing styles the cross-hatching lines can be understood as intersection curves between the object and a number of parallel planes. This was already addressed previously, and also demonstrated in the examples from Fig. 11.8. The observation leads to a good algorithmic approach, since intersections between planes and surfaces can be computed in most cases efficiently. The approach offers in addition a number of further advantages in comparison to the methods discussed in Sect. 11.4. Instead of producing cross-hatching curves pixel by pixel, the curves are generated as a whole, and therefore in the subsequent processing they can also be drawn as a whole. This is important if artistic line styles are used because these are difficult to combine. For a number of models, and in particular also for tree skeletons, the orientation of the intersection planes can be computed from the geometry. In this case, the method is completely automatic and can be used, for example, within animations. Depth-buffer-based procedures or similar, which are implemented using raytracing, often produce visual artifacts through numeric problems. Many of these problems are avoided using the algorithm introduced in the next section due to the combination of analytical and pixel-based operations of the graphics hardware.
Figure 11.17 Automatic cross hatching: (a) object with skeleton; (b) resulting cross-hatching (Courtesy of J. Hamel)
Just like half-toning, the method uses a reference image of the object. In this case it is a computer-generated rendering of the three-dimensional geometry in a view chosen by the user. Similar to the approach of Leister, here different light effects, such as reflection and shadow casting, can be introduced, since the method accepts any computer-generated rendition as an underlying image. The lines of the cross-hatching then represent the illumination at each point through thickening and blackening.
skeleton
(a)
222
(b) In the next step, the object is segmented. For doing so, the model parts that are to be illustrated by a cross-hatching are extracted. With an underlying 3D model the parts mostly correlate to geometric parts of the entire object. These are then viewed and processed individually. If this correspondence is not given
the 3D model must be preprocessed accordingly. In each case this step is to be implemented manually, since it is a design decision that depends on the desired visual effect. Each of the parts is now intersected with a set of planes. The number and alignment of the planes are either manually adjusted or computed automatically. Aside from the main alignment of the planes, they can also be rotated slightly from plane to plane in order to follow a curved object. In the last step the intersection lines are projected onto the drawing surface, and their thicknesses are varied according to the grayscale value of the reference image. For many models the definition of the intersection planes can be automated. Here the skeleton of the geometry is determined that consists of a line or a graph within the geometry, and which also includes topological and geometric attributes of the object. The topological information is stored in the graph structure, and the geometric information in the lengths and angles of the edges [59]. Figure 11.17a shows the result of the skeletonization of a bent hose. The skeleton remains inside the hose and approximates its midaxis. A spline interpolation is used to compute the edges that are rendered as a smooth curve. In the next step, the planes are aligned vertically to the skeleton curve, and are then used for the production of the intersection lines. The result can be seen in Fig. 11.17b; the line thickness is here controlled by the grayscale value of the image. In the next paragraph we describe this.
Section 11.4 R ENDERING OF C ROSS -H ATCHING
← automatic hatching
Variation of the Linewidth Half-toning algorithms on the basis of cross-hatching control the grayscale values of an image either through variation of the line density or line thickness. The variation of the line density was already discussed above for short lines. Examples for the variation of the line thickness can be found in [151]. For the intersection lines, also this approach is selected, because only a fixed number of lines are available, and varying the thickness is more suitable for long crosshatching lines. Examples from the arts, such as copperplates or other engraving techniques, demonstrate this. Figure 11.18 Each cross-hatching line has to represent through its own grayscale value the overall grayscale value of an area on the object surface
To determine each line thickness, around each line an area is laid onto the object surface that must be represented through the overall grayscale value of the line. This area is defined as the middle between each two intersection lines. Unfortunately, this thickness cannot be varied arbitrarily, since then the lines no longer have an acceptable appearance. Thus a method must be found that allows for hiding or displaying of the lines as needed. For example, in the outer
223
Chapter 11 L ANDSCAPE S KETCHES
priorized drawing →
areas of the hose in Fig. 11.17b more lines have to be drawn than in the inner areas in order to obtain a uniform maximal thickness. A simple solution for this problem is the so-called “priorized drawing”, a technique that is introduced in [38]. In the first step, as many intersection lines are defined as needed to obtain a sufficiently high line density in the most critical areas of the outer object regions.2 Every fourth intersecting curve is now drawn. To calculate the line thickness, again an area is laid around the intersection curves, but in this case as the middle between two adjacent areas of the intersecting sets in the finest resolution. The surfaces of these areas here do not represent the entire surface of the object, but only one quarter of it. Accordingly, the resulting image does not represent the full grayscale value of the reference image. Subsequently, between the two lines an additional line is inserted, and its thickness is computed accordingly. Again it is controlled by the image whose grayscale values were set to white at all the places that are outside of the respective area of the line. This way, white areas are created for places on the surface of the object, which were already sufficiently represented by the drawn subset of the lines.
Figure 11.19 Priorized drawing: (a) selection of the intersection lines; (b) additional lines are added to places that are not sufficiently darkened by the first lines; (c) final result (Courtesy of J. Hamel)
(a)
(b)
(c)
In Fig. 11.19a the effect on the inside of the bent hose is shown. Already after the first cross-hatching, the result is an almost sufficient representation in some parts, so that later added lines practically do not change anything. The outer part of the hose, however, is sufficiently represented only after the last set of intersection lines. Of course, this idea can be extended to more than four sets of lines.
11.5
Resume
Nonphotorealistic computer graphics offers a fascinating field of new visual imagery that can be rendered via the computer. If we view the photorealistic rendering as only one part of the whole field of rendering, then only very little research with regards to the wide range of possible forms of expression has been provided to date. For the future, this area offers an enormous field for 2 Generally
224
it is difficult to estimate the number of lines beforehand, though the algorithm can handle an over-estimated number of lines.
researchers with regard to the further development of existing applications as well as fundamental questions for improvement. Thus, cognition-psychological aspects might become important in that the question is asked why line drawings are interpreted by our visual system as representations for images of real objects. This may be caused by the fact that the human brain on one level of its image processing uses a line representation that is here addressed directly through graphics. In this context, also the question arises what kind of images are especially well accepted. With answers to these questions, criteria for a taxonomy of nonphotorealistic renditions can be established. Also, the approach triggers the already-addressed question, what actually produces our perception of “realism”. Aside from issues addressed the in Sect. 9.10, there is certainly much more to discover that would possibly help us to overall improve the methods now available in computer graphics. Finally, some words with regard to the tension between technology and art should be added. Computer graphics does not aim to make the artist superfluous. Excellent artistic illustrations are always the result of a creative process that cannot be replicated using computers. Computer graphics aims more at automating drawing techniques in order to simplify routinely exercised tasks. For example, computer-generated drawings would allow for an illustrator to avoid having to produce several hundred images of the same object with slightly modified positions when creating an animation. If a user can take a virtual walk through an illustrated world, then this enables new artistic creations in design that would not be possible without computer graphics. In the context of interactive programs new possibilities emerge for artistic installations. Computers can be programmed to react in new ways to the inputs of the user, and hence can help to discover new aesthetic worlds as well as transport content with high complexity. But, whether here new aspects with respect to design qualities are achieved must be assessed in close collaboration with the art community. On the other hand, in the next chapter we will describe some of the work of artists who have already gone down this line and who were an inspiration for us to create programs for generating organics and plants.
Section 11.5 R ESUME
225
12
Media Art Growing Plants and Evolved Organics
In this last chapter we would like to treat a topic that substantially contributed to the development of this book: plants and organics in media art. With digital media the border between art and science is more and more indistinguishable. Artists develop solutions that contribute to the scientific discussion, they anticipate developments or take them up again in another context, they publish in scientific magazines, and merge their work with that of conventional scientists in research institutes. In the following we want to present some exemplary work that appears especially interesting within the context of our conception of nature and its replication via the computer: Karl Sims, for example, uses evolutionary strategies for plant modeling in the animation Panspermia, in order to create through manual selection a large quantity of artificial plants. In connection with landscape design, a similar technology would be conceivable for generating variations in a population. With the later work “Virtual Creatures”, he developed a new field, so-called “Artificial Life”, for science. Bill Viola’s “Tree of Knowledge” touches upon the question of what is reality: a biologically impossible development of a tree is accepted by us as authentic, because it symbolizes our internal experiences of temporal developments. Christa Sommerer and Laurent Mignonneau offer with “Interactive Plant Growing” a symbol for natural interfaces, and, with their later work, they merge art and artificial life. William Latham influenced the authors in a personal way. The book he wrote together with Stephen Todd “The Evolutionary Art of Computers”[219], in which they describe a system for the evolutionary development of organic forms, stimulated the idea for “Xfrog”, the modeling system developed by the authors. Xfrog builds on a self-designed programming language named “frog” (fine rule-based object generator); frog is the attempt to merge the structural power of the already-established L-systems with the algorithmic options of an object-oriented programming language. Originally, only a picture series of three-dimensional organic columns was to be created. However, “The Evolutionary Art of Computers” motivated the authors to establish a defined set of algorithms, and to offer these to the user in the 227
Chapter 12 M EDIA A RT
form of icons in the graphical modeling system Xfrog. Parts of the components implemented in Xfrog were influenced by the functions “horn” and “branch” that were described by Todd and Latham. What was developed by Latham out of artistic motivation is now used in modified form for the modeling of plants.
12.1
artificial life →
William Latham studied art at Christ Church, Oxford, and print media at the Royal College of Art in London. Between 1987 and 1994 he worked as a “visiting artist” at the IBM UK Scientific Centre in Winchester, where together with the mathematician Stephen Todd he developed his artistic style. The works evolved during this time form the basis for an aesthetic that is known today as “Organic Art”, which serves as a model to many artistic artworks. Characteristic of his style are repetitive structures, in which simple geometrical primitives such as balls or tori are repeatedly joined, and, by iteration of geometrical transformations, such as rotations or translations, generate complex organic-appearing structures. His computer sculptures remind us of anemons, lobsters, shells, and of simple organic life-forms. Latham is frequently named in connection with the interdisciplinary area “Artificial Life”, in particular since he used an important technology for generating his picture contents: computer-aided evolution. Latham developed his first system for generating forms before his first encounter with the computer. During his studies at the Royal College of Art, he became interested in the successive changes of form, and he developed FormSynth (see [113]), a rule system for the modification of forms. On a given form, for example a cone or a ball, successive transformations such as beak, bulge, scoop, union, twist and stretch are fitted. Since several operations can be applied to the form, theoretically, infinitely many forms can be derived. Latham, quasifunctioning as a human machine, executed the instructions for modification on paper, and then generated the drawings. Some of these drawings were more than 10 meters high, and were filled with decision trees for forms that were even partly downsized with a photocopy machine, so that more room could be won for new forms [28]. Although he executed the forms created in this way also physically in plastic and wood, he believed the actual value to be in the enormous form potential of the systems. “He realized that the FormSynth system defined an infinite world of predefined form, which the artist explored to reveal only a selected few” [219]. With the title “The Evolution of Form”, a drawing produced in 1984, the thought metaphor was established for the future. At IBM in Winchester he had access to computers since 1987, and he worked there with Stephen Todd and his team on the implementation of FormSynth for the computer. The best-known result is the program “Mutator”, developed until 1990 in the graphic programming language ESME1 . 1 The
228
William Latham
extensible solid model editor is a programming language developed by IBM designed for the programming of CSG (constructive solid geometry) editors. Those editors allow, aside
Mutator permits the user to navigate interactively in the parameter space of an algorithmically given structure, and also to apply operations such as mutation and selection to exploit the space of possible forms. From each genome in Mutator, eight variations are produced in one step, and are represented together with the initial form in a matrix of nine forms (see Fig. 12.1). One form is selected, parameters for the mutation are adjusted, and the process runs again.
Section 12.1 W ILLIAM L ATHAM
Figure 12.1 (a) Small hand-drawn FormSynth tree; (b) three “Mutator” frames (Courtesy of William Latham)
(a)
(b)
Thereby the mutated genome corresponds to the parameter set of a base program that was created in the programming language ESME. The base program was adapted manually by Latham for each new mutation family. It applies certain complex functions, such as building horns, branches, and ribcages, over and over again, which explains the aesthetic consistency of his pictures. The horn function distributes geometrical primitives along iterated geometrical transformations. Gradually applied rotations around space axes (twist, bend) and translations (stack, side, bake) supply results that often remind one of the horns or spinal columns of higher organisms. The function “branch” produces a pattern similar to phyllotaxis according to the algorithm described by Vogel (see Sect. 3.4). The use of the function “ribcage” lets two equal geometries develop, reflected symmetrically along an axis, which, in combination with the “horn” function, resemble ribs that are arranged along a spinal column. These functions can call themselves or other functions, and in this way produce recursive, self-similar or highly complex combined structures. The root program is termed by Todd and Latham a “structure”, the number of the forms derivable from a structure in Mutator is a “family of forms”. The parameter vector of a family is changed by Mutator in a mutation step according to given rules; it corresponds to a genome. Information is added to the once-produced root program, such as which parameters of the functions may be changed by Mutator, and within what limits they may move. from the combining of primitives, also their iterative multiplication, and include commands for the programming of user interfaces.
← genetic algorithm
229
Chapter 12 M EDIA A RT
For humans it is analytically no longer determinable what is the visual result of just one of the above-named functions with a given nontrivial parameter set. Only if the computer shows the computed picture, do split up, straight, chaotic, curved, accumulated shapes become visible. With large parameter changes the pictures offer again and again new surprises. Although Latham’s work and the resulting art are often used for illustrations of “Artificial Life” due to their visual proximity to living organisms, Latham’s motivation is an aesthetic one. Though his pictures and the selected method refer to similar processes in nature, he developed his “own vision of nature”. However, here he is neither concerned with the simulation of biological processes, nor with the production of animated structures in the sense of artificial life.
(a)
(b)
(c)
(d)
Figure 12.2 Images by William Latham: (a) White Growth (1990, computer/ cibachrome); (b) Tusk 10 (1990, computer/ ’C’ type); (c) Nine Mutations (1991, computer/ cibachrome); (d) Tusk 10 (1990, computer/ ’C’ type)
230
He uses the evolutionary process because it produces surprising results, which, with the help of supporting software, can bring about what are to him interesting visual views. Latham has aimed at finding interesting forms in a potentially unlimited, deterministic, organic realm of forms as quickly as possible. Todd
and Latham developed different techniques in order to not blindly hunt around in the space of possible forms. Their goal was to adjust the produced forms to the whishes of the users, and thereby specifically to work out an interesting form once it was found. Using these techniques, the computer becomes an intelligent coworker that suggests forms, something that once could never have imagined.
Section 12.2 K ARL S IMS
Evaluation of Generated Forms Each of the nine forms represented in one step can be evaluated. The evaluation is stored and serves for the filtering of new produced mutations. Direction Control of the Parameter Vector The differences of the parameter vectors of the last-selected mutations determine a preference direction in the parameter area. The produced mutations are shifted in the parameter area by the scaled difference vector. Manually Adjustable Mutation Rate The rate of the parameter changes can be adjusted manually; if only details are concerned, a minimum adjustment is possible. Joining of Two Parameter Vectors (Marriage) Attributes of two interesting forms can be connected by different manually adjustable techniques. Fixing of Sub Structures This can be implemented if parts of the form should no longer be modified. History Stores history of already-produced forms with optional access to each form. Latham produced sets of animations with Todd, such as “The Conquest of Form” (1989), “A Sequence from the Evolution of Form” (1990), and “Mutations” (1991), which were shown worldwide. Finally they won the research prize of IMAGINA in Monte Carlo in 1990. In 1994 Latham founded the company ArtWorks2 , which designs new concepts for games on this basis3 .
12.2
Karl Sims
Karl Sims is referred to as one of the pioneers of evolutionary computing. He became known through his video animation “Panspermia” from 1990, his innovative and still-impressing work “Genetic Images” from 1993, and “Evolved Virtual Creatures” (1994), for which he had already described the basic structures in 1991 [199]. In 1997, he presented another aesthetic conversion of 2 see
http://www.artworks.co.uk “Organic Modeller Deluxe” ArtWorks offers a commercial variant of the principles implemented in Mutator 3 with
231
Chapter 12 M EDIA A RT
the interaction principle of “Genetic Images” at ICC, the InterCommunication Center in Tokyo, with the installation “Galapagos”. Karl Sims does not really see himself as an artist or a scientist, but rather as a researcher in both disciplines. He works in science in order to arrive at new visual aesthetics, which could not be reached using analytic-synthetic ways: “Using the computer, you can go past the complexity we could otherwise handle; you can go beyond equations we can even understand. It is his goal to make complexity without having to understand it” [60]. Besides worldwide exhibitions, he has published his results in numerous renowned scientific magazines. Karl Sims studied computer graphics at MIT Media Lab, and life sciences in MIT. As “artist in residence” with Thinking Machines in Cambridge, he had access to highly parallel computer systems, with which he created the animation “Panspermia” (with the Connection Machine 2), and “Evolved Virtual Creatures” (Connection Machine 5). The installation “Genetic Images” was shown in 1993 in the Centre Georges Pompidou on a Connection Machine with 32,768 processors. During the work on the video animation “Panspermia” he saw himself confronted with the task of modeling an immensely large number of plants. This gave him the idea to change the plants automatically by variation of the parameter sets of the producing algorithms. The necessity for an aesthetic selection led automatically to the principle of mutation and aesthetic selection, which became the topic and technology for his work in the following years.
Panspermia Panspermia, from 1990, visualizes the theory that life in the universe exists in the form of seeds and spreads spores. The two-minute computer animation begins with a grain flying through the universe, which hits a planet and bursts. From the spores scattered into the surrounding field different plants evolve. In the animation sequences that follow individual species grow: ferns, winding plants and trees. In one sequence, the camera drives through a forest with diverse plants (see Fig. 12.3). The animation ends with individual plants forming seeds, which they shoot out into space: the cycle of life. Sims used procedural models for the production of the plants: 21 parameters affect the condition and growth of a three-dimensional hierarchical structure of connected segments. From the parameters of the procedural model, growth direction and growth rate as well as positions for new buds are computed. Sims does not present details of the generating algorithms; however, he refers to the work of Aono and Kunii [5], de Reffye et al. [34], as well as Viennot et al. [225] (see also Chap. 4). The resulting hierarchies of segments are fitted with cylinders, generalized cylinders, cones and polygons for the visual display.
232
Furthermore he developed software that facilitates control of the evolutionary process interactively. A selected genome is mutated, and the different mutations are either represented in a table as a wireframe model, or as highresolution pictures, which can be switched through with the mouse. A selected
Section 12.2 K ARL S IMS
Figure 12.3 Stills from the Animation “Panspermia” (Karl Sims, 1990)
model can be stored and adapted manually for the animation in Panspermia. For example, colors and textures were later changed and added, and in some cases during a separate process evolved leaves were joined. The typical development of a plant requires between 5 and 20 generations. Sims does not achieve the animated effect of the vegetation using highly detailed drawings of the individual plants, which could not have been obtained because of the mass of the plants shown, but through an organic movement using a dynamic simulation. In [199] he systematizes his techniques by interconnecting parameter sets, which are applied in Panspermia. If the genome consist of a set of N parameters, as is the case, for example, in procedural models, then one can regard the genome as a point in N -dimensional space. Two source genomes define the corner points G1 and G2 of an N -dimensional cube. A new genome can be recombined using two given genomes according to the following rules:
← genetic programming
1. In a crossover, parameters from one of the two given genomes are gradually copied into the resulting genome. With a certain frequency the source genome alternates between the two given genomes. This has the effect that the neighboring parameters have a higher probability of originating from the same source genome and, thus, characteristics that depend on several neighboring parameters will remain intact. 2. If for each parameter the source genome is selected randomly, and its parameter is copied into the resulting genome, then the generated genome
233
Chapter 12 M EDIA A RT
is located in a corner point of the N -dimensional cube, similar to the first case. Local dependence is lost, and the variance is broader. 3. The two source genome vectors are linear interpolated: Gres = p G1 + (1 − p) G2 , p is selected randomly from [0...1]. The new genome is on the connecting line between G1 and G2 . A soft transition illustrated as an animation could be termed a “genetic dissolve”. 4. Each parameter is interpolated with a per parameter randomly selected p from the source genome parameters. The generated genome lies somewhere within the cube spanned by G1 and G2 . Thus, the variance is large, but the parameters, which work in both source genomes in opposition, such as left curvature versus right curvature, could interfere (although curvature is desired, the result might be straight). For Panspermia, Sims chose the second variant, since he aimed at variance, and at keeping the model characteristics unchanged without the influence of local neighborhoods.
Evolved Virtual Creatures
Figure 12.4 Evolved creatures in competition for a green block. (Courtesy of Karl Sims)
234
In 1994 Sims showed “Evolved Virtual Creatures” a video animation in which simple block structures in a virtual environment move around in a partially bizarre way. The movements were not programmed or produced using techniques such as key framing, but originated from a virtual motoric of the block structures coupled with a sensor system, which had developed over hundreds of steps – the objects had learned to move themselves. Here, visible in the sophisticated dynamics, a strong interest in the computer-aided simulation of movement can be recognized. While in Panspermia evolutionary techniques were applied only to the morphology of the plants, Sims now turned to the evolution of movement.
“Evolved Virtual Creatures” shows examples of simple block structures, which swim, walk, jump or can follow a goal. Sims does not only simply try to move
well-known functioning constructions such as snakes, bipedal figures etc., but also applies the evolutionary principle to both the motoric of skeleton-like structures and the development of their topology. In this way he avoids letting our preconception of the morphology of a functioning organism determine the possible results. Part of the fascination when regarding his video is the fact that the creatures in no way correspond to our conceptions of a functioning mechanical system, but nevertheless develop strategies in order to reach their given goals.
Section 12.2 K ARL S IMS
Figure 12.5 Designed examples of genotype graphs and corresponding creature morphologies
A quotation from Karl Sims: “Sometimes the evolving creatures would think of solutions completely different than what I expected. In this one example, the creatures got taller and taller and taller and would simply fall over. Instead of figuring out some clever way of walking, they would fall to generate horizontal velocity. What I was telling them to do was just to move, and falling was a perfectly reasonable solution as far as they were concerned. So this creature specialized in falling for as long as it possibly could, including doing a complete somersault” [90]. All developed structures appear “authentic”, since they apparently move in conformity with the laws of physics. The only aesthetic basic assumption in this connection is that we accept a movement as natural if it originates from a comprehensible motivation, and is limited through the physical characteristics of the moving body as well as the medium in which it moves. Sims examines the abilities of the evolved structures using simulations in wellknown media. For example, the structures should be able to move on a surface or swim through water. In the implemented simulation collision recognition and reaction with, for example, the soil and with other creatures, and selfpenetration, friction, and viscose liquid simulation are incorporated. The physical simulation needs here approximately 95% of the computing time. In [200] the scientific and technical background of this work is described. The generated structures consist of a skeleton, whose parts are connected by joints. The genetic representation of the object consisting of coupled partial objects is an aligned graph of nodes and edges. This graph contains “the con-
235
Chapter 12 M EDIA A RT
struction rules” of the creature. It can also contain recursions, and two nodes may be connected with several edges, in order to link, for example, the same substructure several times to the same father.
Figure 12.6 Example of evolved nested graph genotype. The outer graph in bold describes a creature’s morphology. The inner graph describes its neural circuitry. J0 and J1 are joint angle sensors, and E0 and E1 are effector outputs. The dashed node contains centralized neurons that are not associated with any part
construction of plants →
The nodes are connected by joints; different types of joints permit different degrees of freedom of the movement, such as, for instance, firmly connected, rotatory, twisted, flexible or ball joints. The rotation is restricted using given maximum angles and simulated springs. The phenotype in the form of a threedimensional structure is generated by traversion of these graphs, starting at a root node, and reading out of the node information, such as the physical dimension and joint information. Figure 12.5 shows three examples of graphs and the resulting three-dimensional hierarchy; Figure 12.6 shows a detailed graph with neurons. Similarly to this concept, in Chap. 6 the structure of a plant was modeled: the morphology is generated also by the interaction of different nodes that in each case describe parts of the plant. Also the graph is traversed for the production of the form, however without movement information. Sims controls the movement of a creature using its so-called brain. The brain consists of three functional groups: Sensors measure aspects of the body, such as degrees of freedom of a joint, or aspects of the environment, such as the direction of the incident light. Neurons process detailed information about a set of mathematical functions and return the result. Neurons can store information, such as the phase of an oscillation, and thereby make the behavior dependent on the condition of the creature. Effectors are connected with sensors or neurons; they are the digital equivalent to muscles, and affect joint angles by application of force.
236
In each simulation step, the movement of the creature is computed by its brain, based on the incoming data and how it is processed. The resulting forces on the joints are then introduced into the physical simulation of the movement. While in Panspermia the individuals were selected mostly aesthetically by human intuition, in this work fixed fitness functions are given: when swimming,
Section 12.2 K ARL S IMS
(a)
Figure 12.7 Creatures evolved for (a) swimming, (b) walking and (c) jumping
(b)
(c)
the distance that a creature can swim was measured within one time unit in an arbitrary direction in a water-similar medium; continuous movements were preferred. For the running on the ground, the horizontal speed was determined; when jumping it was the vertical one. When pursuing a goal, the speed at which creatures in different media followed a (partly moving) source of light that could be recognized by photosensors was measured. Thus, not only the efficiency of the motoric, but also the capability of the sensory organs were measured. In a further test two creatures entered a race after a given block. That creature that was able to catch the block was preferred. Here the fitness function is not purely external, but is computed from the comparison of different individuals.
Galapagos The interactive installation “Galapagos” was commissioned by the ICC (InterCommunication Center) in Tokyo, and exhibited there from 1997 to 2000. The visitor was positioned before 12 monitors arranged in a circular arc on pedestals showing amoebas or anemons, which reminded one of organic forms (Fig. 12.8). On the floor before each pedestal with a monitor, there was a touchsensitive mat. If the visitor stepped onto one of the mats, all forms disappeared except the one selected by the visitor, and shortly thereafter forms appear that are similar to the selected one. The visitor thus selected the forms that were most interesting, and the associated genome was distributed to the 11 other computers and there it was mutated. The structure and interaction resembled the installation “Genetic Images” that was shown in 1993 at the Centre Georges Pompidou in Paris. In this installation, programs expressed in the “Lisp” programming language formed the genome. Through a combination of image processing and mathematical functions amazing image compositions evolved. Also in “Galapagos” several visitors could simultaneously select different forms, which then produced through merging, new genomes that consisted of the characteristics of all the selected
237
Chapter 12 M EDIA A RT
Figure 12.8 Galapagos, Karl Sims, 1997
238
forms. An additional mat on the floor served as a “reset”, with which completely new random forms were generated.
The title Galapagos refers to the island group visited by Charles Darwin in 1835, whose unique flora and fauna inspired his evolution theory. In the isolation of the Galapagos islands, unique species developed. The most well-known are probably 14 Darwin finch species that can be found only there. The Galapagos islands is an isolated biotope, in which the evolution needed millions of years in order to bring about complex structures. For Sims the computer offers the possibility of a further isolated biotope, in which, depending upon the arithmetic performance and the selected simulation model, an evolution can be assessed at an extraordinary speed. Later research work continued this in multiple forms, and although the results obtained with such systems are often not a sufficient explanation for natural processes, they have, however, enriched biology with their understanding of the underlying processes of evolution.
12.3
Christa Sommerer and Laurent Mignonneau
While for Karl Sims evolutionary techniques are a means for obtaining complex, nonplannable visual results, for Christa Sommerer and Laurent Mignonneau the algorithmic creativity of evolution stands in the foreground. The variety of organisms, which nature brought about in the course of evolution, serves as an indication of the creative potential for technically realized evolutionary processes in the arts. If the principles that cause the wealth of organisms in nature are used as much as possible, then the machine turns into a work of art, which does not produce final results in interactions with the viewer, but, instead, during a continuous process again and again produces new interesting conditions, and therein first develops as art: “art as a living system” [205]. The artistic couple, who met at the Staedelschule in Frankfurt, has developed since 1992 an impressive number of interactive installations, such as “Trans Plant” (1995), “GENMA” (1996), “LifeSpacies” (1997) and “PICO SCAN” (2000). Among the most well-known works rank the artworks “Interactive Plant Growing” of 1992/93 and “A-Volve” of 1994/95. Two themes dominate their work: evolutionary open systems through human interaction, and natural interfaces. Thus they use multiple camera systems, speech recognition, and touchscreens. In their latest work “NanoScape” (2002) involves a magnetic force-feedback device. All these systems aim to detach the human interaction from the technical equipment. Christa Sommerer studied biology, botany and art in Vienna. Laurent Mignonneau studied fine art at the Academy of Fine Arts in Angouleme in France. Their work is supported by numerous institutions such as the NCSA (National Center for Supercomputing Applications), the ICC in Japan, where they are active as artistic director and researcher, respectively.
Section 12.3 C HRISTA S OMMERER AND L AURENT M IGNONNEAU
Figure 12.9 In “Interactive Plant Growing” the visitors let virtual plants grow by touching real plants (Image Courtesy: ZKM Karlsruhe, Franz Wamhof)
239
Chapter 12 M EDIA A RT
Interactive Plant Growing This work originated in 1992/93 as the first joint work of the two artists. It was shown world-wide and also was part of the permanent exhibition of the ZKM Media Museum in Karlsruhe. The viewer enters a dark area of 6×7.5 meters, into which five platforms with five different plants face a 4×3 meters-large projection in a semicircle. If the visitor comes close to a plant or touches it, then different virtual plants grow in the projection. Each real plant is assigned a type of a virtual plant. With each interaction the screen fills more and more, and one ends with a jungle of ferns, grasses and mosses. Using a cactus that functions as an eraser, the viewer can wipe the screen again. Several visitors can thus generate a virtual garden together at the same time. “Interactive Plant Growing” was an early example of the use of a natural interface that took the term naturalness literally, and for the first time used a living organism as an interface in an interactive installation. With the help of algorithms and random parameters, it was Sommerer and Mignonneau’s first attempt to generate interactively in real time the highest visual variance possible. This work served as the starting point for their later evolutionary work. The software knows five algorithms for plant species, which can be varied randomly using reduced parameter ranges.
Figure 12.10 Screenshots from “Interactive Plant Growing”, Sommerer and Mignonneau, 1992
240
For each plant there are at least six such variation descriptions. For example, stem length, branching angle, stem curvature, and color of branched structures are changed across these variation descriptions. The values, which are selected from this denotation, can be changed interactively by the viewer, while the plant slowly grows.
A sensor attached to the roots of the real plant measures the electrical potential difference between the plant and the viewer, which depends on the distance to the viewer, its physical characteristics, the humidity of the soil in the pot, and other parameters. This potential difference is measurable up to a distance of
70 cm from the plant. At the beginning of the interaction, the location, the rotation, the type of the plant, and the variation description are specified. This is what Sommerer and Mignonneau compare with the determination in biology: the definition of an expression in the phylogenesis of the art. The differentiation, the expression of the characteristics of the individual, depends on the continuously changing potential difference indicated by the viewer. “Interactive Plant Growing” has been implemented on different computers. The work was developed on a Silicon Graphics VGX 320 and now runs on Silicon Graphics computers, as well as on PCs.
Section 12.3 C HRISTA S OMMERER AND L AURENT M IGNONNEAU
A-Volve In A-Volve, the viewer interacts with an unusual medium for technical installations: water. The visitor looks at a 180×135 cm-large water basin that is, however, only filled with about some centimeters of water, and in which visual continuation is projected from the bottom. In the basin there are different organic creatures that move with pulsating movements, at times calmly, and at times more hectically. If one moves one’s hand through the water, one can influence the swimming movement of the virtual organisms, as well as their hunting behavior and their reproduction. Beside the basin a touchscreen is located on which the viewer can with a finger describe two figures. From these two figures 400 points are extracted that form the outline and the profile of a polygonal model, which then appears in the projection. The speed of the hand movement determines the color and texture of the creature. For each described form a speed is determined at which the associated creature can move in the virtual medium. Different oscillations on the surfaces of the creatures make the movements look very organic.
Figure 12.11 “A-Volve”, Sommerer and Mignonneau (1995)
Additionally, a virtual energy is assigned to the creature, which is used up in the course of its existence; however, superior creatures can build up their energies again. If the energy of a creature is used up, the creature dies. Faster creatures are defined as being superior and can hunt and eat the slower ones, whereby the virtual energy of the eaten creature is transferred to the successful hunter. The creatures possess the ability to perceive other creatures with an internal
241
Chapter 12 M EDIA A RT
viewing system, and thus can recognize their booty or other hunters. Creatures of similar energy can pair and have children who represent mixtures of the genetic codes of the parents. Viewers can induce mating or protect creatures using hand movements in the water. A-Volve was started at NCSA in Illinois and continued in 1994 at the ATR Lab in Japan. There the two artists met Thomas Ray, who also focuses on evolutionary processes.
Collaboration with Thomas Ray
genetic algorithm →
Thomas Ray’s goal is an independent evolution of computer programs with as few defaults from the outside as possible. In a technical environment, in which the only goal of programs is their own reproduction, and only limited system resources such as processor time and storage location are available, according to Ray’s view, programs will develop independently into complex problem solutions, which can be observed by humans and used for our purposes. An assumption with regard to the kind of the developing programs cannot be made, since evolution leads to new solutions that exceed our imaginative power. Thus, only pure principles of evolution are permissible, like self-reproduction and “natural” selection with a system-inherent fitness function. His system “Tierra” is a virtual machine and an embedded operating system that assigns computing time to programs, and knows different virtual machine instructions that can be implemented by the programs. Tierra was started with programs that copied themselves into other memory areas, and then introduced them to the operating system as new programs. During the execution randomly erroneous operations are introduced. If this happens during a copying process, the program is changed randomly, and thus corresponds to a mutation in nature. In the competition for computing time, different patterns of programs developed, such as those that use the computing time of other programs to multiply themselves (parasites), or self-optimizations of programs regarding the use of computing time, such as, for example, the linearization of loops. Ray also worked at the Evolutionary System Department at the ATR Laboratory, and describes in [170] a qualitative classification of evolutionary systems based on genetic languages, interaction and fitness functions. He differentiates the following: Genetic Algorithms (GAs) Versus Genetic Programming (GP) In genetic algorithms a vector – in the simplest case a bitstring – is changed by parameters and optimizes a fixed problem solution parametrically, while in genetic programming the solution strategy is changed in the form of an executable program within an evolutionary process. Here, principal new forms of solutions can develop (emergence).
242
External Versus Internal Fitness Functions In a system with external fitness functions the fitness is given from the out-
side and independently of system parameters, and remains constant, thus providing the problem. Internal fitness functions arise as a result of the interaction of the system parameters, i.e., change during the interaction of internally participating “individuals”, and thereby can create new problems. A special form is an external self-changing fitness function, for example one operating through the aesthetic selection of a viewer interacting with the system, as found in Karl Sim’s “Genetic Images” and “Galapagos”.
Section 12.4 B ILL V IOLA , T REE OF K NOWLEDGE
Interaction of Entities of the System Individuals can promote or impair their reproducibility and thereby mutually affect the fitness function. The complexity of the system is not linear. Using this classification the genetic codes of the individuals in A-Volve correspond to genetic algorithms. The developing forms can thus vary greatly; however, they always move within the genetic code of the interpreting algorithm. Thus, no qualitatively new forms or behaviors can develop. According to Ray, there is an interaction between the individuals of the system. The fitness function corresponds to the reproduction ability of the individuals, with influence from the inside through interaction with other individuals, and with outside through the human viewer. In its function as an exhibit piece, A-Volve shows the principles specified above, and refers thereby to the creative potential of evolutionary processes that can be used in the artistic context within a technical medium. It is above all an open system that does not create in principle new solutions by itself, but rather from the concept, the technical expertise of the expert, and the development of new forms by the viewer. In 1994 A-Volve won the golden Nica of the renowned Prix Ars Electronica. The first versions of A-Volve ran on an SGI Onyx; in the meantime a PC with a standard graphics board has become sufficient. The hand movements of the viewer in the water are determined by a self-developed camera recognition system.
12.4
Bill Viola, Tree of Knowledge
In this artwork, the viewer enters a 16-meter-long hallway, which measures at the entrance 90 cm wide, opens up in the last third, and then opens the view freely to a large 2.4×3.2 meter rear-projected canvas, on which the picture of a tree can be seen. As the viewer enters the hallway, the tree is still a shoot. If the viewer moves forward, the tree begins to grow, and keeps growing until the viewer stops; then also the tree stops growing. The viewer notices that her/his position is coupled on the way with the picture of the tree in the video sequence. If he/she reaches the end of the hallway, the tree loses its leaves, becomes old and dies. Bill Viola, who became known through his many video installations, works in his art on the phenomenon of time in all of its experienced aspects: the absolute
← artworks about time
243
Chapter 12 M EDIA A RT
Figure 12.12 Sequence from “Tree of Knowledge”, Bill Viola, 1997
244
and the mental time, the time during sleep, in hectic activity, and during rest. He relates the experiencing of time to the birth and death of humans. In the installation “Tree of Knowledge” (1997), the tree runs through different types of time: the lifetime of the tree itself, its youth, its strength, and its death. While the viewer walks down the hallway, the tree experiences spring and the growth of leaves; it blossoms in the early summer, bears fruit that fall in late summer, and in the fall the tree sheds its leaves. It runs through the cycle of one year.
The lighting simulates the direction and color of the sun during one day, and the wind moves the leaves, and affects the falling fruit. All this is experienced in real time. Different time experiences are here overlaid and blended together, and are in their course and time sequence dependent upon the temporal movement of the viewer. The position of the viewer on the way is determined using an infrared laser scanner, which is installed on a hip-high platform near the entrance to the hallway. Its data are read by a PC, which calls a picture from the prerendered animation sequence. The individual pictures of a total of 600 images are sufficient for animation, and are virtually distributed over a distance of 15.5 meters. Each point in the hallway is assigned a picture from the video sequence, thus each space point is assigned one point of time. While the viewer walks along the hallway, he crosses different time levels. He can go backwards, stop, or move at a different speed. If he reaches the end of the hallway, by then the tree has shed its leaves and is covered with gray moss. Here there is no return, the tree has died. Bill Viola, according to his own statement, for over 15 years carried with him the idea of a tree growing through the influence of the viewer. He experimented with extreme memomotion studies of a real tree, but the prospect of having to wait several decades to complete the project seemed unattractive. With the possibilities offered by plant modeling via the computer, the idea appeared for the first time realizable. In contrast to real photography, additionally the different levels of the time experience could be worked into the sequence, and could be adapted to the appearance of the tree, which became more like the mental picture we have of a typical tree, by omitting details and oversubscribing certain characteristics of the tree shape. The color, for example, follows more the style of the Old Masters, such as Memling and Van Eyck, than a photograph of a real tree. The curvature of the trunk, which begins only during aging, is not found in nature. The duration of the youth, the period of growing up, and the age were measured using human life stages.
At the end of the sequence, the roots bury themselves into the ground: like an old man the tree finds its place. The tree becomes in such a way our projection and a mirror. For the animation of the growth, the budding, and the ripening of the fruits, the embedded keyframing described in Chap. 6 was utilized. The sequence was rendered using an integrated raycasting algorithm. The animation sequence was realized at the ZKM Institut f¨ur Bildmedien using the Xfrog modeling system.
Section 12.5 S ONO M ORPHIS
Figure 12.13 Continued sequence from “Tree of Knowledge”
The basis was 20 photographs of different trees taken by Bill Viola in Huntington Gardens, out of which the idealtypical tree was chosen. The total time for modeling, timing, adjustment of the temporally variable textures etc., amounted to approximately three months. Tree of Knowledge was shown in 1997 at the ZKM in Karlsruhe and in 1999 at the Whitney Museum in New York.
12.5
SonoMorphis
SonoMorphis is an installation with genetic graphics and sound, developed by Torsten Belschner and one of the authors (Bernd Lintermann). A first version without sound was developed between 1995 and 19974 , and extended to include sound in 1998 in co-operation with the audio designer Torsten Belschner at the ZKM Karlsruhe. The goal was to develop an audiovisual instrument that is varied and flexible enough to react exactly and in a nuanced way to the sound of an instrumentalist. The range of possibilities should be such that an expressive, variable, and complex play develops. On the front wall of an area the stereoscopic image of a branched organic structure is projected, which consists of individual forms such as balls, leaves, and arms being in constant motion. In the corners of the area four loudspeakers are located, which project the object acoustically into space. In the center of the area a control interface is located. Using buttons and sliding controls, the viewer can determine the composition of the object, thus its visual and sound elements, as well as their variation in form and sound. SonoMorphis was implemented on the basis of the Xfrog modeling system, which was extended to offer the option to automatically generate new hierarchies from a set of given components through the operations “insert”, “delete”, and “mix” (crossover of component hierarchies). A set of 32 predefined components serves as a “gene pool” of the system. Each component contains ad4 The
first version issued 1997 at the ZKM Karlsruhe under the name “Morphogenesis”.
245
Chapter 12 M EDIA A RT
ditional data concerning interactively changeable parameters as well as compound cyclic or random parameter changes apart from texture and color information. Each scalar parameter can be animated by default using an average value, a range of variation, the softness of the change, and speed. Time-coupled parameters, with the help of sine functions and spline-based functions, cause the object to pulsate.
Figure 12.14 Screenshots from the installation “Tree of Knowledge”, Bill Viola, 1997
246
The structure of the object is represented by the p-graph described in Chap. 6. It can be changed by the viewer using the operations “mutation” and “simplification”. The system generates six automatic variations of the structure and represents them as frames on a border at the lower end of the projection. The user can successively select the desired changes, whose additional components grow out of the projected object, or whose missing components disappear slowly. The
last selected form becomes the starting point for further mutations. The kinds of operations that are selected internally in a mutation are random. They are limited, however, according to an estimation of the expected graphical complexity of the model. Parameters of the objects, such as lengths, thicknesses, bends, movement impulses, numbers of duplications, and so on, can be influenced dynamically by means of the sliding controls of the control equipment. An object can be moved, turned, and viewed from different perspectives; it can change its form, complexity, and also its sound. Interaction between form and sound is conceived in such a way that the basic data structure is represented simultaneously in two aesthetic modes: on the one hand by its graphical representation, on the other hand by the interpretation of the sound.
Section 12.5 S ONO M ORPHIS
Figure 12.15 Screenshots from SonoMorphis
247
Chapter 12 M EDIA A RT
A hierarchy between image and sound should be avoided. The selected sounds are inorganic, they remind one more of machines, engines, or metallic bodies than of natural objects. Each component is assigned a sound, which is computed using a mathematical model during playing. The physical modeling for the sound is based on the description of the vibration response of a real object. For example, if material and form characteristics are given, the oscillation from the type of a vibration stimulation can be computed. For a wooden tube, for example, the radius, incident airstream, angles, length, and strength change the sound. Several modes of kinetic stimulation, such as the bow of a violin or the blowing of single or double mouthpieces, were selected, since they offer a rich spectrum of harmonic and disharmonic sounds. In connection with the dynamic parameters of the objects – aside from continuous-sounding forms – they are also able to render beats and percussion sounds.
Figure 12.16 Constructions evolved with the SonoMorphis software with a different gene pool. The genes create cubical primitives, and a root hierarchy of components is given
In order to stress a closer relationship between image and sound, graphical parameters such as curves, lengths, and extensions are joined with the sound parameters. A change of the sliding controls affects both modes in the same way, although a spatial correlation between a visual object and its orchestra is rendered. The four loudspeakers transport the spatial sound to the place with which the viewer associates the object viewed. If an object moves from the left to the right, then also its sound moves from the left to the right. If the sound moves into the depth of the room, then also the associated visual object moves away. SonoMorphis shows a broad variety of forms and sounds, which open up completely only with a knowledge of the system and over a long period of time. The goal was not the emergence of new system properties, but rather an instrument
248
that permits an open composition structure and develops only during the game, and which is neither predictable nor repetitious. The evolutionary metaphor is also here used as a navigation aid in the difficult-to-understand form and sound space – as a technical surprise for the player. “Players and public are invited to enjoy the pure syntax, not clouded by any earthen remainder” [13]. SonoMorphis uses an SGI Onyx for the rendering and two Apple Macintoshes for the sound control. For the sound production, 16 Yamaha sound oscillators are used; each oscillator is assigned an instance of a component, and is configured dynamically. SonoMorphis was presented as an installation in Germany, Poland and France, and was shown in two performances with an artist and an audience.
Section 12.5 S ONO M ORPHIS
Figure 12.17 Development of organic structures, screenshots from SonoMorphis, 1998
249
A
Practical Plant Modeling Using Xfrog
The web site to this book, found at “www.computerpflanzen.de” contains useful information, links to a collection of programs, and data and video sequences. Most of the content is related to our modeling system “Xfrog” which also can be downloaded there in a demo version usable with full functionality for 30 days. In the following, a practical introduction to modeling is given, which should help the reader create plants and other objects by him-/herself.
A.1
The Xfrog Modeling Environment
The basis of the program was designed in 1998 by the authors. During the years following, in cooperation with different coworkers and with generous support from the Intel Corporation and the ZKM Center for Media Arts and Technology, Karlsruhe, the program was further developed.
Figure A.1 Xfrog modeling environment, consisting of different dialogs
The program is an integrated modeling environment consisting of several dialogs (see Fig. A.1). In the structure editor the user constructs the structural
251
Appendix A P RACTICAL P LANT M ODELING
Figure A.2 Editor for parameters: (a) parameters of the leaf component; (b) base parameter set, common to all components; (c) primitive parameters; (d) material parameters, also common to all components
(a)
252
description of the plant. The individual parts of the plant are generated with the components that were already introduced in Chap. 6. These components are activated in the field at the lower left through double clicking or by dragging them into the structure editor. Connecting a component with the camera results in the creation of a geometry (if the component produces any), which is indicated in the large middle dialog window. In this dialog window, the 3D geometry can then be moved with the mouse, turned and scaled. The right, the left, and both mouse buttons are used, respectively, for these operations. If a component is double clicked with the mouse button, the corresponding parameter editor appears on the right side of the dialog window. With this editor the individual parameters of the component can be changed. As already described, a basic parameter set exists for all components, as well as a number of individual parameters.
(b)
(c)
(d)
Figure A.2 shows an example of a parameter editor. If the outer left marker of the four markers on the upper side is selected, the individual parameters of the component, here a leaf component in part (a), appears. In the second part, the base parameter as well as the scaling or rotation can be influenced. The third marker (part (c)) includes the primitive parameter, which appears when the component generates a geometric primitive. This is not activated for all components; however, if necessary, it can always be set by the user. In this context, also the material parameters (part (d)) are of importance, since they determine the appearance of the primitives, if the material parameters are not inherited by the components above in the structure.
The last two dialogues of the program are used for animation. As already mentioned at the end of Chap. 6, in Xfrog a parameter-based keyframing is used. Here, at several time steps, the model is given an individual appearance by the user through modification of the parameters, which are then interpolated for the intermediate times by the system. In the animation editor, these keyframes can be created, while the playback of the animation is controlled using the animation control function.
A.2
Appendix A M ODELING A F LOWER
Modeling a Flower
Although the rendering of trees requires a relatively small number of components, experience with the system is necessary. Thus, we suggest to first model a small flower. The final result was used for the interactive rendering of plants and can be seen in Fig. A.3. The description given here refers to the Xfrog Version 3.5, for the Version 4.0, which is integrated in Cinema4D, slightly different components are used.
Figure A.3 Final desired result for the plant modeling
After starting the program, a leaf component from the area at the lower left in the modeling environment is selected by double clicking. After it appears in the structure editor, it will be connected with the camera. The description for the structure and the view of the geometry are seen in Fig. A.4.
Figure A.4 (a) Initial structure; (b) geometry with black and (c) white background
(a)
(b)
(c)
253
Appendix A P RACTICAL P LANT M ODELING
For the following screenshots of the system, the background color (above the geometry dialog window) was set to white, and a wireframe rendition was chosen (menu “Shading”) for the triangle edges. The world coordinate system was also removed (menu “Display”). This then correlates with the appearance of the example that is shown further down. The leaf should be textured in order to give it a realistic look. For doing so, the leaf component is clicked, and in the displayed parameter editor the subitem “Material” is selected. The texture menu appears. Now the provided texture with the name “impatiens newguinea hybris petal.png” is selected. See the dialog and the strange-looking geometry in Fig. A.5.
Figure A.5 (a) Material editor of the leaf component; (b) geometry, distorted by initial leaf component parametrization
(a)
(b)
The shape evolves from the initial shape of the leaf; the system was preset to display a leaf shape without texture. Thus, in the parameter editor under “Leaf” the parameter “Shape” is set from “Range” to “Spline”, and “Edit” is selected. In the appearing editor, all points except for the uppermost one, are dragged onto the edge, so that an square-like shape is created (see Fig. A.6).
Figure A.6 (a) Form editor of the leaf component; (b) after setting
(a)
254
(b)
Now the texture only has to be moved on the lower side of the leaf geometry. For this, you have to return to the material editor. The move takes place through the changing of the U- and V-coordinates, which describe the positioning of the texture at the corner points of the leaf geometry. At the sub item “shift V”, you can set the possible minimal and maximal values of the control to −1 and 1 before changing the value in order to increase the accuracy of the control. Here you simply click on these values and enter the new value. Of course, you can also directly enter the value, as shown in Fig. A.7a; simply click on the number field. To stretch the texture, increase the “Scale V” to a value of eight.
Appendix A M ODELING A F LOWER
Figure A.7 (a) Material editor of the leaf component; (b) geometry after adjusting the texture
(a)
(b)
For modeling the flower, the leaf is to be multiplied through a phiball component. The component is selected and linked to the camera, then the leaf component is linked to the phiball. As a default, 50 leaves are created, which, according to the Golden Section, are arranged on a sphere. By changing the number to five, reducing the radius to zero, and changing the spherical section (“Fan”) to the values of 0 and 0.3, we already get closer to completion of the flower. The leaves are now intersecting each other and must be arranged in a correct way. Here we click on the leaf component, and under the section “Leaf”, the initial value of the “Rotation X” is set to two (see Fig. A.8c).
Figure A.8 (a) Standard arrangement of leaves; (b) refined arrangement; (c) introduced curvature applied to the leaves
(a)
(b)
(c)
The operation causes a bending of the leaf along the main axis. The curvature perpendicular to the main axis is set at another place, since it relates directly to the rendered geometry primitives (in this case the triangulated point list). For doing so, in the “Primitive” editor, the entry “Profile” is set to “On”, and in the respective editor the shape is set according to Fig. A.9.
Figure A.9 (a) Editor for primitive parameter; (b) editor to set profiles; (c) resulting flower geometry
(a)
(b)
(c)
In the next step we will create the normal leaves. To do this, the part of the plant defined so far is dragged away from the camera component, and a new leaf component is defined. Onto this, analogous to the above, the texture “im-
255
Appendix A P RACTICAL P LANT M ODELING
patiens newguinea hybris leaf.png” is applied, and appropriately scaled. The components and the leaf geometry are shown in Fig. A.10.
Figure A.10 (a) Components after defining the leaf; (b) leaf geometry
(a)
(b)
The leaf geometry is linked to a tree component, which in turn is linked to the camera component. At first look, the result is not very promising (Fig. A.11), since there are still some parameters to be changed. If the leaves should be smaller than in the image, the scaling on the primitive parameters of the leaf component can be changed. But let us return to the tree component. The diameter can be decreased using the “Shape” parameter. Now we apply the texture with the somewhat long name “impatiens newguinea hybris bark.png” onto the tree geometry, and in the menu “Tree” the number of leaves is increased to 24 (see Fig. A.11c).
Figure A.11 Modeling of the branching, part I
(a)
256
(b)
(c)
(d)
(e)
In the next step the flower must be attached to the tree component. For this, the partial description of the blossom, which was laid aside, must be dragged onto the tree component. The link type for the connection between the tree and the phiball component now has to be set from “multiple” to “simple”, i.e., the link itself has to be clicked and must be adjusted by the link type editor below the window. Finally, the scaling of the phiball component (in “Basic Parameters”) is used to set the size of the flower. If the diameter of the tree component is changed accordingly, we have created a nice-looking branch. The still bothering jags in Fig. A.11e, shown below the flower, are removed using the leaf component in the part “Primitive” by adjusting the “Separator On”. This prevents the triangulation of both geometries by the system.
Appendix A M ODELING A F LOWER
Figure A.12 (a) and (b) Modeling of the branching, part II; (c) combination of several branches to entire plant
(a)
(b)
(c)
(d)
Now the branching characteristic of the tree component must be changed, so that there will be more leaves at the top than at the lower part. The “Distribution” parameter in the tree component (“Tree”) is responsible for this. It will be changed so that, when moving to the upper part, the values increase (Fig. A.12a). There also the angles of the leaves are adjusted using the “Angle” parameter. In the next step, these branches are to be connected to the plant. In addition, a phiball component is selected, and before it is linked to the camera the number of multiplications is set to 10. Additionally, the opening angle is reduced, as we did with the flower. Now the remainder of the structure can be linked to this component, and all components are linked to the camera. In Fig. A.12d we see the result, which, however, still has to be refined a little.
Figure A.13 Refinement setting for the Phiball parameter
For doing so, the radius of the ball is increased in the phiball component the branches are attached to. Also, using the “Scale”-parameter an individual size can be given to each branch. These sizes have to be adjusted in such a way that the outside branches are somewhat smaller than those on the inside. In Fig. A.13 an exemplary adjustment of the parameters and the result can be seen. For the last step we return to the tree component. The branches should bend somewhat upward, toward the light. Such curvatures are implemented using tropisms. To do so, adjust the phototropism value of the tree component at the right end, this will bend the upper parts of the branches toward the light. You
257
Appendix A P RACTICAL P LANT M ODELING
should receive a result as shown in Fig. A.14. If you want to achieve a still result more similarly to that in the first figure, then increase the number of branches and vary the “Scale”-parameter in the phiball component.
Figure A.14 Final result
In order to produce a high-quality image from the geometry, you must transfer the data to a rendering system. This can be done either by selecting a format in the menu “Export”, and thereby storing the data, or by using one of the Xfrog plugins, to transfer the data into a rendering system such as 3D StudioMax or Cinema 4D directly. Different plugins are available on the Greenworks website (www.greenworks.de). Beyond that, diverse plants have already been premodeled, so that you can assemble more complex scenes. Doing so, we almost touch the borders of interactive computer graphics, if the LOD models already mentioned are not used. To implement a complex scene in the Xfrog modeling system, and to also adopt it to a rendering system will unfortunately only be possible in the future, at least for larger numbers of plants.
A.3
258
Modeling a Tree
In the second modeling example, a small tree is to be created. The basis for this example is a tutorial by Andreas Kathky which can be found also on the Greenworks website. The tree consists of four tree components that are linked together, and therefore has three branching levels. Here the structured creation of the geometry is especially important, since the parameter settings on the different branching levels might interfere, and thus the situation can easily become too complex when parameters on different levels have to be changed simultaneously. In the first step, a simple component is attached to the camera. It serves to scale and move the geometry that has to be rendered later on. In the default setting it will not generate its own geometry. The name of the component can be changed in the parameter editor, for example, name it “Scale”. In the next step, a tree component has to be attached to this component, this you name “Trunk”. The geometry created so far is at first only a stem (Fig. A.15b). If the second tree
component is attached to the first one, a default branching structure such as that in Fig. A.15d, is created. However, this only occurs if the connection between the two tree components is a “multiple” link. As already mentioned, this can be set in the line under the structure editor, when the link is clicked. Name the second tree component “Branch1”.
Appendix A M ODELING A T REE
Figure A.15 (a) Component for creating the tree trunk; (b) geometry; (c) first branching order; (d) geometry
(a)
(b)
(c)
(d)
Now two additional tree components are attached to the already-existing ones, and are named “Branch2” and “Branch3”. Again the link should be a “multiple”link. In the following, the parameters for the components are set so that a young tree is created. We start at the “Trunk” component, and increase the number of segments to 70. This serves to more easily bend the trunk later on without the polygons becoming visible. The modification of the geometry can best be controlled when a “wireframe” display is selected in the geometry window (Fig. A.16b). Up to now, the trunk had only three points per segment, and thus a triangular surface. This can be corrected by adjusting the number of points in the “Primitive” section; for example, select a value of 12. In the next step, the shape of the trunk is to be adjusted. In the parameter editor of the “Trunk” component, the field “Shape” is selected and set according to Fig. A.16c. Additional points can be produced by double clicking on the places where they should be inserted at the curves. Also, the branches of the first branching order have to be thinned out a bit. This happens in the same way as done with the “Branch1” component. Instead of calling up the editor, you can also change the approximated direct rendering in the menu by moving the points. Adjust each branch to be half the thickness of what it is at this moment. The changes will also affect all higher branching levels.
Figure A.16 (a) All components of the tree skeleton; (b) geometry; (c) editor for the shape of the tree trunk; (d) geometry
(a)
(b)
(c)
(d)
259
Appendix A P RACTICAL P LANT M ODELING
We return to the “Trunk” component, and next we want to modify the angles and the branching characteristics. Both can be adjusted in the parameter editor under the column “Branches”. The branching attribute “Distribution” is changed in the respective editor in such a way as to create fewer branches in the lower part than in the upper part (see Fig. A.17).
(a) Figure A.17 (a) Distribution editor; (b) geometry; (c) editor for branching angles; (d) geometry
(b)
(c)
(d)
In the same way, the branching attributes are entered under “Angle”. Here the function is set as shown in Fig. A.17c; the jags in the function are important to achieve a lively appearance of the model, and at the same time avoid branches that are too uniformly shaped. Actually, the branches should hang a little bit, meaning that a steeper branching angle has to be adjusted along the branch by bending. This occurs through the application of gravitropism, which affects the tendency of a structure to grow toward the ground. It can also be adjusted along the branch. For this you open the appropriate editor in the “Branch1” component, and set the curve similar to that in Fig. A.18a. Through bending, here the individual polygons of the geometry are becoming visible. This is avoided by simply increasing the number of segments in the “Branch1” component to about 70 (part c), if not already done.
Figure A.18 (a) Editor for gravitropism; (b) geometry; (c) editor for the branching angle; (d) geometry
(a)
260
(b)
(c)
(d)
Overall, the tree is still too compact. It is stretched by increasing the length of the “Trunk” component (all the way up in the “Tree” section). This should be set to about 35 (Fig. A.18d). If the tree has become too large for the screen, the its scale can be decreased to the desired size. This is done in the simple component named “Scale” just below the camera component within the “Basic” section. Alternatively, of course, the view can be modified by pressing the left and right mouse buttons while simultaneously dragging.
Now we can continue with the refinement of the branches in the first order. Aside from the geometric scaling, there is a parameter named “Growth Scale” in Xfrog for the tree components. We mean here a structural scaling that not only enlarges a geometry but also increases the number of branches.
Appendix A M ODELING A T REE
Figure A.19 (a) Editor for “Growth Scale”; (b) geometry; (c) shortened branches
(a)
(b)
(c)
This kind of scaling is increased by using the editor in the “Trunk” component, since this value should be assigned to all branches of the first order. Figure A.19b shows the amplified branches. Simultaneously, also the lengths of these branches should be decreased to create a more slender tree. For doing so, reduce the length parameter of the “Branch1” component to 16 (Fig. A.19c). Now it is time to turn to the branching levels. Firstly the branches have to be shortened. Here we use the “Branch2” component and again the “Shape” parameter (see Fig. A.20a). Additionally, the angles of the branches are increased. This takes place by changing the respective parameters in the “Branch2” component: increase the angle in the upper area of the branches (Part c) to lower the curve.
Figure A.20 (a) Editor for “Shape” of the “Branch2” component; (b) geometry; (c) increase of the angle
(a)
(b)
(c)
Currently there are too few branches in the second branching order. If we simply were to increase the number in “Branch1”, then they would only appear in the upper part of the crown. This is caused by the “Distribution” parameter in “Branch1”, which does not permit branching at the beginning of the structure. While this is a good setting for tree trunks, the branches should however be distributed along the entire length. Therefore, activate the “Distribution” parameter of the “Branch1” component, and we see that there are actually almost too many branches; thus correct this by adjusting them with the “Number” parameter.
261
Appendix A P RACTICAL P LANT M ODELING
Figure A.21 (a) Editor for “Density” in the “Branch2” component; (b) adjusting the parameter
(a)
(b)
There is a second parameter that influences the number of the branches; the “Density” parameter. This parameter indicates the density produced by the multipliers and thereby has a wide-ranging effect. Select this parameter in the “Trunk” component according to Fig. A.21a. Now we still have to adjust some other parameters: “Number” in “Trunk” to 13, and also in “Branch1” as well as “Branch2” to eight. The “Screw” parameter controls the deviation angle, with which the branching deviates from a tree component. It can be used to realize typical tree branching or to render the model livelier. Set this parameter in the “Trunk” component as shown in Fig. A.22a, and set the same parameter for the “Branch1” component according to Fig. A.22b.
Figure A.22 (a) Editor for “Screw” in the “Trunk” component; (b) editor of “Branch1” component; (c) geometry
(a)
(b)
(c)
Let us now look at the last branching level. Here it is necessary to first apply a higher density, so that this level becomes more noticeable. Additionally, change the branching attributes in the “Branch2” component, so that more branches are created at the beginning (Fig. A.23a). Then lower the branches a bit in the “Branch2”. The result should be similar to that in Fig. A.23b. Now the branches of the second branching order (“Branch2”) appear distorted because of their straightness. Correct this, i.e., bend them downward using gravitropism.
262
Actually the tree looks very nice so far, but it appears to be too straight. Natural trees often change their direction of growth, such as when branching out at a certain place. This process can take place using the deviation parameter: increase it uniformly along the entire length of the trunk and branch in the “Trunk” and “Branch1” components, respectively. The end result is shown in Fig. A.23c.
Appendix A M ODELING A T REE
(a)
(b)
(c)
Figure A.23 (a) Editor for distributions in the “Branch2” component; (b) geometry; (c) final geometry of the tree skeleton, refined through application of gravitropism
Now attach the leaf component to the “Branch3” component. It is important that it is joined with a “multiple” link to the “Branch3” component. In the leaf, change the primitive to “Triangle up”. Now, only a single triangle is produced; this is useful if many leaves have to be created. Apply the texture named “leaf.png” to this triangle and adjust the scaling so that the complete leaf becomes visible. Now apply the “bark.png” texture to the surface of the “Trunk” component. In Fig. A.24a we show the leaf geometry, and in part b the complete model. If you have problems setting the texture parameters for the leaf, just attach it directly to the camera, and hide the rest of the geometry by selecting the “Scale” component and by activating “Hide” below the structure editor.
Figure A.24 (a) Leaf geometry with texture; (b) geometry with textures; (c) completed model
(a)
(b)
(c)
To enrich the model, select the “Trunk” component and carefully increase the “Growth scale” parameter until more leaves appear, especially in the upper part of the plant. Now increase the number of the branching in the “Branch2” and “Branch3” components to about a value of 12. Our version of the final result is shown in Fig. A.24c.
263
B
Glossary
Affine Transformation A mathematical function such as a translation, rotation, scaling, or shearing that transforms a line into a line or a plane into another plane. Using a trick, such functions, which are usually difficult to combine due to the nonlinear behavior of the translation, can be implemented with just one matrix multiplication: the number of coordinates is increased by one, so-called homogenous coordinates are used (see also below).
Alpha-Channel Usually images are defined with three color values: red, green, and blue (when printing: yellow, magenta, cyan, and most often black). In computer graphics, additionally an alpha channel is needed to define the transparency of the pixel values. This is needed when a small image is used as a texture (see below) during rendering. The alpha channel is a separate layer that defines the level of transparency per pixel. Rather than restricting pixels to opaque or transparent, an alpha channel allows pixels to be defined as partly opaque (e.g., 75% opaque).
Attractor A final state a system reaches for a large number of initial conditions. The term is often used in chaos theory, but is also common in biology. See also inhibitor.
B´ezier Curve A mathematically defined curve, defined by polynomials for each coordinate. These polynomials are defined in a special way from a set of control points that are partly interpolated and partly approximated. By moving the points, the curve changes its form intuitively which makes it suitable for geometric modeling purposes. With standard polynomials this is almost not possible.
265
Appendix B G LOSSARY
Bump-Mapping In computer graphics, the realism of a surface is emphasized by applying a texture, such as a photograph of a surface. For example, if a photograph of bricks is applied to a square, a wall can be simulated without having to model all details, i.e., grooves, joints, ridges, and surface bumps of the bricks. Aside from changing the color, the texture can also modify other surface characteristics. A so called bump-map changes the direction of the surface normal and thereby is able to simulate a structured surface.
Cn -Continuity Often individual components of a plant must be fitted, such as small branches to a main branch. The smoothness of the geometrical transitions is expressed by the Cn -continuity: the higher the value n, the smoother the transition. In mathematics Cn -continuity expresses that the derivations on both sides of the transition are in accordance up to the n-th order.
Coherence (Spatial/Temporal) If an object is displayed in an image sequence or is maneuvred interactively on the screen, a continuous change of the shape without visible artifacts is desirable. If a smooth change of object transitions is achieved, we speak of a temporal coherence, in interactive systems also of a spatial coherence.
CSG Tree (Constructive Solid Geometry) A data structure for the definition of complex volumes. The leaves of the data structure (nodes without successors) are geometric primitives such as cubes, balls, cylinders, or half-spaces; the inner nodes are Boolean set operations such as intersection, subtraction, or unification.
Display List A display list includes geometric data for the display on the computer screen, such as triangles for the definition of a surface. The display list is assigned to the graphics hardware and can be called up very quickly. A display list is especially useful when the same geometry is to be displayed in different places. In this case the list is defined and transferred once, the graphics unit then is able to rapidly draw several copies at different locations.
Finite Element Method A procedure for the numeric computation of complex problems. A problem is discretized into a finite set of small simple components that are interacting. The reactions of these components to external influences are linear to the force of the influences. This process allows for the definition of the system over extensive matrix equations that can, however, often be solved efficiently. 266
Generalized Cylinder An extended cylinder model constructed from a surface, such as a square that is moved along a path in a space. The resulting enclosed volume (resulting from the moving) of the surface forms the generalized cylinder.
Appendix B G LOSSARY
Homogeneous Coordinates An extended mathematical model for the definition of positions in a space. Instead of three coordinates x, y, z, four coordinates (x, y, z, w) are used and the actual position is determined through a special projection of the four coordinate position (projective geometry). This permits the formulation of all affine transformations (see above) using 4 × 4-matrices, thereby considerably simplifying the computation.
Image Processing Manipulation and analysis of images. Simple image processing encompasses the modification of colors or retouching of image contents. The image analysis in general attempts to recognize and to understand the content of an image.
Inhibitor A final state that a dynamic system avoids for a large number of initial conditions. The term is also used for substances that inhibit or decrease the effects of other substances in chemical or biological reactions (see also attractor).
Keyframing Concept for the definition of computer animations. The animation is specified using a set of essential key frames or scene states. The computer calculates the intermediate parts through interpolation of all values that define the key frames.
Level-of-Detail (LOD) Method for the dynamic representation of geometric data. For the display of data no fixed representation is used, but rather a definition that is modified in its complexity relative to the visual size of the object on the screen. A distant object consists of less data than an object closer to the virtual viewer. We differentiate between discrete and continuous LOD. For the discrete LOD, several fixed object definitions with varying details are used which are blended into each other. In the continuous LOD, the object is represented individually for each frame, without the viewer noticing that the model changes.
Morphing Algorithm Method for the distortion of images or objects. At defined points in the image or the object surface, displacement vectors are defined. The deformation of the remaining points is computed by interpolation. 267
Appendix B G LOSSARY
Polygon A description of a surface in space. The triangle is the most simple form of polygon; it is defined by the coordinates of the three vertices. A general polygon can have arbitrarily many vertices. A volume element that is defined by polygonal surfaces is called a polyhedron.
Postprocessing When creating computer animations, the images supplied by the rendering algorithm are usually processed further, i.e., colors are adjusted or different image layers are combined. This process is called postprocessing.
Pseudocode An English-language expression for a program code that notes only the essential processes without distracting the reader by presenting too many details. The implementation in a concrete programming language can look different, but can be translated easily from the pseudocode.
Real-Time A non-trivial term from informatics. Real-time operations mean that tasks are solved by a program so that the results can be used continuously in a running system, such as a technical installation or an interactive system. The growth simulation of a tree in true real-time is not interesting, since it pertains to the time span that the tree actually uses to grow. Therefore, real-time describes a human rather than a machine or absolute sense of time.
Rendering The process of the image production that transforms data input in the form of geometries and lighting parameters into an image using a computer program that simulates the light transport between the objects. There also exists sound rendering, which similarly produces sound.
Texture To enhance realism in computer graphics, pictures or photographs are projected onto a surface. These projected images are called textures. For example, when modeling trees, textures are used for the bark and the leaves. This makes it possible to only use a square per leaf onto which a picture of a real leaf is projected. In this process it is necessary to assign to each pixel of the texture a so-called alpha value. This allows the user to project also ragged- or irregularshaped leaves onto a square (see also bump-mapping and alpha channel).
268
Virtual-Reality System (VR) A computer system for the simulation of a synthetic environment. This often takes place using special input devices such as head-mounted displays and data gloves that allow the user to interact with the virtual world. An example of a VR system is a flight simulator that is equipped with a realistic cockpit, sight and sound system as well as force feedback.
Appendix B G LOSSARY
269
Figure credits
Figure 2.1: Telome theory according to Throm [218] Figure 2.2: Leaf arrangements according to Throm [218] c Springer-Verlag Figure 2.5: Tree architecture models from [81], Figure 4.1: Discrete branching pattern due to Ulam [220] Figure 4.2: Continuous branching structures elaborated by Cohen [29] Printed by permission Figure 4.3: Branching structure by Honda [91], Plate II, Printed by permission Figure 4.4: Parameters of the Aono and Kunii model, similar to [5] Figure 4.5: Branching structures by Aono and Kunii, from [5], Figs. 5b, 5g, 11d, 13e, Printed by permission Figure 4.6: Branching process by Honda [92], Fig. 3,11. Printed by permission Figure 4.7: Structured particle system by Reeves and Blau [171], Figs. 11, 12, c 1985 ACM SIGGRAPH. Reprinted by permission c 1986 Figure 4.8: Fractal tree model by Oppenheimer, from [150], View I, ACM SIGGRAPH. Reprinted by Permission Figure 4.9: Procedural tree model by Bloomenthal, taken from [18], Fig. 11, c 1985 ACM Siggraph, Reprinted by permission 16, Figure 4.10: Growth process by de Reffye, from [34] c 1988 ACM Figure 4.11: Models by de Reffye [34], Plates 5, 8, 10, 15, SIGGRAPH. Reprinted by permission Figure 4.12: Stochastic modeling of trees by Viennot, Eyrolles, Janey, Arqu´es, c 1989 ACM SIGGRAPH. Reprinted by permission [225], Figs. 13, 22, Figure 4.13: Tree modeling due to Holton [89] Figure 4.14: Tree models by Holton [89], Figs. 13 and 14. Reprinted by permission c 1995 ACM Figure 4.15: Tree models by Weber and Penn [231], Plate I a–h, SIGGRAPH, Reprinted by permission. Figure 4.16: Voxel plants by Greene and NYIT Comp. Graphics Lab [77], Figs. c 1989 ACM SIGGRAPH, Reprinted by permission 5, 9, Figure 5.2: Power of 0L-systems and (k,l)-systems, due to [166]
271
F IGURE CREDITS
Figure 5.3: Four branching structures, due to [166] c Springer-Verlag. Figure 5.5: Three-dimensional shrub from [166], Fig. 1.25, Printed by permission Figure 5.6: Binary tree, from[166] Figure 5.7: Models of parameterized L-systems from [166], Figs. 2.6c, d, 2.7c, c Springer-Verlag. Printed by permission 2.8b, Figure 5.8: Branching structures generated using context-sensitive L-systems c Springer-Verlag. Printed by permission from [166], c SpringerFigure 5.9: Realistic plant models from [166], Figs. 4.4, 4.10, Verlag. Printed by permission c 1993 Figure 5.10: Growth of Hieracium umbellatum, from [164], Fig. 13, ACM SIGGRAPH. Reprinted by permission c 1995 ACM SIGFigure 5.11: Pruning of a plant, from [165], Figs. 6, 11, GRAPH. Reprinted by permission Figure 5.12: Interaction of plants with their environment, from [144] Figs. 12, c 1996 ACM SIGGRAPH. Reprinted by permission 14, 16 c 2002 ACM SIGGRAPH. Figure 5.13: Interactive editing, from [167], Fig. 7, Reprinted by permission Figure 5.14: Sierpinski triangle, due to [9] Figure 5.15: Fern leaf, due to [11] Figure 5.16: Object instancing, due to [83] c Springer-Verlag. Printed by Figure 5.17: Tree geometry, from [74], Fig. 7, permission Figure 5.18: Cyclic CSG graphs, due to [74] c Gilles Tran. Printed by permission Figure 6.19: “Poplars”, c Gilles Tran. Printed by permission Figure 6.20: “Evergreen”, c Gilles Tran. Printed by permission Figure 6.21: “2CV”, c Kenton Musgrave. Printed by permission Figure 7.5: Synthetic landscape, c 1998 ACM SIGFigure 7.7: Interaction with terrain, from [39], Figs. 2, 3, GRAPH. Reprinted by permission Figure 8.1: System architecture, drawn after [39] c Stefan Hiller. Printed by Figure 8.3: Hierarchical distribution of objects, permission Figure 8.5: Self-thinning curve, due to [39] Figure 8.6: Simulated population by P. Prusinkiewicz, from [39], Figs. 4–6, c 1998 ACM SIGGRAPH. Reprinted by permission c 1998 Figure 8.7: Simulated plant distribution, from [39], Figs. 6 and 8, ACM SIGGRAPH. Reprinted by permission
272
Figure 9.1: Different illustrations of trees, subimages (b)–(d) from: L. Evans, c The New Complete Illustration Guide, 1996, Van Nostrand Reinhold Company, This material is used by permission of John Wiley & Sons, Inc. Figure 9.5: Light dispersion in leaves, due to [82] and [8] c 1997 ACM SIGFigure 9.12: Complex plant scene, from [159], Fig. 2, GRAPH. Reprinted by permission c Gilles Tran. Printed by permission Figure 9.19: “Darkside”, c Gilles Tran. Printed by permisFigure 9.20: Detailed view of “Darkside”, sion c Norbert Kern. Printed by permission Figure 9.21: “Warm up”, c Krysztof Plonka Figure 9.22: “Jurassica” by Krysztof Plonka, c Jan Walter Schliep Figure 9.23: “Green” by Jan Walter Schliep,
F IGURE CREDITS
c SpringerFigure 10.3: Image-based rendering from [132], Figs. 1, 2, 5, Verlag Figure 10.4: Voxel-based hierarchical rendering, from [147], Figs. 16b, 17b, c Springer-Verlag. Printed by permission c ACM Figure 10.5: LOD modeling of trees, from [231], Plates 3b and 4, SIGGRAPH, Printed by permission Figure 10.6: Layered depth images, rendered with the system by M. Cohen, Microsoft Research. Printed by permission Figure 10.10: Drop and resize with billboards (courtesy of Nick Halper, University of Magdeburg) c Jan Figure 11.1: Nonphotorealistic rendering by manipulating an image, Walter Schliep. Printed by permission c 1997 Figure 11.2: Interactively generated tree sketch, from [184], Fig. 2, ACM SIGGRAPH. Reprinted by permission c 1999 ACM SIGFigure 11.3: Tree illustrations from [111], Figs. 2, 4, GRAPH, Reprinted by permission Figure 11.4: Production of form using abstraction. Illustrations: L. Evans, The c New Complete Illustration Guide, 1996, Van Nostrand Reinhold Company. This material is used by permission of John Wiley & Sons, Inc. Figure 11.5: Production of forms using visual agglomeration, Illustrations: L. c Evans, The New Complete Illustration Guide, 1996, Van Nostrand Reinhold Company. This material is used by permission of John Wiley & Sons, Inc. Figure 11.6: Processing light in trees, from: L. Evans, The New Complete Ilc lustration Guide, 1996, Van Nostrand Reinhold Company. This material is used by permission of John Wiley & Sons, Inc. Figure 11.7: Rendering typical tree structures, from L. Evans, The New Comc plete Illustration Guide, 1996, Van Nostrand Reinhold Company. This material is used by permission of John Wiley & Sons, Inc. 273
F IGURE CREDITS
Figure 11.8: Rendering the tree trunk, from L. Evans, The New Complete Ilc lustration Guide, 1996, Van Nostrand Reinhold Company. This material is used by permission of John Wiley & Sons, Inc. c Figure 12.1: Section from FormSynth, William Latham c Figure 12.2: Organic forms, William Latham c Figure 12.3: Stills from the Panspermia animation, Karl Sims c Figure 12.4: Evolved virtual creatures, Karl Sims c Figure 12.5: Genotype graphs, Karl Sims c Figure 12.6: Detailed genotype graph, Karl Sims c Figure 12.7: Moving creatures, Karl Sims c Figure 12.8: Organic figures, from “Galapagos”, Karl Sims c Figure 12.9: Photograph of “Interactive Plant Growing”, ZKM Karlsruhe c Figure 12.10: Screenshots from “Interactive Plant Growing”, 1992 C. Sommerer and L. Mignonneau. Printed by permission c Figure 12.11: “A-Volve”, 1995 C. Sommerer and L. Mignonneau. Printed by permission. c Figure 12.12: Sequence from “Tree of Knowledge”, 1997 Bill Viola. Printed by permission. c Figure 12.13: Sequence from “Tree of Knowledge” , 1997 Bill Viola. Printed by permission. c Figure 12.14: Screenshots from the installation “Tree of Knowledge”, 1997 Bill Viola. Printed by permission
274
Bibliography
[1] H. Abelson and A. diSessa. Turtle geometry. MIT Press, Cambridge, 1982. [2] I. Adler. A model of contact pressure in phyllotaxis. J. Theoretical Biology, 45:1–79, 1974. [3] F. Ahnert. Modelling landform change. In: Modelling Geomorphological Systems. Wiley, New York, 1988. [4] F. Ahnert. Einf¨uhrung in die Geomorphologie. Ulmer, Stuttgart, 1996. [5] M. Aono and T. L. Kunii. Botanical tree image generation. IEEE Computer Graphics and Applications, 4(5):10–34, 1984. [6] A. Appel, F. Rohlf and A. Stein. The haloed line effect for hidden line elimination. Computer Graphics, 13(3):151–157, SIGGRAPH 79 Conf. Proc. [7] R. Armstrong. A comparison of index-based and pixel-based neighborhood simulations of forest growth. Ecology, 74(6):1707–1712, 1993. [8] G. Baranoski and J. Rokne. An algorithmic reflectance and transmittance model for plant tissue. Computer Graphics Forum, 16(3), 1997. [9] M. Barnsley. Fractals Everywhere. Academic Press, 1988. [10] M. Barnsley and S. Demko. Iterated function systems and the global construction of fractals. In: Proc. Royal Society, Atlanta, Georgia, 1984. School of mathematics, Georgia Institute of Technology. [11] M. Barnsley, A. Jacquin, F. Malassenet, L. Reuter and A. D. Sloan. Harnessing chaos for image synthesis. In: J. Dill, Ed., Computer Graphics (SIGGRAPH ’88 Proc.), Vol. 22, pp. 131–140, August 1988. [12] A. C. Beers, M. Agrawala and N. Chaddha. Rendering from compressed textures. In: SIGGRAPH 98 Conf. Proc., pp. 373–378. ACM SIGGRAPH, Addison-Wesley, 1996. [13] T. Belschner. http://www.dataphonic.de. [14] R. Berger. The unidecidability of the domino problem. Memoirs Amer. Math. Soc., (72), 1966. [15] G. Bernasconi. Reaction-diffusion model for phyllotaxis. Physica D, pp. 90–99, 1994. [16] J. Blinn. A generalization of algebraic surface drawing. ACM Trans. on Graphics, 1(3):235–256, 1982. [17] J. Bloomenthal. A representation for botanical trees using density distributions. In: Proc. Intl. Conf. on Engineering and Computer Graphics, pp. 571–575. Beijing, China, 1984. [18] J. Bloomenthal. Modeling the mighty maple. In: B. A. Barsky, Ed., Computer Graphics (SIGGRAPH ’85 Proc.), Vol. 19, pp. 305–311, 1985. [19] B. Blumberg and T. Galyean. Multi-level direction of autonomous creatures for real-time virtual environments. In: Robert Cook, Ed., SIGGRAPH 95 Conf. Proc., pp. 47–54, 1995.
275
B IBLIOGRAPHY
276
[20] B. Boots, A. Okabe and K. Sugihara. Spatial Tessellations: Concepts and Applications of Voronoi Diagrams. Wiley, 1992. [21] J. Braun-Blanquet. Pflanzensoziologie, Grundlagen der Vegetationskunde. Springer-Verlag, 3. Ed., 1964. [22] D. Brown and P. Rothery. Models in Biology: Mathematics, Statistics and Computing. Wiley, 1993. [23] A. Brownbill. Reducing the storage required to render L-system based models. Masters Thesis, University of Calgary, 1996. [24] J. Buchanan. Special effects with half-toning. Computer Graphics Forum, 15(3):97–108, 1996. [25] N. Chiba, K. Muraoka, A. Doi and J. Hosokawa. Rendering of forest scenery using 3D textures. The J. Visualization and Computer Animation, 8:191–199, 1997. [26] N. Chomsky. Three models for the description of languages. IRE Trans. on Information Theory, 2(3):113–124, 1956. [27] V. Claus, H. Ehrig and G. Rozenberg. Graph grammars and their application to computer science and biology; First international workshop. LNCS 73. Springer-Verlag, 1979. [28] R. Coggins, Ed. The Conquest of Form : Computer Art by William Latham. Arnolfini, Bristol, 1989. [29] D. Cohen. Computer simulation of biological pattern generation processes. Nature, (216):246–248, 1967. [30] M. Cohen, J. Shade, S. Hiller and O. Deussen. Aperiodic tiling for image and texture synthesis. ACM Trans. on Graphics, 22(3), 2003. [31] M. Cohen and J. Wallace. Radiosity and Realistic Image Synthesis. Academic Press, San Diego, 1993. [32] D. Cohen-Or and A. Shaked. Visibility and dead zones in digital terrain maps. Computer Graphics Forum, 14(3):171–180, 1995. [33] L. da Vinci. Notebooks (Remark No. 394). [34] P. de Reffye, C. Edelin, J. Francon, M. Jaeger and C. Puech. Plant models faithful to botanical structure and development. In: J. Dill, Ed., Computer Graphics (SIGGRAPH ’88 Proc.), Vol. 22, pp. 151–158. ACM SIGGRAPH, 1988. [35] S. Demko, L. Hodges and B. Naylor. Construction of fractal objects with iterated function systems. Computer Graphics (SIGGRAPH 85 Proc.), 19(3):271– 278. [36] O. Deussen. Pixel-oriented rendering of line drawings. In: T. Strothotte, Ed., Computational Visualization: Graphics, Abstraction and Interactivity, pp. 105– 120. Springer-Verlag, 1998. [37] O. Deussen, C. Colditz, M. Stamminger and G. Drettakis. Interactive visualization of complex plant ecosystems. In: IEEE Visualization 2002, pp. 219–226. IEEE, 2002. [38] O. Deussen, J. Hamel, A. Raab, S. Schlechtweg and T. Strothotte. An illustration technique using hardware-based intersections and skeletons. In: Proc. of Graphics Interface 99, pp. 175–182. Canadian Human-Computer Communications Soc., 1999. [39] O. Deussen, P. Hanrahan, M. Pharr, B. Lintermann, R. Mˇech and P. Prusinkiewicz. Realistic Modeling and Rendering of Plant Ecosystems. In: SIGGRAPH 98 Conf. Proc., pp. 275–286. ACM SIGGRAPH.
[40] O. Deussen and B. Lintermann. Erzeugung komplexer botanischer Objekte in der Computergraphik. Informatik Spektrum, 20(4), 1997. [41] O. Deussen and B. Lintermann. A Modelling Method and User Interface for Creating Plants. In: Proc. Graphics Interface 97, pp. 189–198. Morgan Kaufmann Publishers, May 1997. [42] O. Deussen and T. Strothotte. Computer-generated pen-and-Ink illustration of trees. Computer Graphics, 34(4):13–18, SIGGRAPH 2000 Conf. Proc. [43] H. Dierschke. Pflanzensoziologie, Grundlagen und Methoden. Ulmer, Stuttgart, 1994. [44] D. Dooley and M. Cohen. Automatic illustration of 3D geometric models: Lines. Computer Graphics (1990 Symp. on Interactive 3D Graphics), 24(2):77– 82, 1990. [45] J. Dorsey, A. Edelman, J. Legakis, H. Jensen and H. Pedersen. Modeling and rendering of weathered stone. In: SIGGRAPH 99 Conf. Proc., pp. 225–234, 1999. [46] J. Dorsey and P. Hanrahan. Modeling and rendering of metallic patinas. In: SIGGRAPH 96 Conf. Proc., pp. 387–396, 1996. [47] J. Dorsey, H. Pedersen and P. Hanrahan. Flow and changes in appearance. In: SIGGRAPH 96 Conf. Proc., pp. 411–420, 1996. [48] R. Drebin, L. Carpenter and P. Hanrahan. Volume rendering. Computer Graphics (SIGGRAPH 88 Conf. Proc.), 22(4):65–74, 1988. [49] Q. Du, V. Faber and M. Gunzburger. Centroidal voronoi tessellations. SIAM Review, 41(4):637–676, 1999. [50] E. Du Bois-Reymond. Versuch einer Classification der willk¨urlichen Functio¨ nen reeller Argumente nach ihren Anderungen in kleinsten Intervallen. Journal f¨ur reine und angewandte Mathematik, 79:21–37, 1875. [51] T. Duff. Compositing 3-D rendered images. In: Computer Graphics (SIGGRAPH ’85 Conf. Proc.), Vol. 19, pp. 41–44, 1985. [52] D. Ebert, K. Musgrave, P. Peachey, K. Perlin and S. Worley. Texturing and Modeling: A Procedural Approach. Academic Press, 1994. [53] M. Eck, T. DeRose, T. Duchamp, H. Hoppe, M. Lounsbery and W. Stuetzle. Multiresolution analysis of arbitrary meshes. SIGGRAPH 95 Conf. Proc., pp. 173–182, 1995. [54] A. Efros and W. Freeman. Image quilting for texture synthesis. In: SIGGRAPH 2001 Conf. Proc., pp. 341–346. [55] G. Elber. Line Art Rendering via a coverage of isoparametric curves. IEEE Trans. on Visualization and Computer Graphics, 1(3):231–239, 1995. [56] G. Elber. Line illustrations in computer graphics. The Visual Computer, 11(6):290–296, 1995. [57] G. Elber. Line art illustrations of parametric and implicit forms. IEEE Trans. on Visualization and Computer Graphics, 4(1):71–81, 1998. [58] L. Evans. The New Complete Illustration Guide: The Ultimate Trace File for Architects, Designers, Artists, and Students. Van Nostrand Reinhold, 1996. [59] E. Ferley, M. Cani-Gascuel and D. Attali. Skeletal reconstruction of branching shapes. Computer Graphics Forum, 16(5):283–293, 1997. [60] G. Fifield. Three Artists Who Make Art That Makes Art. 1994. [61] F. Firbank and A. Watkinson. A model of interference within plant monocultures. J. Theoretical Biology, 116:291–311, 1985.
B IBLIOGRAPHY
277
B IBLIOGRAPHY
278
[62] J. Fisher and H. Honda. Computer simulation of branching pattern and geometry in Terminalia (Combretaceae), a tropical tree. Botanical Gazette, 138:377– 384, 1977. [63] J. Fisher and H. Honda. Branch geometry and effective leaf area: a study of Terminalia-branching pattern. 1 Theoretical ideas. American J. Botany, 66:633–644, 1979. [64] K. Fleischer, D. Laidlaw, B. Currin and A. Barr. Cellular Texture Generation. In: SIGGRAPH 95 Conf. Proc., pp. 239–248, 1995. [65] R. Floyd and L. Steinberg. An adaptive algorithm for spatial grey scale. Proc. Soc. Inf. Display, 17:75–77, 1976. [66] D. Fowler, J. Hanan and P. Prusinkiewicz. Modelling spiral phyllotaxis. Computers and Graphics, 13(3):291–296, 1989. [67] D. Fowler, P. Prusinkiewicz and J. Battjes. A collision-based model of spiral phyllotaxis. In: Computer Graphics (SIGGRAPH 92 Conf. Proc.), Vol. 26, pp. 361–368, 1992. [68] W. Frey and R. L¨osch. Lehrbuch der Geobotanik. Gustav Fischer Verlag, 1998. [69] G. Gardner. Simulation of Natural Scenes Using Textured Quadric Surfaces. In: H. Christiansen, Ed., Computer Graphics (SIGGRAPH ’84 Conf. Proc.), Vol. 18, pp. 11–20, 1984. [70] M. Gardner. Mathematical games: The fantastic combinations of John Conways’s new solitaire game “life”. Scientific American, 223(2):120–123, 1970. [71] M. Gardner. Mathematical games: on cellular automata, self-reproduction, their Garden of Eden and the game “life”. Scientific American, 224(2):112– 117, 1971. ¨ [72] A. Gerhardt-Dircksen. Die Evolution der Pflanzen – ein Uberblick. Praxis der Naturwissenschaften, Biologie, 1985. [73] A. Gersho and R. Gray. Vector quantization and signal compression. Kluwer Academic Publishers, 1991. [74] M. Gervautz and C. Traxler. Representation and realistic rendering of natural phenomena with cyclic CSG graphs. The Visual Computer, 12:62–74, 1996. [75] A. Glassner. Principles of Digital Image Synthesis. Morgan Kaufmann, 1995. [76] D. Green. Modelling plants in landscapes. In: M. T. Michalewicz, Ed., Plants to Ecosystems. Advances in Computational Life Sciences I, pp. 85–86, CSIRO Publishing, Melbourne, 1997. [77] N. Greene. Voxel space automata: modelling with stochastic growth processes in voxel space. Computer Graphics, 23(3):175–184, 1989. [78] Q. Guo and T. Kunii. Modeling the diffuse painting of Sumie. In: T. L. Kunii, Ed., IFIP Modeling in Computer Graphics, 1991. [79] J. Haefner. Modelling Biological Systems. Kluwer Academic Publishers, 1996. [80] F. Hall´e and R. Oldeman. Essai sur l’architecture et la dynamique de crossaince des arbres tropicaux. Masson et Cie, Paris, 1970. [81] F. Hall´e, R. Oldeman and P. Tomlinson. Tropical Trees and Forests. SpringerVerlag, 1978. [82] P. Hanrahan and W. Krueger. Reflection from layered surfaces due to subsurface scattering. In: J. T. Kajiya, Ed., SIGGRAPH 93 Conf. Proc., pp. 165–174, 1993. [83] J. Hart. The object instancing paradigm for linear fractal modeling. In: Graphics Interface 92 Conf. Proc., pp. 224–231, 1992.
[84] J. Hart and T. DeFanti. Efficient anti-aliased rendering of 3D linear fractals. In: Thomas W. Sederberg, Ed., Computer Graphics (SIGGRAPH 91 Conf. Proc.), Vol. 25, pp. 91–100, 1991. [85] P. Heckbert. Color image quantization for frame buffer display. Computer Graphics (SIGGRAPH 82 Conf. Proc.), 16(3):297–307, 1982. [86] S. Higgins and D. M. Richardson. A review of models of alien plant spread. Ecological Modelling, 87:249–265, 1996. [87] S. Hiller and O. Deussen. Voronoi Relaxierung allgemeiner Objekte. In: T. Schulze and P. Lorenz, Ed., Simulation und Visualisierung 2001 (Magdeburg), pp. 223–234, Delft, 2001. Soc. for Computer Simulation (SCS) Europe. [88] P. Hogeweg and B. Hesper. A model study on biomorphological description. Pattern Recognition, 6:165–179, 1974. [89] M. Holton. Strands, gravity and botanical tree imagery. Computer Graphics Forum, 13(1):57–67, 1994. [90] S. Holtzmann. Digital Mosaics. The Aesthetics of Cyberspace. Simon and Schuster, 1997. [91] H. Honda. Description of the form of trees by the parameters of a tree-like body: effects of the branching angle and the branch length on the shape of the tree-like body. J. Theoretical Biology, 31:331–338, 1971. [92] H. Honda, P. Tomlinson and J. Fisher. Computer simulation of branching interaction and regulation by unequal flow rates in botanical trees. American J. Botany, 68(4):569–585, 1981. [93] H. Hoppe. Progressive Meshes. In: SIGGRAPH 96 Conf. Proc., pp. 99–108. [94] H. Hoppe. View-dependent refinement of progressive meshes. In: SIGGRAPH 97 Conf. Proc., pp. 189–198. [95] R. Horton. Erosioned development of systems and their drainage basins, hydrophysical approach to quantitative morphology. Bull. Geol. Soc. Amer., 56:275–370, 1945. [96] B. Hosgood, S. Jacquemoud, G. Andreoli, J. Verdebout, G. Pedrini and G. Schmuck. Leaf optical properties experiment 93. Internal report, Joint Research Center, European Commission, Institute for Remote Sensing Applications, EUR 16095 EN, 1995. [97] D. House, G. Schmidt, S. Arvin and M. Kitagawa-DeLeon. Visualizing a real forest. IEEE Computer Graphics and Applications, 18(1):12–15, 1998. [98] S. Hsu and I. Lee. Drawing and animation using skeletal strokes. Computer Graphics, 28(4):109–118, SIGGRAPH 94 Conf. Proc. [99] K. Culik II. An aperiodic set of 13 wang tiles. Discrete Mathematics, 160:245– 251, 1996. [100] H. Jensen and J. Buhler. A rapid hierarchical rendering technique for translucent materials. In: SIGGRAPH 2002 Conf. Proc. [101] H. Jensen, S. Marschner, M. Levoy and P. Hanrahan. A practical model for subsurface light transport. In: SIGGRAPH 2001 Conf. Proc., pp. 511–518. [102] S. Jorgensen and G. Bendoricchio. Fundamentals of Ecological Modelling. Elsevier Science, 2001. [103] J. Kajiya. The rendering equation. In: SIGGRAPH 1986 Conf. Proc., pp. 143– 150. [104] J. Kajiya and T. Kay. Rendering fur with three dimensional textures. In: SIGGRAPH 1989 Conf. Proc., pp. 271–280.
B IBLIOGRAPHY
279
B IBLIOGRAPHY
280
[105] T. Kamada and S. Kawai. An enhanced treatment of hidden lines. ACM Transactions on Graphics, 6(4):309–323, 1987. [106] J. Kari. An small aperiodic set of wang tiles. Discrete Mathematics, 160:259– 264, 1996. [107] A. Kaufman. 3D scan conversion algorithms for voxel-based graphics. In: Proc. 1986 Workshop on interactive 3D Graphics, pp. 45–75. ACM SIGGRAPH, ACM Press, 1986. [108] T. Kay and J. Kajiya. Ray tracing complex scenes. In: Computer Graphics (SIGGRAPH ’86 Conf. Proc.), Vol. 20, pp. 269–278, 1986. [109] A. Kelley, M. Malin and G. Nielson. Terrain simulation using a model of stream erosion. In: SIGGRAPH 1988 Conf. Proc., pp. 263–268. [110] E.P. Klucking. The Classification of Leaf Venation Patterns. 1995. [111] M. Kowalski, L. Markosian, J. Northrup, L. Burdev, R. Barzel, L. Holden and J. F. Hughes. Art-based rendering of fur, grass, and trees. In: SIGGRAPH 99 Conf. Proc. ACM SIGGRAPH. [112] J. Lansdown and S. Schofield. Expressive rendering: a review of nonphotorealistic techniques. IEEE Computer Graphics and Applications, 15(3):29–37, 1995. [113] W. Latham. Computers in Art, Design and Animation (J. Lansdown and R.A. Earnshaw, Ed.), Chapter FormSynth: The rule-based evolution of complex forms from geometric primitives. Springer-Verlag, 1989. [114] W. Leister. Computer generated copper plates. Computer Graphics Forum, 13(1):69–77, 1994. [115] M. Levoy and P. Hanrahan. Light field rendering. In: SIGGRAPH 96 Conf. Proc, pp. 31–42. ACM SIGGRAPH, 1996. [116] T. Ligget. Stochastic Interacting Systems: Contact, Voter and Exclusion Processes. Springer-Verlag, New York, 1999. [117] A. Lindenmayer. Mathematical models for cellular interactions in development, I. Filaments with one-sided inputs. J. Theoretical Biology, 18:280–299, 1968. [118] A. Lindenmayer. Mathematical models for cellular interactions in development, II. simple and branching filaments with two-sided inputs. J. Theoretical Biology, 18:300–315, 1968. [119] A. Lindenmayer. Developmental systems without cellular interaction, their languages and grammars. J. Theoretical Biology, (30):455–484, 1971. [120] P. Lindstrom, D. Koller, W. Ribarsky, L. Hodges, N. Faust and G. Turner. Realtime, continous level of detail rendering of height fields. In: Computer Graphics (SIGGRAPH 96 Conf. Proc.), pp. 109–118, 1996. [121] B. Lintermann and O. Deussen. A modelling method and user interface for creating plants. Computer Graphics Forum, 17(1):73–82, 1998. [122] B. Lintermann and O. Deussen. Interactive modeling of plants. IEEE Computer Graphics and Applications, 19(1):56–65, 1999. [123] F. Lohan. The Drawing Handbook. Contemporary Books, Chicago, 1993. [124] Lucasfilm Ltd. The Adventures of Andr´e and Wally B. Film, 1984. [125] U. L¨uttge, M. Kluge and G. Bauer. Botanik. Wiley-VCH, 2002. [126] B. Mandelbrot. Fractals: Form, Chance and Dimension. W.H. Freeman and Co., San Francisco, 1977.
[127] B. Mandelbrot. The Fractal Geometry of Nature. W.H. Freeman and Co., San Francisco, 1983. [128] L. Markosian, M. A. Kowalski, S. Trychin, L. Bourdev, D. Goldstein and J. Hughes. Real-time nonphotorealistic rendering. In: SIGGRAPH 97 Conf. Proc., pp. 415–420, 1997. [129] D. Marshall, D. Fussel and A. Campbell. Multiresolution rendering of complex botanical scenes. In: Proceedings of Graphics Interface 97, pp. 97–104. ¨ [130] F. Mattick. Ubersicht u¨ ber die Florenreiche und Florengebiete der Erde. In: H. Melchior, Ed., A. Englers Syllabus der Pflanzenfamilien II, pp. 626–630, 1964. [131] N. Max. Hierarchical rendering of trees from precomputed multi-layer Zbuffers. In: Eurographics Rendering Workshop 96, pp. 165–174. SpringerVerlag (Rendering Techniques 1996), 1996. [132] N. Max, O. Deussen and B. Keating. Hierarchical image-based rendering using texture mapping hardware. Eurographics Rendering Workshop 99, pp. 57–62, 1999. [133] N. Max, C. Mobley, B. Keating and E. Wu. Plane-parallel radiance transport for global illumination in vegetation. Eurographics Rendering Workshop 97, pp. 239–250. [134] N. Max and K. Ohsaki. Rendering trees from precomputed Z-buffer views. In: Eurographics Rendering Workshop 1995. Springer-Verlag (Rendering Techniques 1995), 1995. [135] M. McCool and E. Fiume. Hierarchical poisson disk sampling distributions. In: Graphics Interface 92 Conf. Proc., pp. 94–105, 1992. [136] T. McReynolds and D. Blyth. Advanced Graphics Programming Techniques Using OpenGL. SIGGRAPH 98 Course Notes, ACM SIGGRAPH, 1998. [137] H. Meinhardt. The Algorithmic Beauty of Seashells. Springer-Verlag. [138] H. Meinhardt. Models of Biological Pattern Formation. Academic Press, 1982. [139] H. Meusel. Vergleichende Chorologie der zentraleurop¨aischen Flora I–III. Fischer-Verlag, Jena, 1965. [140] A. Meyer and F. Neyret. Interactive volumetric textures. In: Eurographics Rendering Workshop 1998, pp. 157–168. Springer-Verlag (Rendering Techniques 1998). [141] J. Møller. Lectures on Random Voronoi Tessellations. Springer-Verlag, 1994. [142] K. Musgrave. Methods for Realistic Landscape Imaging. Dissertation, Yale University, 1993. [143] K. Musgrave, C. Kolb and R. Mace. The synthesis and rendering of eroded fractal terrains. In: Computer Graphics (SIGGRAPH ’89 Proc.), Vol. 23, pp. 41–50, 1989. [144] R. Mˇech and P. Prusinkiewicz. Visual models of plants interacting with their environment. In: SIGGRAPH 96 Conf. Proc., pp. 397–410. ACM SIGGRAPH. [145] R. Myneni, J. Ross and G. Asrar. A Review on the theory of photon transport in leaf canopies. Agricultural and Forest Meteorology, 45:1–153, 1989. [146] K. Nagashima. Computer generation of eroded valley and mountain terrains. The Visual Computer, 13:456–464, 1997. [147] F. Neyret. Synthesizing verdant landscapes using volumetric textures. In: Eurographics Rendering Workshop 96, pp. 215–224. Springer-Verlag (Rendering Techniques 96).
B IBLIOGRAPHY
281
B IBLIOGRAPHY
282
[148] F. Neyret. A general and multiscale model for volumetric textures. In: Graphics Interface 95 Conf. Proc., pp. 83–91, 1995. [149] F. Neyret. Modeling, animating, and rendering complex scenes using volumetric textures. IEEE Trans. on Visualization and Computer Graphics, 4(1):55–70, 1998. [150] P. Oppenheimer. Real time design and animation of fractal plants and trees. In: Computer Graphics (SIGGRAPH 86 Conf. Proc.), Vol. 20, pp. 55–64, 1986. [151] V. Ostromoukhov. Digital facial engraving. pp. 417–424, SIGGRAPH 99 Conf. Proc. [152] V. Ostromoukhov and R. Hersch. Multi-Color and Artistic Dithering. SIGGRAPH 99 Conf. Proc., pp. 425–432. [153] V. Ostromoukhov and R. Hersch. Artistic screening. Computer Graphics, pp. 219–228, SIGGRAPH 95 Conf. Proc. [154] V. Ostromoukhov, R. Hersch and I. Amidror. Rotated dispersion dither: a new technique for digital halftoning. SIGGRAPH 94 Conf. Proc., pp. 123–130. [155] J. R. Parker. Extracting vectors from raster images. Computers & Graphics, 12(1):75–79, 1988. [156] F. Perbert and M. Cani. Animating prairies in real-time. In: 2001 ACM Symp. on Interactive 3D Graphics, pp. 103–110, 2001. [157] K. Perlin. An image synthesizer. In: Computer Graphics (SIGGRAPH 85 Conf. Proc.), Vol. 19, pp. 287–296, 1985. [158] J. Perrin. Brownian Movement and Molecular Reality. Taylor & Francis, 1909. [159] M. Pharr, C. Kolb, R. Gershbein and P. Hanrahan. Rendering complex scenes with memory-coherent ray tracing. In: SIGGRAPH 97 Conf. Proc., 1997. [160] E. Pielou. Mathematical Ecology. Wiley, 1977. [161] P. Prusinkiewicz. Modelling and visualization of biological structures. In: Proceedings of Graphics Interface 93, pp. 128–137, 1993. [162] P. Prusinkiewicz. Graphical applications of L-systems. Graphics Interface ’86, pp. 247–253, May 1986. [163] P. Prusinkiewicz and M. S. Hammel. A fractal model of mountains with rivers. Proc. Graphics Interface 93, pp. 174–180, 1993. [164] P. Prusinkiewicz, M. S. Hammel and E. Mjolsness. Animation of plant development. Computers Graphics (SIGGRAPH 93 Conf. Proc.), pp. 351–360, 1993. [165] P. Prusinkiewicz, P. James and R. M˘ech. Synthetic topiary. In: Computer Graphics (SIGGRAPH 95 Conf. Proc.), pp. 351–358, 1995. [166] P. Prusinkiewicz and A. Lindenmayer. The Algorithmic Beauty of Plants. Springer-Verlag, New York, 1990. [167] P. Prusinkiewicz, L. M¨undermann, R. Karwowski and B. Lane. The use of positional information in the modelling of plants. In: SIGGRAPH 2001 Conf. Proc., pp. 289–300. [168] P. Prusinkiewicz and G. Sandness. Koch curves as attractors and repellers. IEEE Computer Graphics & Applications, 8(6):26–40, November 1988. [169] P. Raven, R. Evert and S. Eichhorn. Biologie der Pflanzen. Walter de Gruyter, 2000. [170] T. Ray. Frontiers of Life, Volume One The Origins of Life (R. Dulbecco et. al. Ed.), Chapter Artificial Life, pp. 107–124. Academic Press, 2001. [171] W. Reeves. Particle Systems – a technique for modeling a class of fuzzy objects. ACM Transactions on Graphics, 2(2):91–108, 1983.
[172] W. Reeves and R. Blau. Approximate and probabilistic algorithms for shading and rendering structured particle systems. In: Computer Graphics (SIGGRAPH ’85 Conf. Proc.), Vol. 19, pp. 313–322, 1985. [173] W. Remphrey, B. Neal and T. Steeves. The morphology and growth of Arctostaphylos uva-ursi (bearberry), Parts I and II. Canadian J. Botany, 61(9):2430–2458, 1983. [174] W. Remphrey and G. Powell. Crown architecture of Larix laricina saplings: quantitative analysis and modelling of (non-sylleptic) order 1 branching in relation to development of the main stem. Canadian J. Botany, 62(9):1904–1915, 1984. [175] C. Reynolds. Flocks, herds and schools: a distributed behavioural model. Computer Graphics, 21(4):25–34, 1987. [176] M. Richter. Allgemeine Pflanzengeographie. Teubner Verlag, 1997. [177] J. Ridley. Computer simulation of contact pressure in capitula. J. Theoretical Biology, 95:1–11, 1982. [178] J. Ridley. Packing efficiency in sunflower heads. Mathematical Biosciences, 58:129–139, 1982. [179] J. Rossignac and P. Borrel. Multi-resolution 3D approximations for rendering complex scenes. In: Geometric Modeling in Computer Graphics, pp. 455–465. Springer-Verlag, 1993. [180] S. Rubin and T. Whitted. A three-dimensional representation for fast rendering of complex scenes. In: Computer Graphics (SIGGRAPH 80 Conf. Proc.), Vol. 14, pp. 110–116, 1985. [181] T. Saito and T. Takahashi. Comprehensive rendering of 3-D shapes. Computer Graphics, 24(4):197–206, SIGGRAPH 90 Conf. Proc. [182] M. Salisbury, C. Anderson, D. Lischinski and D. Salesin. Scale-dependent reproduction of pen-and-ink illustrations. In: SIGGRAPH 96 Conf. Proc., pp. 461–468, 1996. [183] M. Salisbury, S. Anderson, R. Barzel and D. Salesin. Interactive pen-and-ink illustration. Computer Graphics, 28(4):101–108, SIGGRAPH 94 Conf. Proc. [184] M. Salisbury, M. Wong, J. F. Hughes and D. Salesin. Orientable textures for image-based pen-and-ink illustration. In: SIGGRAPH 97 Conf. Proc., 1997. [185] A. Salomaa. Formal Languages. Academic Press, 1990. [186] T. Sasada. Drawing natural scenery by computer graphics. Computer-Aided Design, 19(4):212–218, 1987. [187] C. Satyan and S. Teller. Temporally coherent conservative visibility. In: Proc. Twelfth Annual ACM Symp. on Computational Geometry, pp. 78–87, 1996. [188] D. Saupe. Point evaluation of multi-variable random fractals. In: H. J¨urgens and D. Saupe, Ed., Visualisierung in Mathematik und Naturwissenschaften, pp. 114–126. Springer-Verlag, 1989. [189] G. Schaufler, J. Dorsey, X. Decoret and F. Sillion. Conservative volumetric visibility with occluder fusion. Computer Graphics (SIGGRAPH 2000 Conf. Proc.), 35(3), 2000. [190] G. Schaufler and W. St¨urzlinger. A three dimensional image cache for virtual reality. Computer Graphics Forum, 15(3):227–236, 1996. [191] J. Schmith¨usen. Allgemeine Vegetationsgeographie. Berlin, 1968. [192] F. Schroeder. Lehrbuch der Pflanzengeographie. Quelle & Meyer Verlag, Wiesbaden, 1998.
B IBLIOGRAPHY
283
B IBLIOGRAPHY
284
[193] R. Schubert, W. Hilbig and S. Klotz. Bestimmungsbuch der Pflanzen Nordostdeutschlands. Gustav Fischer Verlag, Jena, 1995. [194] J. Schumann, T. Strothotte, A. Raab and S. Laser. Assessing the effect of nonphotorealistic images in computer-aided design. In: ACM Human Factors in Computing Systems, SIGCHI 96, pp. 35–41, 1996. [195] J. Shade, S. Gortler, L. He and R. Szeliski. Layered depth images. In: SIGGRAPH 1998 Conf. Proc., pp. 231–242. [196] J. Shade, D. Lischinski, D. Salesin, T. DeRose and J. Snyder. Hierarchical image caching for accelerated walkthroughs of complex environments. In: SIGGRAPH 96 Conf. Proc., pp. 75–82, 1996. [197] M. Shebell. Modelling branching plants using attribute L-systems. Masters Thesis, Worcester Polytechnic Institute, 1986. [198] G. Simmons. The Technical Pen. Watson-Guptill Publishers. [199] K. Sims. Artificial evolution for computer graphics. Computer Graphics, 25(4):319–328, 1991. [200] K. Sims. In: Brooks and Maes, Ed., Artificial Life IV Proc., pp. 28–39. MIT Press, 1994. [201] A. Smith. Plants, fractals and formal languages. Computer Graphics (SIGGRAPH 84 Conf. Proc.), 18(3):1–10, 1984. [202] B. Smits, J. Arvo and D. Greenberg. A clustering algorithm for radiosity in complex environments. SIGGRAPH 94 Conf. Proc., pp. 435–442. [203] J. Snyder and A. Barr. Ray Tracing Complex Models Containing Surface Tessellations. In: Computer Graphics (SIGGRAPH 87 Proc.), Vol. 21, pp. 119–128, 1987. [204] C. Soler and F. Sillion. Hierarchical Instantiation for Radiosity. Eurographics Rendering Workshop 2000, pp. 173–184. [205] C. Sommerer and L. Mignonneau. Art@Science, Chapter Evolution as Artist, pp. 81–91. Springer-Verlag, 1997. [206] J. Stam. Aperiodic texture mapping. Internal report, R046. European Research Consortium for Informatics and Mathematics (ERCIM), 1997. [207] M. Stamminger and G. Drettakis. Interactive sampling and rendering for complex and procedural geometry. In: S. Gortler and C. Myszkowski, Ed., Rendering Techniques 2001, pp. 151–162. Springer-Verlag, Vienna, 2001. [208] J. Stewart. Hierarchical visibility in terrains. In: Eurographics Rendering Workshop 97, pp. 217–228. Springer-Verlag (Rendering Techniques 97), 1997. [209] E. Stollnitz, T. deRose and D. Salesin. Wavelets for computer graphics: theory and applications. Morgan Kaufmann, 1996. [210] A. Strahler. Hypsometric (area-altitude) analysis of erosional topology. Bull. Geol. Soc. Amer., 63:1117–42, 1952. [211] E. Strasburger, F. Noll, H. Schenk and A. Schimper. Lehrbuch der Botanik f¨ur Hochschulen. Gustav Fischer Verlag, 1998. [212] C. Strothotte and T. Strothotte. Seeing Between the Pixels: Pictures in Interactive Systems. Springer-Verlag, 1997. [213] T. Strothotte. Computational Visualization: Graphics, Abstraction and Interactivity. Springer-Verlag, 1998. [214] T. Strothotte, B. Preim, A. Raab, J. Schumann and D. R. Forsey. How to render frames and influence people. Computer Graphics Forum, 13(3):455–466, 1994.
[215] T. Strothotte and S. Schlechtweg. Non-photorealistic Computer Graphics. Morgan Kaufmann, 2002. [216] I. Sutherland. Sketchpad – a man-machine graphical communication system. In: Proc. Spring Joint Computer Conf., 1963. [217] A. Takhtajan. Floristic Regions of the World. Berkeley, 1986. [218] G. Throm. Grundlagen der Botanik. Quelle & Meyer Verlag, 2. Ed., 1996. [219] S. Todd and W. Latham. Evolutionary Art and Computers. Academic Press, London, 1992. [220] S. Ulam. Pattern of growth of figures: mathematical aspects. In: G. Keps, Ed., Module, Proportion, Symmetry, Rhythm, pp. 64–74. Braziller, New York, 1966. [221] R. Ulichney. Digital Halftoning. MIT Press, 1987. [222] J. Vannimenus and X. Viennot. Combinatorial tools for the analysis of ramified patterns. J. Stat. Physics, 54:1529–1538, 1989. [223] O. Verevka and J. Buchanan. Halftoning with images-based dither screens. In: Proc. Graphics Interface 99, pp. 167–174. Canadian Information Processing Soc., 1999. [224] O. Verevka and J. Buchanan. Comprehensive Halftoning of 3D Scenes. Computer Graphics Forum, 18(3):13–22, September 1999. [225] X. Viennot, G. Eyrolles, N. Janey and D. Arqu´es. Combinatorial analysis of ramified patterns and computer imagery of trees. In: Computer Graphics (SIGGRAPH ’89 Conf. Proc.), Vol. 23, pp. 31–40, 1989. [226] H. Vogel. A better way to construct the sunflower head. Mathematical Biosciences, 44:179–189, 1979. [227] R. Voss. Fractals in nature: from characterization to simulation. In: H. Peitgen and D. Saupe, Ed., The Science of Fractal Images, pp. 21–70. Springer-Verlag, 1988. ¨ [228] H. Walter and S. Breckle. Okologie der Erde. Gustav Fischer Verlag, 1991. [229] S. Wan, S. Wong and P. Prusinkiewicz. An algorithm for multi-dimensional data clustering. ACM Trans. Math. Software, 14(2):135–162, 1988. [230] A. Watt and M. Watt. 3D Computer Graphics. Addison-Wesley, 1992. [231] J. Weber and J. Penn. Creation and rendering of realistic trees. In: SIGGRAPH 95 Conf. Proc., pp. 119–128. [232] G. Winkenbach and D. Salesin. Computer-generated pen-and-ink illustration. In: SIGGRAPH 94 Conf. Proc., pp. 91–100. [233] G. Winkenbach and D. Salesin. Rendering parametric surfaces in pen and ink. Computer Graphics, 30(4):469–476, SIGGRAPH 96 Conf. Proc. [234] C. Yessios. Computer drafting of stones, wood, plant and ground materials. Computer Graphics (SIGGRAPH 79 Conf. Proc.), 13(3):190–198, 1979. [235] K. Yoda, T. Kira, H. Ogawa and K. Hozumi. Self-thinning in overcrowded pure stands under cultivated and natural conditions (Intraspecific competition among higher plants XI). J. Biol. Osaka City Univ, 14:107–129, 1963. [236] W. Zimmermann. Die Telomtheorie. Fischer-Verlag, Stuttgart, 1965.
B IBLIOGRAPHY
285
Index
0L-system, 65 1L-System, 65 2L-System, 65, 76 A-Volve, 241, 243 absorption coefficients, 160 abstraction, geometric, 23 abstraction, visual, 206 acidity, 125 Adler (A), 60 aerial view, 128 affine transformation, 79, 137, 183, 265 aggregation coefficient, 38 algorithm, probabilistic, 59 alpha-channel, 98, 163, 265 alphabet, 64, 66, 68 alternate arrangement, 13 anemons, 228 angle precision, 59 animation, 54, 75, 104, 126, 151, 157, 216 anisotropy, 129 annual grassland, 24 antagonist, 60 Aono (A), 47, 48, 50, 71, 107, 204, 232 apple tree, 147 application probability, 71 approximation, 158, 165 architecture, 150 area, 92, 93 areal, 22, 25, 128 artery, 33 Artificial Life, 227, 228, 230 attractor, 45, 47, 79, 82, 265 Australia, 22 axiom, 64, 66, 85 band limitation, 115 bank erosion, 122 Baranoski (A), 159 bark, 51, 52, 92, 101
Barnsley (A), 79, 81 base component, 92, 101, 103, 105 base element, 140 base geometry, 116, 182 basitony, 15 Belschner (A), 245 Bernasconi (A), 61 bifurcation, 47 bifurcation ratios, 29 billboard, 182, 191 binary tree, 14, 28, 29, 55, 80, 84 binary tree, random, 55 binomial distribution, 38 biorder, 29, 54, 56 biotope, 132, 238 Blau (A), 49, 50, 58, 108, 125, 150, 157, 162, 204 blob, 52 Bloomenthal (A), 51, 108 bluish fading, 158 border, 142 Borrel (A), 188 botany, 207 boundary condition, 39, 76, 104, 141 bounding box, 165, 166 branch, 92, 103, 184, 210, 228 branch diameter, 70 branch link, 97 branching angle, 47, 50, 56–58, 95, 101 branching characteristics, 29, 48 branching matrix, 30, 55 branching ratio, 29 branching structure, 10, 11, 14, 30, 44– 46, 50, 67, 72, 78, 82, 84, 85, 101, 122 branching, binary, 46 branching, sympodial, 48 Braun-Blanquet (A), 25 BRDF, 154, 159, 185 breadth-first search, 80 bronchial tree, 33
287
I NDEX
288
Brownian motion, 113, 114, 116 Brownian motion, fractional, 114–116 Brownian noise, 51, 114 BSP tree, 164 BTDF, 159 Buchanan (A), 221 bud, 52 bud axis, 9, 13 bud development, 9 bump-Mapping, 266 bump-mapping, 52 B´ezier Curve, 265 B´ezier function, 96 Cn -continuity, 266 caching, 167 cactus, 16 CAD, 84 camera, 163, 169, 213 camera component, 92 Cani (A), 185 cartoon tree, 204 cell, 44, 60, 65, 166 cellular automaton, 41, 43 character species, 25 chestnut tree, 98 Chiba (A), 186 child link, 97, 99, 101 chloroplast, 159 Chomsky (A), 64 Chomsky grammar, 66 circadian rhythm, 17 classification system, 28 clearcut forest association, 26 climate factors, 22 climbing plant, 15, 17, 58 clover, 38 clustered distribution, 38 coastline, 30, 113 coconut palm, 18 Cohen (A), 43, 45 Cohen-Or (A), 166 coherence, 151, 157, 167, 266 color coding, 142 combinatory, 29 communication symbol, 77 component, 89, 91 component prototypes, 90 compression, 82 computer game, 150 computing time, 170
conifer leaf, 20 Connection Machine, 232 constraint, 123, 128 context sensitivity, 12, 93 continuous simulation, 38 contraction characteristics, 80 contraction rate, 80 control points, 96 coordinate system, 90–94, 213 cormophytic growth forms, 9 cost function, 130 cross hatching, 207, 218, 222 cross-section, 56 crust movements, 120 crystal, 30 CSG graph, 64, 84, 228 CSG tree, 266 curvature, 89 cylinder, generalized, 51, 94, 95, 267 D0L system, 66 da Vinci (A), 32, 56 dart throwing, 37, 140 dart-throwing, 129 Darwin (A), 238 De Reffye (A), 52, 108, 232 decision table, 17 decussation, 13 DeFanti (A), 83 deformation, 96, 99 delta function, 154 Demko (A), 79 density, 40, 147 density field, 45 density image, 132, 147 denudation, 120 depth buffer, 166, 213 depth difference, 211, 213, 216 depth-difference algorithm, 213 depth-first search, 81 desert, 24 detail, 207 deviation angle, 13, 50, 58, 71, 95 difference-image algorithm, 204 differential equation, 39, 40, 75, 76, 104 differential species, 25 diffraction index, 159 diffusion, 158, 159 dimension, Euclidean, 30 dimension, fractal, 27, 31 dimension, Hausdorff-Besicovitsch-, 31
dimension, similarity, 31 dimension, topological, 30 discrete simulation, 38 dispersion, 13 dispersion coefficient, 38 display list, 266 distichy, 13 distribution, 37 distribution patterns, 129 divergence angle, 13, 34, 36, 60, 69 division ratio, 34 division, vegetation science, 22 domain, 76 dominant structures, 23 drawing, 202, 206, 211 drawing primitive, abstract, 214, 216 drawing style, 218 drawing techniques, 201 drop and resize, 189, 191 dry weight, 134, 135 Duff (A), 163 ecology, 10, 41 ecosystem file, 126–128 edge, 28, 118 edge collapse, 182 edge rewriting, 68 efficiency, 130, 150 Efros (A), 145 ellipsoid, 160 elongated shoot, 15 embedded keyframing, 245 endogenous rhythm, 16 energy equilibrium, 153 energy exchange, 33 environment, 78 environmental factor, 23 epidermis, 19, 159, 160 equal distance rule, 13 equation system, 154 equivalence, topological, 28 erosion, 118, 122 ESME, 228 Evans (A), 206 evolution, 234, 239, 242 Evolved Virtual Creatures, 234 exception, 93, 101, 105 expansion process, 86 family of forms, 229 fauna, 21
FFD component, 96 Fibonacci Angle, 36, 95, 190 Fibonacci numbers, 35, 36 finite element method, 154, 266 Fisher (A), 46 flora, 21, 25 floristic kingdom, 21, 22 floristic region, 23 flow rate, 48 Floyd-Steinberg algorithm, 132, 221 fluvial denudation, 121, 122 foliage, 208, 210 forest, 22, 24, 49 forest, deciduous, 22 forest, evergreen, 22 fork formations, 11 form, 207 form factor, 155 formation, 22 FormSynth, 228 Fortran program, 45 Fourier transform, 114 Fowler (A), 60 fractal, 27, 30, 31, 33, 49, 83, 113, 121, 127 frame rate, 94, 150, 200 freeform deformation, 96, 101 Freeman (A), 145 frequency spectrum, 114 Galapagos, 232, 237 Game of Life, 64 Gardner (A), 183 generator, 64, 116 Genetic Images, 231, 237 genome, 229, 232, 233 geoelement, 22, 23 geometric data, 126 geometry production, 90, 93 geometry term, 154 geomorphology, 118 Gervautz (A), 84, 85 ginkgo, 21 GIS, 128 glare light, 153 global light exchange, 157 Golden Angle, 13, 35, 59, 90 Golden Ratio, 34, 36 Golden Section, 95, 96 graftal texture, 205 grammar, 64
I NDEX
289
I NDEX
graph, 63, 64, 83, 223 graphics hardware, 94, 158, 166 grassland, 24 gravitational field, 97, 102 gravitropism, 95, 97, 101 gravitropism, negative, 16 gravitropism, plagio, 16 gravitropism, positive, 16 gravity field, 16 grayscale value image, 132 Greene (A), 58 grid, 115, 130, 164 growth, 77, 104 growth forms, 9 growth rate, 39, 40, 137, 147 growth rule, 44 Guo (A), 202 H¨older exponent, 114–117 habitat, 23 half-toning, 132, 204, 221 Hall´e (A), 9, 17, 33, 86 Hammel (A), 120, 122 Hart (A), 83, 84, 137 heath, 24 hedges, 103 height field, 118, 125, 126 Hiller (A), 131 Holton (A), 56, 108 homogeneous coordinates, 138, 267 Honda (A), 43, 46–48, 71, 78, 107 Hoppe (A), 182 horn, 228 horn component, 92, 94, 97, 229 Horton-Strahler analysis, 29, 54 Huber (A), 33 Humboldt (A), 21 humidity, 23 Huntington Gardens, 245 Hydra component, 95, 99 Hydrology, 29 Hyperpatch component, 96
290
i-tree, 90, 91, 97, 102 illumination, 152 illustration, 202, 204 image plane, 149 image processing, 267 image quantization, 139 image-based rendering, 157, 185 importance, visual, 194
index image, 169 inhibitor, 45, 47, 60, 267 initiator, 64, 116 instance, 90, 91, 102 instancing, approximate, 137, 147 instancing, hierarchical, 140 integral, 155 integral equation, 152, 154 Interactive Plant Growing, 227, 240 internodium, 13, 46, 52, 59 interpolation, 90, 102, 104, 132, 163 intersection, 210 intersection planes, 222 Iterated Function System, 63, 79, 83 Jensen (A), 159, 160 Kajiya (A), 83, 153 Kay (A), 83 Kelley (A), 122 Kern (A), 178 keyframing, 104, 267 knot, 28 Koch (A), 31 Kowalski (A), 205 Kunii (A), 47, 48, 50, 71, 107, 202, 204, 232 L-system, 63, 65, 67, 68, 70, 83, 86, 90, 95, 104, 108, 135, 137 L-system, differential-, 75 L-system, environment-sensitive, 77 L-system, open, 77 L-System, parameterized, 48 L-system, parameterized, 82, 85 L-system, parametric, 70 L-system, stochastic, 70 L-system, timed, 75 labyrinth, 146 lacunarity, 115, 116 Landsat, 128 landscape, 39, 40, 118, 132, 137, 145, 150, 157, 164, 216 landscape planning, 150, 157 Landscape sketches, 201 landscaping, 207 Lansdown (A), 203 Latham (A), 227–230 Layered Depth Images, 187 leaf arrangement, 13 leaf component, 93, 97, 99, 101
leaf development, 20 leaf link, 97 leaf surface, 33, 158 Lee (A), 202 Leister (A), 220, 222 Level-of-Detail, 181, 187, 267 lichens, 24 light, 58, 78, 94, 107, 125, 126, 134, 206, 207 light conditions, 15 light dispersion, 159 light distribution, 151, 158 light exchange, 170 light field, 93, 95, 97, 139 light source, 92, 152, 153, 157, 163, 166 light term, ambient, 154 light term, diffuse, 59, 152, 154 light term, direct, 155 light term, specular, 153, 154 light transport, 152 light, ambient, 152 light, indirect, 155 lighting, 151, 152, 155, 182 lighting model, 151, 153, 154 lighting model, global, 152 lighting model, local, 152, 158, 169 lighting procedures, 158 Lindenmayer (A), 43, 48, 63, 71, 82 Lindenmayer system, 63, 65 line style, 204, 222 linewidth, 223 Lipschitz constant, 80, 81 Lloyd’s method, 130 lobsters, 228 main axis, 14 Mandelbrot (A), 27, 30 maple, 100, 218 Markosian (A), 221 Markov model, 40 Marshall (A), 183 material parameter, 152, 154 matrix multiplication, 138, 265 Max (A), 170, 183 meadow, 49 media art, 227 median cut algorithm, 139 Meinhardt (A), 60 Memling (A), 244 memory management, 167
mesophyll, 159 metapopulation model, 41 Meusel (A), 23 midpoint displacement, 116, 120 Mignonneau (A), 227, 239 MIT Media Lab, 232 model information, 203 model, Corner, 18 model, demographical, 38 model, descriptive, 36, 75 model, functional, 36 model, Leeuwenberg, 18 model, Massart, 18 model, Rauh, 18 model, space-oriented, 43 model, structure-oriented, 43 modeling aspect, 86, 107 modeling expenditure, 105 modeling method, functional, 101 module, 71, 75, 76 monochasium, 14 monopodial, 14, 47, 50 morphing algorithm, 220, 267 morphology, 63, 107 moss cover, 24 mountain formation, 30 mountain range, 113, 120 multiplication component, 89–91, 93, 102, 104, 106 Musgrave (A), 118, 122 Mutator, 228, 229
I NDEX
Nagashima (A), 122 network, 54 Neumann, von (A), 43 Neyret (A), 185 node, 52, 68 node rewriting, 68 nodus, 13 noise function, 115, 117 nonphotorealistic, 149, 151, 202 object instancing, 82, 84 object instancing paradigm, 63, 83, 90 object number, 93 object production, rule-based, 89, 90, 95, 104 occlusion culling, 166, 167 oceanicity, 23 Ohsaki (A), 183 Oldeman (A), 9, 17, 33, 86
291
I NDEX
292
oleander, 218 open forest, 24 Oppenheimer (A), 49, 51, 108 optimization, 36 optimization, local, 60, 130 Organic Art, 228 organics, 227 orthotropy, 18 oscilloscope, 152 Ostromoukhov (A), 220 overtopping, 11 p-graph, 90, 91, 93, 95, 97–101, 104, 106 packing density, 34 Panspermia, 227, 232, 236 parameterization, 219 Parastichy, 35 park, 132 particle system, 49, 157, 162 path, 204 path-and-stroke, 202, 204 Penn (A), 58, 108, 187 Perbert (A), 185 perennial grassland, 24 periodicity, 141 Perlin noise function, 115, 116 petiole, 19 Phiball component, 96, 99, 101, 102 philodendron, 102 photography, 149, 151, 157 photorealistic, 149, 151 phototropism, 58, 59, 93, 95, 97, 101 phototropism, positive, 17 phototropism, transversal, 17 phyllotaxis, 34, 47, 59, 74, 229 pipeline, 125, 128 Piranesi, 203 pixel, 149, 153, 155, 156, 163, 166 planation, 12 plant alliance, 25 plant association, 132, 135, 137, 150 plant class, 25 plant community, 4, 128, 136 plant distribution, 125, 126, 128, 132, 134 plant family, 21 plant formation, 24 plant group, 22 plant order, 25 plant organs, 34
plant population, 23, 36, 64, 132, 140 plant positions, 126 plant production, fractal, 49 plant production, procedural, 43, 89, 104 plant production, rule-based, 43, 86, 89, 95 plant sketch, 202, 204 plant society, 25, 26 plant sociology, 25 pleiochasium, 14 Plonka (A), 179 point, 156 point set, 63, 84, 92, 129, 130, 139 Poisson disk distribution, 37, 129, 133, 140, 141 Poisson distribution, 37, 129, 140 polar coordinates, 34, 189 polygon, 268 polygonal curve, 89, 93 polygonal subdivision, 116 population, 38, 134, 135, 140 postprocessing, 150, 268 power law, 135 primary ray, 168, 169 primitive, geometric, 92, 103, 116 primrose, 104 print media, 202 priorized drawing, 224 production, 64 proportion, 34, 150 prototype, 90, 102 pruning, 77, 101, 103 Prusinkiewicz (A), 43, 48, 63, 66, 71, 75, 82, 86, 90, 104, 108, 120, 122 pseudocode, 50, 53, 268 Psylotum, 11 pushdown automaton, 67 quad tree, 164, 166 quantity of data, 151 quantization, 127, 137, 164 radiance, 152–154 radiosity, 154, 170 random, 102 random function, 114, 129 random scan terminal, 152 random-number generator, 129 randomly, 81 Ray (A), 242
ray query, 165, 169 raytracing, 117, 155, 165–167, 169 reaction-diffusion model, 40, 60 real-time, 268 real-time rendering, 183 realism, 150 recursion, 49, 50, 90, 91, 93, 97, 165 red beech, 23 reduction, 12, 140 reduction factor, 147 reed, 147 Reeves (A), 49, 50, 58, 108, 125, 150, 157, 162, 204 reflection, 152, 155, 160 reflection ray, 156 reflectivity, 152 regolith, 120, 121 regression model, 40 rendering, 126, 136, 137, 140, 149–151, 157–159, 195, 202, 216, 268 rendering algorithm, 158 rendering equation, 153 rendering methods, 166 rendering pipeline, 156 rendering, abstract, 210 rendering, nonphotorealistic, 201 representative, 137, 140, 147 restriction volume, 103 revo component, 93 rewriting system, 46, 64 rhododendron, 98, 99 ribcage, 229 Richter (A), 21–24 RIFS, 82, 83 river network, 29 river system, 33 riverbed erosion, 122 Rokne (A), 159 root, 91 Rossignac (A), 188 rotation axis, 69 rotation matrix, 69 rule system, 43, 59, 63 saddle surface, 51 Saito (A), 203, 205, 211, 213, 220 Salesin (A), 204, 218 Salisbury (A), 205, 218 sample scene, 146 Sasada (A), 204 Saupe (A), 116
saw tooth function, 51 scattering, 158, 159 Schaufler (A), 166, 185 Schofield (A), 203 Schroeder (A), 21–24 search ray, 155 secondary ray, 169 seeds, 96 segment, 51 self-affinity, 113, 114 self-shadowing, 13 self-similarity, 30, 49, 51, 82 semi desert, 22 semidesert, 24 sessile leaf, 19 Shade (A), 186, 187 shading, 150, 151, 211 shadow, 157, 158, 207, 216, 217 shadow buffer, 163 shadow casting, 152 shadow computation, 166 shadow evasion, 17 shape modeling, 101 sheath-forming petiole, 19 shells, 228 shoot, 11, 15, 17, 52, 60, 65 shoot axis, 11, 14, 16, 34, 52, 96 short shoot, 15 shrub, 15, 24, 103 Sierpinski triangle, 80, 82, 83, 85 silhouette, 93, 152, 221 Sillion (A), 170 Sims (A), 227, 231, 234, 235, 239 simulation, 36, 39, 40, 48, 53, 125, 126, 128, 135, 136, 150, 183 sine function, 117 skeleton, 52, 223 sketch, 150, 202 Sketchpad, 83 sky, 59 Smith (A), 127, 137, 204 snowflake curve, 31, 64 soil factors, 125 Soler (A), 170 Sommerer (A), 227, 239 SonoMorphis, 245 space filling, 33 spatial division, 15, 150 spatial structure, 164 specification, 68 specification, interactive, 132
I NDEX
293
I NDEX
294
splash erosion, 121, 122 spline interpolation, 51 St¨urzlinger (A), 185 stack, 67 Stam (A), 141 standard deviation, 51 stands, 128 stem branching, 11 Stewart (A), 166 stinging nettle, 147 Strahler analysis, 54 strand, 33, 51, 56 string rewriting, 43, 65 stroke texture, 204 subtree, 67, 80, 82, 90, 91, 99 sunflower, 34, 74, 89, 98, 106, 141, 175, 199 surface illumination, 149 surface model, 156 surface point, 155 Sutherland (A), 83, 137 sycamore maple, 23 sympodial, 14, 47, 85 syntaxa, 25 system architecture, 126, 127 Takahashi (A), 203, 205, 211, 213, 220 taxonomy, floral, 21 taxonomy, vegetation, 21 Telome Theory, 11 temperature amplitudes, 23 terrain, 117, 125, 128, 136, 147, 166 tertiary tree, 28 texture, 92, 94, 98, 99, 101, 139, 268 texture synthesis, 145 thermodynamics, 153 Thinking Machines, 232 throughlight, 161 Tierra, 242 tile, 140, 141 Todd (A), 227–230 Tomlinson (A), 9, 17, 33, 86 topology, 30, 50, 86, 107, 108, 223 tracing ray, 165 Tran (A), 176 transformation, 93, 99 translucency, 157 transluminance, 158 transmission function, 159 transparency, 92, 163, 166 Traxler (A), 84, 85
tree, 15, 27, 122, 151, 164 tree component, 94, 97, 99, 101, 103 tree group, 78 Tree of Knowledge, 227, 243 tree skeleton, 46, 158, 182, 208 tree sketch, 204 tree, degenerated, 29 tree, tertiary, 28 tree, topological, 27 triangulation, 94 tropism, 16, 101, 102 tube, 92, 94 tulip, 106 tundras, 22 Turing (A), 35 turtle metaphor, 66, 67 twig, 184 Ulam (A), 43, 44 Van Eyck (A), 244 Vannimenus (A), 54, 108 variance, 37 variation, 102, 208, 223 vascular, 56 vector, 67 vector quantization, 137, 139 vegetation, 23 vegetation geography, 21 vegetation type, 21 vegetation zone, 22, 23 Verevka (A), 221 Viennot (A), 54, 108, 232 viewer, 153 Viola (A), 227, 243 Virtual Creatures, 227 virtual laboratory, 90 Virtual-Reality System (VR), 269 visibility, 165, 166 visibility conditions, 150 visibility culling, 195 visualization, 23, 128, 150 Vogel (A), 34 volcanism, 120 volume element, 59 volume object, 84 volume texture, 185, 220 von Koch curve, 31, 64, 67 Voronoi diagram, 144 Voronoi region, 130, 131, 141, 144 voxel, 58
water content, 123, 135 water plant, 20 wavelet space, 182 weathering, 120 webbing, 12 Weber (A), 58, 108, 187 weeping willow, 102 Weierstrass-Mandelbrot function, 115 wind, 33, 58, 95, 101, 102 wind resistance, 33 Winkenbach (A), 218 wreath component, 96
I NDEX
Xfrog modeling system, 89, 147, 227, 245 Yessios (A), 204 Yoda (A), 135 Zimmerman (A), 11
295