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 1)Generate a mesh of points on the surface -Use the mesh to render Vertexes and Polygons 2)Recursive subdivision down to sub-pixel polygons (RenderMan Style) 3)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 Mesh The right image shows the rendered polygon mesh alks/surface/bez_surf.html alks/surface/bez_surf.html
Interactive Bezier Patch etricequations/beziersurfaces/index.html etricequations/beziersurfaces/index.html
That's enough Surfaces for now! Back to the Curves! Joy!
Rational Bezier Curves :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 C 0 and C 1 Continuity with our Bezier Curves – But C 2 Continuity alluded us! – Attaining C 2 will require us to learn a 3 rd Type of Curve
NURBS Non-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.
er=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) 0/ca eff1142aa9a1c1b580b71 6.png
NURBS don’t start at P0!!!! NURBSBEZIER
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 rg/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 C 2 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!
99.png
The Stupid Teapot This Teapot consists of 32 bi-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 6 th Platonic Solid 2.jpg 2.jpg
Build your own teapot! apot.off apot.off Pimping your teapot does NOT make it cool!
Offline Rendering eanet.com/~ myandper/gal lery.htm 200 Light Sources Radiosity done with 4.8 million photons. From “Ratatouille”
Monsters Inc Scene 500 Million Triangles eanet.com/~ myandper/gal lery.htm
Gameasutra Slashdot for Game Dev
References _specifications _specifications
The End AC/DC Tix Monday 25 th May 9am Coming in Feb 2010