1 / 39

2IV60 Computer graphics set 7: Basic Geometric Modeling

2IV60 Computer graphics set 7: Basic Geometric Modeling. Jack van Wijk TU/e. Geometric modeling 1. The world is full of all kind of objects: Trees, people, cars, housed, clouds, rocks, waves, pencil sharpeners, fire, mountains, plants, … How can we describe these, such that they are

Download Presentation

2IV60 Computer graphics set 7: Basic Geometric Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2IV60 Computer graphicsset 7: Basic Geometric Modeling Jack van Wijk TU/e

  2. Geometric modeling 1 The world is full of all kind of objects: Trees, people, cars, housed, clouds, rocks, waves, pencil sharpeners, fire, mountains, plants, … How can we describe these, such that they are • easy to enter; • easy to process; • easy to display? Complex problem, HUGE topic!

  3. Geometric modeling 2 Input: • by user • preferably on a high level, customized to application • by scanning objects • laser scanners: points • medical scanners: voxels

  4. Geometric modeling 3 conversion Instructions, specifications User graphics pipeline triangles conversion 3D points, voxels Scanner image

  5. Smooth Curves (2D) Two standard methods: • Parametric: X(t) = (x(t), y(t)) • Implicit: f(x, y) = 0 H&B A-8,9:772-774

  6. Parametric description line 1 Given point P and vector V: X(t) = P + Vt Given two points P en Q: X(t) = P + (Q  P)t , or = P(1t) + Qt Segment: tmin  t  tmax y t Q P x V H&B A-8,9:772-774

  7. Parametric description curve • X(t) = (x(t), y(t)) • Drawing a curve in a simple way, approximate with a polyline: MoveTo(X(0)); for i := 1 to N do LineTo(X(iDt)); H&B A-8,9:772-774

  8. Drawing a curve with OpenGL 1 X(float t):Point; { P[0]= …; P[1]=…; P[2]=…; return P; }; DrawX(); { N = 12; // use symbolic name for the number of segments int i; float dt := (tmax – tmin)/N; glBegin(GL_LINE_STRIP); // GL_LINE_LOOP if closed curve for (i = 0; i <= N; i++) // bounds here: 0 - N glVertex3fv(X(tmin + i*dt)); glEnd(); } H&B 4-5:82-83

  9. Drawing a curve with OpenGL 2 • Using too few points: • jagged appearance; • Using too many points: • slow, • fat appearance (many segments per pixel). H&B 4-5:82-83

  10. Drawing a curve with OpenGL 3 • Decide on #points: • characteristics shape; • size of shape on screen. • beforehand or adjust automatically. H&B 4-5:82-83

  11. Implicit description line • (X  P).N = 0 with N.V = 0 (N:normal vector) • Also: ax+by+c=0 y P N x V H&B A-8,9:772-774

  12. f = 1 f = 0 f =-1 f =-2 Implicit description curve f >0 f <0 H&B A-8,9:772-774

  13. Circle y x r H&B A-8,9:772-774

  14. Curves (3D) Two standard methods: • Parametric: X(t) = (x(t), y(t), z(t)) • Implicit: f(x, y, z) = 0 and g(x, y, z) = 0 Intersection of two surfaces H&B A-8,9:772-774

  15. Circle in 3D z y r x H&B A-8,9:772-774

  16. Surfaces • Polyhedra • Parametric surfaces • Implicit surfaces H&B A-8,9:772-774

  17. Polyhedra • Set of polygons that describe the surface of an object • Often only triangles (hardware!) • Many variations for storage (zie H&B 4-7) • Often additional information per vertex (color, normal, texture, …) H&B 13-1:418

  18. Curved surfaces • Parametric: X(u,v) = (x(u,v), y(u,v), z(u,v)) • Implicit: f(x, y, z) = 0 H&B 13-3:421-422

  19. u constant, v varies v constant, u varies Sphere 1 z y x H&B 13-4:422-424

  20. v u constant, v varies u Sphere 2 z y x v constant, u varies H&B A-8,9:807-808

  21. Sphere 3 z y x H&B 13-4:422-424

  22. Partial Derivatives 1 H&B A10:774

  23. Partial Derivatives 2 H&B A10:774

  24. Normal on surface 1 u T(u) P(u) H&B A-10:774-775

  25. Normal on surface 2 u Tu(u,v) Tv(u,v) P(u,v) v H&B A-10:774-775

  26. Normal on surface 3 u N Tu(u,v) Tv(u,v) P(u,v) v H&B A-10:774-775

  27. Tv N Tu Normal on surface 4 z v y x u H&B A-10:774-775

  28. Normal on surface 5 H&B A-10:774-775

  29. Normal on surface 6 N(x,y,z) (x,y,z) f(x,y,z)=0 H&B A-10:774-775

  30. Normal on surface 7 f >0 f = 0 f <0 H&B A-10:774-775

  31. Normal on surface 8 z N y x H&B A-10:774-775

  32. Quadratic surfaces 1 z y x H&B 13-4:422-424

  33. Quadratic surfaces 2 z c b a x y H&B 13-4:422-424

  34. (x, y, z) y as x as Quadratic surfaces 3 z as y (0, y, z) r y as ra H&B 13-4:422-424

  35. Drawing surfaces with OpenGL 1 • Quadratic surfaces: GLU and GLUT offer some basic functions: • glutSolidSphere(r, nLon, nLat); • glutSolidCone(rbase, rheight, nLon, nLat); • glutSolidTeapot(size); • gluSphere, gluCylinder, • Teapot? • Google: Utah teapot; • Google: Stanford bunny. H&B 13-6:425-431

  36. Drawing surfaces with OpenGL 1 • Quadratic surfaces: GLU and GLUT offer some basic functions: • glutSolidSphere(r, nLon, nLat); • glutSolidCone(rbase, rheight, nLon, nLat); • glutSolidTeapot(size); • gluSphere, gluCylinder, • Alternative: Define your own, custom versions, based on standard way to render parametric surfaces. H&B 13-6:425-431

  37. Drawing surfaces with OpenGL 2 X(float u, v):Point; { P[0]= …; P[1]=…; P[2]=…; return P; }; DrawX(); { NU, NV = 12; // use symbolic names for numbers of points again int i, j; float du := (umax – umin)/NU; float dv := (vmax – vmin)/NV; for (j = 0; j < NV; j++) { glBegin(GL_QUAD_STRIP); for (i = 0; i <= NU; j++) { glVertex3fv(X(umin + i*du, vmin + j*dv)); glVertex3fv(X(umin + i*du, vmin + (j+1)*dv)); } glEnd(); }

  38. Drawing surfaces with OpenGL 3 Many variations possible • using triangle strips; • inserting normals, shading info, texture, ... Selecting the number of facets: • too few: jagged appearance; • too many: slow; • decide beforehand or automatically, based on size on screen and curvature surface. H&B 4-5:82-83

  39. Next… • We now know how to define basic objects. • Stay tuned for splines: arbitrary curves and curved surfaces. • But first: let’s consider illumination and shading.

More Related