Geometric Modeling CSCE 645/VIZA 675 Dr. Scott Schaefer 1 Course Information Instructor Dr. Scott Schaefer HRBB 527B Office Hours: MW 10:15am – 11:15am (or by appointment) Website: http://courses.cs.tamu.edu/schaefer/645_Fall2010 2/55 Geometric Modeling Surface representations Industrial design 3/55 Geometric Modeling Surface representations Industrial design Movies and animation 4/55 Geometric Modeling Surface representations Industrial design Movies and animation Surface reconstruction/Visualization 5/55 Topics Covered Polynomial curves and surfaces Lagrange interpolation Bezier/B-spline/Catmull-Rom curves Tensor Product Surfaces Triangular Patches Coons/Gregory Patches Differential Geometry Subdivision curves and surfaces Boundary representations Surface Simplification Solid Modeling Free-Form Deformations Barycentric Coordinates 6/55 What you’re expected to know Programming Experience Assignments in C/C++ Simple Mathematics Graphics is mathematics made visible 7/55 How much math? General geometry/linear algebra Matrices Multiplication, inversion, determinant, eigenvalues/vectors Vectors Dot product, cross product, linear independence Proofs Induction 8/55 Required Textbook 9/55 Grading 50% Homework 50% Class Project No exams! 10/55 Class Project Topic: your choice Integrate with research Originality Reports Proposal: 9/15 Update #1: 10/13 Update #2: 11/10 Final report/presentation: 12/13 11/55 Class Project Grading 10% Originality 20% Reports (5% each) 5% Final Oral Presentation 65% Quality of Work http://courses.cs.tamu.edu/schaefer/645_Fall2010/assignments/project.html 12/55 Questions? 13/55 Vectors v 14/55 Vectors u v v u ? 15/55 Vectors vu u v 16/55 Vectors vu u v u v v u ? 17/55 Vectors vu u v u v u v 18/55 Vectors vu u v u v u v v cv ? 19/55 Vectors vu u v u v u cv v v 20/55 Points q p pq ? 21/55 Points q p p q undefined 22/55 Points q p pq ? 2 23/55 Points p pq 2 q 24/55 Points 1 p=p 0 p=0 (vector) c p=undefined where c 0,1 p – q = v (vector) 25/55 Points n c k 0 k pk 26/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n 27/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n c k 0 k 0 28/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n n ck 0 ck pk ck p0 ck pk p0 k 0 k 0 k 0 k 0 n n 29/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n c k 0 k n n k 0 k 0 0 ck pk ck pk p0 vector 30/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n k 0 k 0 k 0 0 ck pk ck pk p0 vector k 1 n c n k c k 0 n 31/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n c k 0 k n n k 0 k 0 0 ck pk ck pk p0 vector n n ck 1 ck pk ck p0 ck pk p0 k 0 k 0 k 0 k 0 n n 32/55 Points n n ck pk ck p0 ck pk p0 k 0 k 0 k 0 n n c k 0 k n c k 0 k n n k 0 k 0 0 ck pk ck pk p0 vector n n k 0 k 0 1 ck pk p0 ck pk p0 point 33/55 Barycentric Coordinates p1 p2 p3 34/55 Barycentric Coordinates v k pk k p1 v p2 p3 35/55 Barycentric Coordinates v k pk k p1 k 1 k v p2 p3 36/55 Barycentric Coordinates v k pk k p1 k 1 k v p1 p2 p3 k 0 v p2 p3 37/55 Barycentric Coordinates v k pk k p1 k 1 k v p1 p2 p3 k 0 v pk pk 1 j k ,k 1 0 v p2 p3 38/55 Barycentric Coordinates v k pk k p1 k 1 k p1 1 v p2 p2 1 1 p3 v 2 1 1 3 p3 39/55 Barycentric Coordinates v k pk p1 k k 1 k v p2 1 p1 2 1 3 p3 p2 1 p3 1 1 v 1 40/55 Convex Sets v k pk k If k 0, then the k form a convex combination 41/55 Convex Hulls Smallest convex set containing all the pk 42/55 Convex Hulls Smallest convex set containing all the pk 43/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 44/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 45/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 46/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 47/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 48/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 49/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 50/55 Convex Hulls If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 51/55 Convex Hulls v k 0 v k pk ConvexHull pk k If pi and pj lie within the convex hull, then the line pipj is also contained within the convex hull 52/55 Affine Transformations Preserve barycentric combinations (v ) k ( pk ) k Examples: translation, rotation, uniform scaling, non-uniform scaling, shear 53/55 Other Transformations Conformal Preserve angles under transformation Examples: translation, rotation, uniform scaling Rigid Preserve angles and length under transformation Examples: translation, rotation 54/55 Vector Spaces A set of vectors vk are independent if k , there does not exist j s.t. vk j v j j k The span of a set of vectors vk is {v | v k vk } k A basis of a vector space is a set of independent vectors vk such that v , v span (vk ) 55/55