School of Computer Science and Software Engineering Monash University Bachelor of Software Engineering Honours Project Research Proposal – Semester 1, 2006 Generating Sinewy Networks using Environment-Sensitive Automata Anthony Gaarenstroom 18472869 Supervisor: Alan Dorin Contents 1. INTRODUCTION......................................................................................................................... 3 1.1. AIMS AND SIGNIFICANCE ....................................................................................................... 3 2. RESEARCH CONTEXT.............................................................................................................. 3 3. RESEARCH PLAN AND METHODS........................................................................................ 6 3.1. RESEARCH METHODS .............................................................................................................6 3.2. CURRENT PROJECT STATUS....................................................................................................7 3.3. PROPOSED THESIS CHAPTER HEADINGS .................................................................................9 3.4. TIMETABLE ............................................................................................................................9 3.5. SPECIAL FACILITIES REQUIRED .............................................................................................. 9 4. DELIVERABLES ....................................................................................................................... 10 5. CONTRIBUTION OF THE RESEARCH ................................................................................ 10 6. REFERENCES............................................................................................................................11 2 1. Introduction 1.1. Aims and Significance This project aims to develop a procedure that will generate a 3D computer graphics model of a sinewy network, using a range of environmental factors. (A sinewy network is some sort of structure with an organic feel, for example vines growing up the side of a house, or the tendons in a human arm.) Previously growth has been simulated by many different methods, such as LSystems and Diffusion-Limited Aggregation [9]. These methods have had a large amount of success in creating aesthetically pleasing computer graphics models of various forms of plant life. However, the models created using these techniques are often made with little regard to the environmental factors that would normally govern the growth of a real plant system. Elements such as inhibitors and enhancers, static objects, and the structure of the plant itself should to be taken into account to increase the realism of the final model, and while this has been done well in some cases, there is still room for improvement. This project will create an artificial environment using a Voxel Space Automata [3]. By using this automaton, static objects can be identified in the same object space as the growth system. A range of parameters will also allow the user to determine various characteristics for the growth of the system. The final program will produce a 3D model of both the environment and the growth system, which may be extended to use other software in order to produce animations of sinewy networks. 2. Research Context Research into the area of creating organic structures for computer graphics has been going on for more than ten years. This project will be built using a number of established techniques list below. (While this project will be able to create sinewy networks of any type, most of the research into this area has been focused on plant growth, so the research examined below will focus on this area.) A method for generating plants using computer graphics was first introduced by Lindenmayer [11, 12] in 1968. The method he introduced was called the Lindenmayer System, or L-System for short. An L-System consists of a single initiator, which represents the original structure of the L-System, and one or more generators. The final structure is built up by repeatedly applying the generator rules to the existing structure. At every iteration the structure is examined, and if an element is found that fits the requirements for a generator, it will be replaced by the output of that generator. (See Figure 2-1) L-Systems are usually represented as a series of symbols, which can be interpreted by a path-drawing tool such as a turtle. [10] 3 Figure 2–1 A sample L-System, showing the initiator, a single generator, and a sequence of two iterations. Because L-Systems use a bottom-up approach to create structures, they are very useful for modeling morphogenesis. This project will be using context-sensitive L-Systems to create the final model. (A context-sensitive will only replace some of the segments, depending on the properties of each segment.) Each segment of the LSystem will be tiled into the Voxel Space Automata as a static object once it has been created.) While the structure created by Lindenmayer was widely accepted by programmers as a useful technique for creating plant models, the wider problem of creating models of realistic plant life for computer graphics still remained. (While the L-System provided an excellent way of modeling trees, it was based only on its own set of internal rules, which do not take any external factors into account.) This problem was addressed by Arvo and Kirk [1], who introduced the idea of an Environment-Sensitive Automata, or ESA for short. The ESA acts on the L-System as a real environment would act on a real plant; by preventing intersection with static objects, such as fences or a house. By limiting the directions that the L-System could allow plant segment growth, Arvo and Kirk created simulations that showed vines growing in a realistic manner around various static objects. However, the shortcoming of the methods introduced by Arvo and Kirk was the speed at which the simulation 4 runs. By using ray-tracing techniques, the amount of intersection tests required by the simulation is extremely large, resulting in a very slow simulation. A faster approach was given by Greene [3]. Greene suggested that instead of using ray-tracing techniques, a Voxel Space Automata would be better suited to modeling a plant system on a computer. His Voxel Space Automata represents a grid of Voxels, (3-Dimensional cubes) which can store information about what is in their current location. By using a 3-Dimensional array of Voxels, the contents of any point in the environment could be found at any time, allowing intersection tests to be completed a lot faster than by ray-tracing. This project will also be implementing a Voxel Space Automata. Furthermore, Greene introduced the idea of heliotropism for computer generated plants. (Heliotropism: Growth or orientation of a plant toward the light of the sun.) He divided the total light absorbed by the plants into two categories; direct sunlight, and ambient light received from the sky. By using a simple ray-tracing algorithm, the amount of each type of light was calculated for every voxel in the automata, which allowed for faster calculations during the simulation. This means that areas in the shade can be made less able to facilitate growth as areas in direct sunlight. While this method has its advantages, it still assumes that the sun is the only light source that should allow plant growth. This project will attempt to create fully customizable inhibitors and enhancers, which may allow a simulation which not only takes into account the affects of the sun, but other smaller lights as well. (For example ultra-violet lights in a greenhouse.) This is useful because it will allow models to be created which will grow towards certain points while avoiding others. 5 3. Research Plan and Methods 3.1. Research Methods The project will be developed using existing techniques for L-Systems and Voxel Space Automata. Rules for the L-System will be created to simulate the growth of a typical vine system, as this will allow the growth system to simulate growth closer to the static objects in the environment. In the final program, the user will have the option to customize the inhibitors and enhancers. (An inhibitor will discourage growth around it, while an enhancer will encourage growth closer to it.) The inhibitors and enhancers will each have their own particular properties, which means that they will not only affect the direction that the system grows in, but also the final appearance of the growth system near them. The appearance of the system will be determined using a texture mixing process, whereby a number of different textures will be blended depending on the surrounding enhancers and inhibitors to give the final texture for a particular segment. (See Figure 3-1) Figure 3–1 An example of how the properties of an enhancer or inhibitor will affect the appearance of the growth system. The project will be written in C using the OpenGL libraries. A user interface library will also be used, although one has not yet been chosen. Any series of static objects used will be created using the 3DS studio. Two final software products will be produced. The first one will read in a 3DS model, and allow the user to place and modify inhibitors and enhancers. The user can also select the starting points for the growth system. 6 The second program will use this information to simulate the growth of the system. Firstly the environment will been configured by tiling the 3DS model, meaning that voxels will be given a specific value wherever some part of the 3DS model exists in the final environment. This value will be dependent on the object occupying the voxel. (A branch segment will have a different value than a static object.) This will be done prior to simulation, so that the second program will know exactly where the static objects are without having to perform tests against the 3DS model itself. After this has been done the growth system will be generated using the initialized voxel array to produce a final visualization of the system and an accompanying data file. The resulting data file may be used for rendering, and will support the Pov-Ray renderer. 3.2. Current Project Status An initial version of the growth system which takes into account the sources has already been developed. This system has both inhibitors and enhancers, which for the purpose of this section may both be referred to as sources. Each source has a position and an intensity value. The vector determines the position of the source in 3-dimensional space. The intensity determines how strong the source is. (A negative intensity denotes an inhibitor, while a positive intensity denotes an enhancer.) In further implementations, the source will also have other properties, such as an advanced texture that it may apply to segments growing near it. The direction of the growth of a particular segment of the growth system is determined by the vector final: Figure 3–2 Formulae for calculating overall source effect on growth segment. k diri intensityi disti The number of sources. The direction from the segment to the ith source, expressed as a unit vector. The intensity of the ith source, expressed as a scalar. The distance from the segment to the ith source, expressed as a scalar. The vector final is used to select the general direction of the segment. A random element is also factored in to ensure that the system grows in a stochastic 7 fashion. This means that the structure of the growth system may look random, but it always grows in the general direction of a source with a strong positive intensity. Figure 3–3 Path of a full growth system given both enhancers (blue) and inhibitors (red). The green sphere indicates the starting point of the growth system. In Figure 3-3, the enhancer has an intensity of +15, while the inhibitors have an intensity of -2 each. If the total of the inhibitors was larger than the total of the enhancers, (i.e. If each inhibitor had an intensity of -5.) then the growth system would have grown downwards continuously, never going around to reach the enhancer. Even if the inhibitor and enhancer totals balanced each other, the closer proximity of the inhibitors would ensure that the growth system would continuously grow away from them, in a downward direction. 8 3.3. Proposed Thesis Chapter Headings 1. Introduction 1.1 Purpose of Research 1.2 Objectives of Research 2. Literature Review 2.1 Analysis of Previous Techniques 3. Methods 3.1 L-Systems 3.2 Inhibitors and Enhancers 3.3 Voxel Space Automata 3.4 Texture Mixing 4. Results and Discussion 4.1 Output of Simulation 4.2 Analysis of Results 4.3 Comparison to Previous Techniques 5. Conclusion and Future Work 6. References 7. Appendix A – User Manual 8. Appendix B – Image Gallery 3.4. Timetable Date 27 March 24 April 2 May 8 May 23 May 5 Jun 20 Jun 27 Jun 31 Jul 8 Aug 22 Aug 23 Aug 4 Sep 12 Sep 9 Oct 10 Oct 16 Oct 23-27 Oct 30 Oct Week No. 5/13 8/13 9/13 10/13 12/13 1/6 3/6 4/6 3/13 4/13 6/13 6/13 8/13 9/13 12/13 12/13 13/13 14 15 Activity 2D Simulator Completed (Without Environmental Factors) Research Proposal & Priorities Form Finalized 2D Simulator Completed (With Environmental Factors) Begin Literature Review Submit Draft of Literature Review to Supervisor Literature Review Finalized User Interface Completed Environmental Reader Completed Begin Writing Thesis 3D Simulator Completed (Without Advanced Texturing) 3D Simulator Completed (With Advanced Texturing) Begin Construction of Web Site All Code Fully Commented & Finalized Submit First Draft of Thesis to Supervisor Web Site Completed Submit Second Draft of Thesis to Supervisor Prepare for Presentation Deliver Presentation Submit Thesis to Supervisor 3.5. Special Facilities Required The facilities offered to Honours students at Monash University, Clayton should be sufficient to complete this project. 9 4. Deliverables EnviroInit – A program which allows the user to initialize the environment before simulation begins. EnviroSim – A program which simulates the final growth system. 5. Contribution of the Research This project will be used as a graphical tool for the generation of sinewy networks. It may be used to create sinewy growths for a variety of different digital media, such as computerized images, animations, and computer games. It will most likely be used where an original object, such as a house or a fence, is required to have some form of foliage covering it. Although this tool will be able to function as a stand-alone application, it is more likely that users will feed their own environmental data into it and use the generated Pov-Ray rendering file as opposed to the visual image produced by the program. 10 6. References [1] Arvo, J., Kirk, D. (1988). Modeling Plants with Environment-Sensitive Automata. In Ausgraph 88 Proceedings, Melbourne, Vic., Australia., July 4-8 1988 (pp. 27-33). Parkville, Vic., Australia: Australasian Comput. Graphics Assoc [2] Borro, D., García-Alonso, A., Matey, L. (2004). Approximation of Optimal Voxel Size for Collision Detection in Maintainability Simulations within Massive Virtual Environments. Computer Graphics Forum, 23(1), 13-23 [3] Greene, N. (1989). Voxel Space Automata: Modeling with stochastic growth processes in voxel space. In Proceedings of SIGGRAPH ’89, Boston, MA, USA, July 31-August 4, 1989 (pp. 175-184). New York, NY, USA: ACM SIGGRAPH [4] Hongwen Zhang, Wyvill, B. (1997) Behavioural Simulation in Voxel Space. In Proceedings. Computer Animation ’97 (Cat. No.97TB100120), Geneva, Switzerland, June 5-6 1997 (pp. 119-126). Los Alamitos, CA, USA: IEEE Coput. Soc. Press [5] Jacob, C. (1996). Evolution Programs Evolved. In Parallel Problem Solving from Nature – PPSN IV. International Conference on Evolutionary Computation. 5th Conference on Parallel Problem Solving from Nature, Berlin, Germany, Sept. 22-26 1996 (pp. 42-51). Berlin, Germany: Springer-Verlag [6] Jones, M.W., Satherley, R.A. (2001) Shape Representation Using Space Filled Sub-Voxel Distance Fields. In Proceedings International Conference on Shape Modeling and Applications, Genova, Italy, May 7-11 2001 (pp. 316-325). Los Alamitos, CA, USA: IEEE Computer Society [7] Lawlor, O.S., Kalé, L.V. (2002). A Voxel-Based Parallel Collision Detection Algorithm. In Conference Proceedings of the 2002 International Conference on SUPERCOMPUTING, New York, NY, USA, June, 22-26, 2002 (pp. 285-293). New York, NY, USA: ACM [8] Mech, R., Prusinkiewicz P. (1996). Visual Models of Plants Interacting with Their Environment. In Proceedings of 23rd International Conference on Computer Graphics and Interactive Techniques (SIGGRAPH'96), New Orleans, LA, USA, Aug. 4-9 1996 (pp. 397410). New York, NY, USA: ACM [9] Prusinkiewicz, P., Hammel, M., Mech, R. (1997). Visual Models of Morphogenesis. Retrieved 17 March 2006, from http://algorithmicbotany.org/vmm-deluxe/TitlePage.html [10] Prusinkiewicz, P., Lindenmayer, A. (1990). The Algorithmic Beauty Of Plants. New York, NY, USA: Springer-Verlag [11] Prusinkiewicz, P., Lindenmayer, A., Hanan, J. (1988). Developmental Models of Herbaceous Plants for Computer Imagery Purposes. In SIGGRAPH 88 Conference, Atlanta, GA, USA, Aug. 1-5 1988 (pp. 141-150). USA: ACM;IEEE [12] Sakaguchi, T., Ohya, J., (1999). Modeling and Animation of Botanical Trees for Interactive Virtual Environments. In VRST’99. Proceedings of the ACM Symposium on Virtual Reality Software and Technology, London, UK, Dec. 20-22 1999 (pp. 139-146). New York, NY, USA: ACM 11
© Copyright 2026 Paperzz