cs 354 procedural methods
DESCRIPTION
CS 354 Procedural Methods; April 3, 2012; University of Texas at AustinTRANSCRIPT
CS 354Procedural Methods
Mark 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
Daily Quiz1. Multiple choice: Which one of
these is not an interactive event processing model?
a) Batching
b) Polling
c) Event-driven
2. True or False: GLUT programs receive events through callback functions.
3. True or False: Tearing is a display artifact that results from unsynchronized buffer swap or blit operations.
4. Multiple choice: Triple buffering can improve display update latency but suffers from:
a) Requiring additional buffer memory
b) May render frames that are never actually displayed
c) Both a) and b)
d) Neither a) nor b)
On a sheet of paper• Write your EID, name, and date• Write #1, #2, #3, #4 followed by its answer
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 0: roll torus
Task 1: apply decal
CS 354 8
Procedurally Generating aTorus 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-drivenContent 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-drivenContent Generation
Advantages As easy as taking pictures
Disadvantages Very data-intensive Calibrating cameras & correlating images
Quite involved Involved to edit image panorama
CS 354 13
ProceduralTexturing 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 ContentProcedurally
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 Architecturefaç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
33
Particle Systems andTheir Equations
pi = (xi, yi zi)
vi = dpi /dt = pi‘ = (dxi /dt, dyi /dt , zi /dt)
m vi‘= fi
Hard part is defining force vector
CS 354 34
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
CS 354 35
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)}
CS 354 36
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)
CS 354 37
37E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012
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)?
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 vasegenerated 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 withMarble 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 onProcedural 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