310 likes | 514 Views
Curves and Surfaces 2.0. CSE3AGR - Paul Taylor 2009. Basic Surfaces. A surface patch is very similar to the Bezier curves we finished with last week Creating another abstraction!!! S( x,y ) = Fb1, Fb2 So each Point in 3D space exists on 2 curves b1 and b2. 3 Ways to Render.
E N D
Curves and Surfaces 2.0 CSE3AGR - Paul Taylor 2009
Basic Surfaces • A surface patch is very similar to the Bezier curves we finished with last week • Creating another abstraction!!! • S(x,y) = Fb1, Fb2 • So each Point in 3D space exists on 2 curves b1 and b2
3 Ways to Render • Generate a mesh of points on the surface • Use the mesh to render Vertexes and Polygons • Recursive subdivision down to sub-pixel polygons (RenderMan Style) • Render Pixels Directly from the curve function
How to Generate Surface Points • We can recursively subdivide our Bezier Curve • We can use a Control Mesh to define the curves which create our Surface
The left image shows the Control MeshThe right image shows the rendered polygon mesh • http://web.cs.wpi.edu/~matt/courses/cs563/talks/surface/bez_surf.html
Interactive Bezier Patch • http://www.math.psu.edu/dlittle/java/parametricequations/beziersurfaces/index.html
That's enough Surfaces for now! Back to the Curves! Joy!
Rational Bezier Curves http://en.wikipedia.org/wiki/File:Rational_Bezier_curve-conic_sections.svg We are talking about control points with weights These guys can exactly represent conic shapes Downside is complexity
Cubic Bezier-Splines • Dot – to – dot • We did C0 and C1 Continuity with our Bezier Curves • But C2 Continuity alluded us! • Attaining C2 will require us to learn a 3rd Type of Curve..............
NURBSNon-uniform Rational Bezier Spline • Yes Rational = weighted control points • Non Rational would be an URBS (no one uses URBS!!!)
Good things about NURBS • Invariant with Translations and rotations on control points • Being rational they can represent conics • Flexible • Relatively quick (in mathematical terms) to calculate
Knots & Knot Vectors • Where one control point looses its effect, and another new control point starts affecting the curve.
http://www.shodor.org/interactivate/activities/GraphSketcher/?version=skip1&browser=unknownhttp://www.shodor.org/interactivate/activities/GraphSketcher/?version=skip1&browser=unknown NURB Basis Matrix 1/6(-x^3 +3x^2 -3x +1) 1/6(3x^3 -6x^2 +4) 1/6(-3x^3 +3x^2 +3x +1) 1/6(x^3) http://upload.wikimedia.org/math/c/a/0/ca03153859eff1142aa9a1c1b580b716.png
NURBS don’t start at P0!!!! NURBS BEZIER
Knots or Control Points? • When modifying your NURBS there are two important ways • Knots • Good for moving specific parts of your curve • Control points • Good for changing the shape of the curve a bit http://en.wikipedia.org/wiki/File:Spline01.gif
Knot Insertion • It is possible to insert a new knot (generating another control point without disturbing the curve!!! • Knot insertion can be used to allow discontinuity in the curve too!!!
Start and End Values • Generating start and end points • 0,0,0,1,2,3,4,4,4 • Now we have a curve in the form of a Bezier • You must limit the number of repeat knots to the same as the Degree of the curve!
B-Spline Surfaces • Bezier Surface Patches have the same pros/cons as Bezier curves • Simple to implement • Hard to join at C2 continuity
NURBS Surfaces • Again we are basically extruding the Curve functionality over a 3D surface.
Generating Edge Points Again the Extra Knots principle is used to generate start and End Points Note: If you are blending to another Spline you don’t need the End Points. - The overlap in the Control points will connect the curves! • http://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/BSplineSurface.html
The Stupid Teapot • This Teapot consists of 32bi-cubic Bezier Patches, specified by 306 vertices. • 12 Patches define the Body of the pot, 4 for the spout, 8 for the lid, and the last 4 define the bottom.
Stupid Teapot facts! • The Teapot appears in: • Toy Story (The teapot scene) • Monsters Inc • The Simpsons 3D Episode
Given it’s global use the teapot has even been called the 6th Platonic Solid • http://design.osu.edu/carlson/history/images/small/CACMcover.512.jpg
Build your own teapot! • http://www.holmes3d.net/graphics/teapot/teapot.off • Pimping your teapot does NOT make it cool!
Offline Rendering 200 Light Sources Radiosity done with 4.8 million photons. From “Ratatouille” • http://www.seanet.com/~myandper/gallery.htm
http://www.seanet.com/~myandper/gallery.htm Monsters Inc Scene • 500 Million Triangles
GameasutraSlashdot for Game Dev • http://www.gamasutra.com/
References • http://en.wikipedia.org/wiki/NURBS#Technical_specifications • http://en.wikipedia.org/wiki/B-spline
The EndAC/DC Tix Monday 25th May 9am • Coming in Feb 2010