CS 354 Procedural Methods
Upcoming SlideShare
Loading in...5
×
 

CS 354 Procedural Methods

on

  • 1,068 views

CS 354 Procedural Methods; April 3, 2012; University of Texas at Austin

CS 354 Procedural Methods; April 3, 2012; University of Texas at Austin

Statistics

Views

Total Views
1,068
Views on SlideShare
1,068
Embed Views
0

Actions

Likes
2
Downloads
46
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CS 354 Procedural Methods CS 354 Procedural Methods Presentation Transcript

  • CS 354Procedural MethodsMark KilgardUniversity of TexasApril 3, 2012
  • CS 354 2 Today’s material  In-class quiz  On interaction lecture  Lecture topic  Project 2  Procedural methods
  • CS 354 3 My Office Hours  Tuesday, before class  Painter (PAI) 5.35  8:45 a.m. to 9:15  Thursday, after class  ACE 6.302  11:00 a.m. to 12  Randy’s office hours  Monday & Wednesday  11 a.m. to 12:00  Painter (PAI) 5.33
  • CS 354 4 Last time, this time  Last lecture, we discussed  Project 2 on Programmable Shaders  Interaction  Event models  Buffering frames  This lecture  Project 2 discussion  Procedural methods for texturing and modeling  Intermediate milestone for Project 2 due  Had to first 2 shader tasks done  Deadline was yesterday  All shaders due Friday, April 6th
  • CS 354 5 On a sheet of paper Daily Quiz • Write your EID, name, and date • Write #1, #2, #3, #4 followed by its answer  Multiple choice: Which one of  True or False: Tearing is a these is not an interactive event display artifact that results processing model? from unsynchronized buffer swap or blit operations. a) Batching b) Polling  Multiple choice: Triple buffering can improve display c) Event-driven update latency but suffers from:  True or False: GLUT a) Requiring additional buffer programs receive events memory through callback functions. b) May render frames that are never actually displayed c) Both a) and b) d) Neither a) nor b)
  • CS 354 6 Project 2  Project is NOW available  PDF + code to use  Requirements  Mostly writing GLSL shaders  Small amount of C/C++ code  Convert height map to normal map  Implement NormalMap::computeNormal method  Intermediate milestone  Yesterday: Monday, April 2nd  Submit snapshots and GLSL code for first two shaders  Complete project  Due Friday, April 6th  All 10 shaders  Embellish for additional credit
  • CS 354 7 Your Mission So Far  You should now have these first two shaders tasks implemented Task 1: apply decal Task 0: roll torus
  • CS 354 8 Procedurally Generating a Torus from a 2D Grid 2D grid over (s,t)∈[0,1] Tessellated torus
  • CS 354 9 GLSL Standard Library Routines You’ll Need for Project 2  texture2D—accesses a 2D texture through a sampler2D and a 2-component texture coordinate set (s,t)  textureCube—access a cube map with a samplerCube and a 3-component texture coordinate set (s,t,r)  normalize—normalizes a vector  cross—computes a cross product of 2 vectors  dot—computes a dot (inner) product of 2 vectors  max—compute the maximum of two values  reflect—compute a reflection vector given an incident vector and a normal vector  vec3—constructor for 3-component vector from scalars  mat3—constructor for 3x3 matrix from column vectors  *—matrix-by-vector or vector-by-matrix multiplication  sin—sine trigonometric function  cos—cosine trigonometric function  pow—raise a number to a power, exponentiation (hint: specular)
  • CS 354 10 Coordinate Spaces for Project 2  Parametric space  2D space [0..1]x[0..1] for 2D patch  Object space  Transform the patch’s parametric space into a 3D space containing a torus  Has modeling transformation from object- to world-space  World space  Environment map is oriented in this space  gluLookAt’s coordinates are in this space  Surface space  (0,0,1) is always surface normal direction  Mapping from object space to surface space varies along torus  Perturbed normal from normal map overrides (0,0,1) geometric normal  Eye space  gluLookAt transforms world space to eye space
  • CS 354 11 Artist-driven Content Generation  Advantages  Human artistic expression!  Human-to-human user interface  Polish  Disadvantages  Human-intensive  Takes time to make lots of it  Involved to change  Data intensive
  • CS 354 12 Image-driven Content Generation  Advantages  As easy as taking pictures  Disadvantages  Very data-intensive  Calibrating cameras & correlating images  Quite involved image panorama  Involved to edit
  • CS 354 13 Procedural Texturing and Modeling  Let programs generate content!  Advantages  Small programs → lots of content  Compact storage requirements  Easy to generate more content  Disadvantages  Hard to control exactly
  • CS 354 14 Iterated Functions  Provides infinite detail Example: Fractal Mandelbrot set
  • CS 354 15 Generating Lots of Content Procedurally
  • CS 354 16 L-Systems  Developed by Aristid Lindenmayer  Theoretical biologist  Hence the L in L-System  Concept  Use a rewriting system to model growth and morphology of biological organisms  Components  Axiom – initial state  Generator – applied recursively  Useful in non-biology contexts too  Geology, man-made objects, etc.
  • CS 354 17 Sierpinski Gasket Rule based: Repeat n times. As n →∞ Area→0 Perimeter →∞ Not a normal geometric object
  • CS 354 18 Apply Sierpinski Gasket Rules Recursively
  • CS 354 19 Snow Flake Curve
  • CS 354 20 Other Axioms & Generators
  • CS 354 21 Tree Generation An axial tree Sample tree generated from branching patterns
  • CS 354 22 Plant Generation Rules
  • CS 354 23 Stochastic L-systems  Probabilistic Stochastic L-systems can generate natural variations
  • CS 354 24 More Plant Generation Rules
  • CS 354 25 Fractal Mountains [Przemyslaw Prusinkiewicz & Mark Hammel, 1993]
  • CS 354 26 Different Fractal Mountains
  • CS 354 27 Domain-specific Procedural Artistry Tools
  • CS 354 28 Trees Really Matter  Commercial product SpeedTree specializes at drawing realistic trees fast
  • CS 354 29 Biological Inspiration  Pseudo-Darwinian animation evolution
  • CS 354 30 Procedural Generation of Buildings  Buildings have rules too  Doors, windows, facades  Consistency of style  Instant Architecture façade derivation…
  • CS 354 31 Procedural Generation of Cities!  Cities are very detailed and complex  CityGen  But follow regular rules – roads, blocks, respecting topography, etc.
  • CS 354 32 Particle Systems
  • CS 354 33 Particle Systems and Their Equations pi = (xi, yi zi) vi = dpi /dt = pi‘ = (dxi /dt, dyi /dt , zi /dt) m vi‘= fi Hard part is defining force vector 33
  • CS 354 34 Force Vector  Independent Particles  Gravity  Wind forces  O(n) calulation  Coupled Particles O(n)  Meshes  Spring-Mass Systems  Coupled Particles O(n2)  Attractive and repulsive forces 34
  • CS 354 35 Solution of Particle Systems float time, delta state[6n], force[3n]; state = initial_state(); for(time = t0; time<final_time, time+=delta) { force = force_function(state, time); state = ode(force, state, time, delta); render(state, time) } 35
  • CS 354 36 Simple Forces  Consider force on particle i fi = fi(pi, vi)  Gravity fi = g gi = (0, -g, 0)  Wind forces  Drag pi(t0), vi(t0) 36
  • CS 354 37 Attraction and Repulsion  Inverse square law f = -krd/|d|3  General case requires O(n2) calculation  In most problems, the drop off is such that not many particles contribute to the forces on any given particle  Sorting problem: is it O(n log n)? E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 37
  • CS 354 38 Noise Textures  Invented by Ken Perlin  Academy Award winning idea  A texturing primitive  Basis for “natural” looking textures and phenomenon  No memory/bandwidth requirements  Computed on the fly; no “source image”  No mapping problem  Naturally 3D so not prone to “gift wrapping” issues  Useful for range of applications and effects
  • CS 354 39 What is Noise?  Band-limited repeatable pseudo-random function  Domain: Rn  Approximate to Gaussian filtered random noise  Implemented as a pseudo- random spline  On regular grid Marble vase generated with Perlin noise
  • CS 354 40 Variations on Noise  Use noise within other functions turbulence
  • CS 354 41 Combining Noise Patterns  Sum noise patterns  As frequency doubles, amplitude halves
  • CS 354 42 Turbulence  Simulate turbulence by generating noise at different octaves (scales)  Average those octaves:
  • CS 354 43 Generating Marble Pattern  Start with sine pattern in solid texture  Then add turbulence  Looks like veins in marble
  • CS 354 44 Variations on Marble  Scale the magnitude of the turbulence displacing the sine pattern
  • CS 354 45 Wood Pattern  Start with cylindrical pattern  Compute sine of distance from center of cylinder  Interpolate between dark and light brown color
  • CS 354 46 Irregular Wood Rings  Now use small amount of turbulence to displace the tree rings in the wood  Much less turbulence than marble case  To preserve the rings
  • CS 354 47 Irregular Wood Grain  Also want turbulence in Z direction but scale it back to preserve the grain less turbulence in z
  • CS 354 48 Shading with Marble and Wood
  • CS 354 49 Other Procedurally Modeled Phenomenon  Smoke  Difficult for an artist to model  Needs to billow and flow around objects
  • CS 354 50 Entire Book on Procedural Techniques David Ebert, Ken Musgrave, Darwyn Peachey, Ken Perlin, Steve Worley
  • CS 354 51 Next Class  Next lecture  Bezier curves  How do we move smoothly and simply with control?  Project 2  Shading and lighting with GLSL  Due Friday, April 6th