CS 354 Procedural Methods

Post on 07-Sep-2014

10 views 2 download

Tags:

description

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

Transcript of CS 354 Procedural Methods

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