CS184 Section 5
Bezier Curves and De Casteljau's Algorithm

Brandon Wang
September 26, 2012
Material adapted from Fu-Chung Huang.

Today

HW2 deadline moved to Thurs!

Curves

In the end, you'll be sending triangles to your GPU to render, so why represent things in this weird format?

Curves?

Smooth curves. Triangles are jagged, etc. Think of it as a continuous representation of a curve, whereas triangles are a discrete sample. (Demo later)

Mario Kart

Nice Curves

Geri's Game

http://youtu.be/1m7dcbIKvlw

De Casteljau's Algorithm

Calculate f(u) at a specific point u. (Easier to think between 0 and 1)

Split each line at u.

De Casteljau Animation

De Casteljau Animation

Finite Subdivision

Can't calculate f(u) for all u. That's silly.

Compute a few points, then draw lines between them.

HW4 demo

Pseudocode

Dynamic Programming

for i = 0:power
  p[i][power] = control_points[i]
for power = degree-1:0
  for i = 0:power
    p[i][power] = (1-u) * p[i][power+1] + u*p[i+1][power+1]
return p[0][0]
    

Worksheet time