Code: 2-MPG-211/15

Continuous assessment: independent work

Objective: To introduce the philosophy of procedural modelling and present various graphical methods from the perspective of procedural modelling.

Course syllabus:

Topics for independent projects:

  • Program several quasi-random number generators (Halton, Van der Corput, Hammersley) and visually compare them (using 2D or 3D points with random coordinates) with the internal generator and another programmed LCG.
  • Render a 2D texture created using turbulence and Perlin noise. Use, for example, a characteristic function for marble or wood.
  • Create an image using diffusion-limited aggregation (DLA). Use fractal Brownian motion (fBM) calculated by summing noise octaves.
  • Render patterns using the Gray-Scott reaction-diffusion model in 2D with at least two morphogens.
  • Render a fern or another plant using stochastic IFS. Use matrices of basic transformations (rotation, translation, scaling, shearing) and add a random change (number) to one of them. Multiply them and use them as an affine transformation for generating IFS.
  • Create 3D terrain using the diamond-square method (midpoint displacement) and a predefined function or height map. Also use a modulation function to influence the height generated randomly.
  • Program a 1D cellular k-state automaton or a two-state 2D automaton. A simpler 1D two-state (Wolfram) automaton is worth half the points.

Literature:

EN David Ebert et al: Texturing and Modeling A Procedural Approach (3rd Edition), Morgan Kaufmann 2002

Useful links:

EN Testing Random Numbers Generators (pdf) - a short article about several random number generators and their testing
EN Generating Perlin Noise - page of software developer Andreas Jönsson
EN Understanding Perlin Noise - explanation of the idea of creating textures using Perlin noise
EN Computer Graphics for the 'rest of us' - site for everyone who wants to learn basic computer graphics programming techniques
EN Texture Generation using Random Noise - Lode's computer graphics tutorial
CZ Perlin Noise Function and Its Application - short article about Perlin noise from a fractals series
EN Reaction-Diffusion Tutorial - guide to creating a simulation of two morphogens behaviour using the Gray-Scott model
EN Inigo Quilez: articles - articles by a populariser of computer graphics who enjoys creating beautiful images and sharing them online
CZ Fractals on root.cz - series about fractals from the perspective of a former computer graphics teacher
CZ Fractals - articles about fractals with a gallery of fractals by Pavel Tišnovský
CZ Fractal geometries - website dealing with the basics of fractal geometry
CZ PlaNET Alife - website of the Artificial Life group, dealing with theoretical questions of artificial life and its application possibilities
EN Elementary Cellular Automaton - basics of 1D cellular automata from Wolfram
EN MCell - discover the world of CA with an online applet by Mirek Wojtowicz
EN Cellular Automata - online book The Nature of Code by Daniel Shiffman for programmers
EN Cellular Automata - non(philosophical) reflections on cellular automata from Stanford
EN Exploring Emergence - principles of CA operation illustrated by examples
EN Genetic Algorithms - a small tutorial on genetic algorithms with interactive Java applets
EN Genetic Algorithms and Evolutionary Computation - online article by Adam Marczyk
EN Genetic Cars, Genetic walkers - two interesting HTML5 applets
EN Particle Systems - a very brief introduction to particle systems by Allen Martin
EN Build New Games: Particle Systems From the Ground Up - site about particle systems aimed at game developers
EN Intro to Particle Systems in Computer Graphics - interesting video explaining basic concepts of particle systems

Downloadable materials are accessible only after logging in! (The login name is modelovanie, the password will be provided upon request)

{show condition="modelovanie"}

Collected downloadable materials:

EN David Ebert et al: Texturing and Modeling A Procedural Approach (3rd Edition), Morgan Kaufmann 2002
CZ P. Zouhar: Random Number Generator, Master's thesis, FEKT VUT, Brno 2010
EN Quasi-random number generation
EN D. Biebighauser Testing Random Numbers Generators, University of Minnesota 2000
EN P. Prusinkiewicz, M. Hammel: A Fractal Model of Mountains with Rivers, Proceedings of Graphics Interface, Toronto 1993
CZ R. Jakubíková: Perlin Noise Functions for Texture Generation, Bachelor's thesis, FEKT VUT, Brno 2012
EN G. Turk: Texturing Surfaces Using Reaction-Diffusion, Dissertation, University of North Carolina, Chapel Hill 1994
EN The Reaction-Diffusion Equations
EN Generating Textures on Arbitrary Surfaces Using Reaction-Diffusion
CZ M. Kuderjavý: Procedural Generation and Real-Time Rendering of Terrain, Bachelor's thesis, FI MU, Brno 2010
CZ R. Wiesner: Use and Misuse of Fractals, Master's thesis, FP MU, Brno 2006
EN C. Guoning, et al. Interactive Procedural Street Modeling ACM Transactions on Graphics, vol. 27, no. 3, 2008
CZ Cellular Automata (Knowledge Technologies III - study support material)
CZ M. Tomaštík: Cellular Automata (Game of Life), Bachelor's thesis, FSI VUT, Brno 2010
CZ T. Rojík: Programmable Cellular Automaton in Java, Bachelor's thesis, FAV, University of West Bohemia, Pilsen, 2013
CZ Simulation of Cellular Automata using MCell (presentation slides)
CZ L. Hasalová: Knapsack Problem and Genetic Algorithms, Bachelor's thesis, Faculty of Science, Palacký University Olomouc, 2014
CZ O. Škrabal: Genetic Algorithms and Scheduling, Master's thesis, FSI VUT, Brno 2010
CZ Kvasnička, Pospíchal, Tiňo: Evolutionary Algorithms, FCHPT STU, Bratislava, 2000
CZ J. Bárta: Particle Systems, Semester project, FAV, University of West Bohemia, Pilsen, 2005
EN W. Reeves: Particle Systems - A Technique for Modeling a Class of Fuzzy Objects, Computer Graphics, 1983

{/show condition}