Before we begin Paper summaries for today? Procedural Modeling Announcement Announcement We’re looking for a few good programmers! Career Fair ACM Programming Contest Wednesday, September 27th Teams up to 3 people Local Tryouts: Sept 22nd at 5pm (ICL4) 10am -- 4pm Gordon Field House Free food will be served Contact : Paul Tymann (ptt@cs.rit.edu) By Sept 18th (if interested) http://www.cs.rit.edu/~icpc http://www.rit.edu/co-op/careers Logistics Computer Graphics as Virtual Photography Reminder real camera photo Photographic Photography: scene (captures processing print Project Proposals due next Monday light) processing Raytracer Checkpoint 1 due Wednesday. camera Computer 3D synthetic tone model Graphics: models image reproduction (focuses simulated lighting) 1
Plan for today Approaches to modeling in CG 1st half How does one describe reality? Procedural Models Empirical -- Use measured data Fixed model 2nd Half Procedural Modeling Intro to Camera Models Physical simulation Heuristic Questions? Procedural Models Proceduralism in Computer Graphics Fixed models/primitives not robust enough Several Heuristic methods Quest for extensibility and programmability Fractals Use a function or procedure to define the Fractal terrains surface or structure of an object. L-Systems Procedural Methods Volumetric Models Shading Hypertexture Modeling Animation Why Fractals? Fractals A language of form for shapes and Procedural way to add complexity to a scene phenomena common in Nature Elements of nature posses fractal properties. “Geometrical complex object, the Used to model nature complexity of which arises through the Terrain repetition of form over some range of Clouds scale”. Coastlines Statistical self-similarity at all scales Trees / Landscaping 2
Fractals Fractals – The Mandelbrot Set Foley/VanDam/Feiner/Hughes Repetition of some underlying shape (basis function) at different scales Kock Snowflake Applet http://www.arcytech.org/java/fractals/koch.shtml Fractals - Mandelbrot Set Fractals Fractals - Mandelbrot Set Plot of a recursive mathematical function in the complex plane http://www.math.utah.edu/~pa/math/man Z n = Z n-1 2 + C delbrot/mandelbrot.html For each complex number, the function will: Fractint Move quickly to infinity (outside of the set) Move slowly to infinity (on the border of the set) Remain near the origin (inside the set) Create image by coloring based on how many iterations it takes to indicate divergence towards infinity. Function is self-similar as we zoom into different areas of the plot on the complex plane. Fractal Terrain Fractal Terrain Fractals -- a simple example Fractals - a simple example Foley/VanDam/Feiner/Hughes [Fournier82] 3
Fractal Terrain Fractal Terrain Paul Bourke Fractals - extend to 2d Foley/VanDam/Feiner/Hughes Fractal Terrain Fractal Terrain Fractal Terrain Fractal Terrain -Vol Libre Ridge my favorite fractal landscape [F. Kenton Musgrave] Foley/VanDam/Feiner/Hughes 4
Fractals Fractal Modeling Fractal comes from fractal dimension Fractal modeling Like Mandelbrot set, can zoom infinitely a.b Render at resolution that is most appropriate Instant anti-aliasing. a = Euclidean dimension b = fraction of filling up next dimension Can model a whole planet procedurally Fractal Modeling Fractal Modeling http://www.pandromeda.com Explore fractal worlds on-line F.K. Musgrave Mojo World [Musgrave] Grammar Based Systems Grammar Based Systems - Example Building of models based on formal language grammars Characters: {A, B,[, ]} Iterations: Method for creating fractals Rules: A -> AA 0: B B->A[B]AA[B] Grammar consists of: 1: A[B]AA[B] Start word B Set of characters 2: AA[A[B]AA[B]]AAAA[A[B]AA[B]] Productions rules Starting word 5
Grammar Based Systems Grammar Based Systems But how does this help us create models? Assign a drawing action to each character: L-Systems L-System (Lindenmeyer) used to create tree-like F=F[+F]F[-F]F structures: Applet F move forward and draw http://www-sfb288.math.tu- f move forward and do not draw berlin.de/vgp/javaview/vgp/tutor/l + increase angle with angle increment system/PaLSystem.html - decrease angle by angle increment [ push state (i.e. branch) ] pop state (i.e finish branch) L-System Ferns L-Systems - Trees Foley/VanDam/Feiner/Hughes L-System Trees Grammar-Based Systems For more info: Prusinkiewicz, Lindenmayer systems, fractals, and plants Prusinkiewicz and Lindenmeyer, The Algoritmic Beauty of Plants Questions? Foley/VanDam/Feiner/Hughes 6
Volumetric Models Hypertexture [Perlin89] Not all objects are “solid” models Extension of procedural textures Between surface + texture, i.e., spatial water filling/volumetric fire Objects modeled as distribution of density clouds hard region - objects completely solid Rain soft region - object shape is malleable using a Objects exists in a volume toolkit of shaping functions and CSG style operators to combine shapes Hypertexture Hypertexture Hypertexture Toolbox of base DMFs D(x) - Object Density Function over R 3 Bias – up / down control D ( x ) for all points x in 3D space [0,1] Gain – controls gradiant Density of 3D shape Noise (controlled randomness) D ( x ) = 0 for all points outside the surface Won Ken an Academy Award! D ( x ) = 1 for hard region of the object Turbulence 0 < D ( x ) < 1 for soft region of the object Sum of noise at variety of frequencies (fuzzy region) Mathematical functions Hypertexture Noise Examples Hypertexture Example - Fire Red = low density Yellow = high Noisy 2* frequency, 1/2 amplitude [Perlin89] D ( x ) = sphere(x ( 1 + turbulence ( x ))) [Perlin89] High Amplitude, Noisy Sphere Fractal, noise - Σ many f’s 7
Hypertexture Example - Fur/Hair Animated Examples Here noise displaces x before projecting; http://www.kenmusgrave.com/animations.html uses variable to control curliness [Perlin89] Tribble Procedural Models Summary Use of a function to define objects Types Fractals/L-Systems Volumetric Models Hypertexture Good for Natural objects Landscapes Non-solid type objects Break. 8
Recommend
More recommend