Allongements osseux progressifs des membres inférieurs par ...
Computer Graphics: Modeling -...
Transcript of Computer Graphics: Modeling -...
![Page 1: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/1.jpg)
Computer Graphics:Computer Graphics:ModelingModeling
Franck HétroyFranck Hétroy
[email protected]://evasion.imag.fr/Membres/Franck.Hetroy/
![Page 2: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/2.jpg)
Context We want to represent 3D objects
− Real objects− Virtual/created objects
Several ways for virtual object creation− Interactive by graphists− Automatic from real data
3D scanner, medical angiography, ...− Procedural (on the fly)
Complex scenes, terrain, ... Different uses
− Display, animation, physical simulation, ...
![Page 3: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/3.jpg)
Course overview
Volume-based modeling− Next week
Point-based modeling Surface-based modeling
1. Meshes
2. Parametric surfaces
3. Subdivision surfaces
4. Implicit surfaces
![Page 4: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/4.jpg)
(Tentative) pedagogy:problem-based learning
Objectives:− Learn more things− Remember more things− Know other students
How:− Individual work (papers to read)− Debate to answer a problem
In teams (4 or 5 students)
− Presentation of results
![Page 5: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/5.jpg)
Planning
Today:− Introductive course
Boring => exercises
− Papers to read for next week (individually) Next week:
− I give you a problem− 1 hour to find an answer as a team− Presentation of your solution (10 minutes/team)− Structuring course (1 hour)
![Page 6: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/6.jpg)
Teams (tentative) Team 1:
Reynald Arnerin, Azim Azma, Laurent Belcour, Robert Conceivo Da Silva, Adrien Gomez Espana Pecker
Team 2:Nicolas Esteves, Sylvain Guglielmi, Juan Alberto Lahera
Perez, Mohamed Riadh Trad, Xue Bing
Team 3:Pierre Arnaud, Varun Raj Kompella, Anja Marx, Jorge Pena,
Thibault Serot
Team 4:Antoine Bautin, Adrien Brilhault, Noura Faraj, Stefano
Sclaverano
![Page 7: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/7.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 8: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/8.jpg)
Examples
![Page 9: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/9.jpg)
Why not one good representation ?
Multiple applications, different constraints
− Powerful rep. To handle a large class of objects To create complex objects from simple ones
− Intuitive rep. To edit the model To animate some parts of it
− Efficient rep. Memory cost Display/process time cost
![Page 10: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/10.jpg)
Classification: a proposal
Non structured rep.− Point set− Polygon soup
Surface rep.− Mesh− Parametric− Subdivision− Implicit
Volumetric rep.− Voxel line/plane/set− Octree− CSG
Procedural rep.− Fractal− Grammar/L-system− Particle system
Image-based rep.
![Page 11: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/11.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 12: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/12.jpg)
Point set representation
Points are samples of the underlying surface 1 point corresponds to 1 surfel (surface
element)− Position− Color− Normal− Radius
Surfel = 2D !
Courtesy M. Zwicker
![Page 13: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/13.jpg)
Surfel
Surfels are designed mostly for rendering
Advantage: no mesh reconstruction necessary
− Time saving No surface connectivity
information
Courtesy M. Zwicker
![Page 14: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/14.jpg)
Point rendering pipeline
Credit: M. Zwicker 2002
Point set
Visibility
Framebuffer
Forwardwarping
Shading Imagereconstruction
![Page 15: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/15.jpg)
Forward warping and shading
Forward warping = perspective projection of each point in the point cloud
Similar to projection of triangle vertices (mesh case)
Shading:− Per point− Conventional models for shading (Phong,
Torrance-Sparrow, reflections, etc.)− Cf. rendering course
![Page 16: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/16.jpg)
Visibility and image reconstruction
Performed simultaneously Discard points that are occluded from the
current viewpoint Reconstruct continuous surfaces from
projected points
![Page 17: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/17.jpg)
Image reconstruction
Goal: avoid holes in the image of the surface Use surfel radius to cover the surface More during the rendering course
![Page 18: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/18.jpg)
Surface approximation
Almost all surface representations are based on points
− Meshes− Parametric rep. (splines)− Implicit rep.
A projection-based surface definition is also possible
− Local polynomial P around each point− Project P(0) onto a local reference plane
![Page 19: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/19.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 20: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/20.jpg)
Meshes
Mesh = (V,E,F)− V = set of vertices− E = set of edges− F = connected set of (planar) faces
Not connected = polygon soup Faces can be
− Triangles− Planar quads− Any planar, convex polygon
![Page 21: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/21.jpg)
2-Manifold
Def.: each vertex has a neighborhood on M homeomorphic to a disk
− Continuous bijection, distance does not matter 2-Manifold with boundary: to a [half-]disk 3-Manifold, n-manifold, ... No singularities:
![Page 22: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/22.jpg)
Object topology
Any manifold's topology is defined by a small set of numbers:
− Surface: nb c of connected components + nb g of holes + nb b of boundaries
− Volume: nb of conn. comp. + nb of tunnels + nb of cavities (bubbles) + nb of boundaries
Euler formula for surface meshes:− V-E+F = = 2(c-g)-b
− = Euler characteristic− g = genus
![Page 23: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/23.jpg)
(Easy) Exercise Find the Euler characteristic of the following 6
surfaces:
And for volumes ?
![Page 24: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/24.jpg)
Mesh data structures
How to store geometry and connectivity ?− STL-like: store triangles, vertices duplicated
=> no connectivity− Shared vertex data structure (OBJ, OFF file
formats): vertex list, triangles = triples of indices
=> no neighborhood info− Half-edge and variants
=> all is based on oriented edges
![Page 25: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/25.jpg)
Half-edge data structure Three main classes:
− Vertex Coord, [id,] pointer to one
outgoing half-edge
− Half-edge Pointers to the origin vertex, to
the next and to the opposite half-edge, to the incident face
− Face Pointer to one incident half-edge
You can add whatever attributes you want (normal, color, ...)
![Page 26: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/26.jpg)
Example: browsing the 1-ring neighborhood of a vertex
![Page 27: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/27.jpg)
Example: browsing the 1-ring neighborhood of a vertex
Exercise:− Write your own half-edge data
structure: class Vertex class Edge class Face
− Write a procedure browseOneRing(Vertex* v) which returns the 1-ring neighborhood of v as a list.
![Page 28: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/28.jpg)
C++ libraries
CGAL http://www.cgal.org/ Developed by a consortium led by INRIA, lots of stuff Widely used by researchers, tutorials Somehow complicated (genericity)
OpenMesh http://www.openmesh.org/ Developed by Mario Botsch at RWTH Aachen Simpler, clearer Lack of documentation
GTS http://gts.sourceforge.net/ Why not ?
![Page 29: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/29.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 30: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/30.jpg)
30
Parametric curves: splines
Motivations : interpolate/approximate points Pk
Easier to give a finite number of “control points”
The curve should be smooth in between
Why not polynomials? Which degree do we need?
u
![Page 31: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/31.jpg)
31
Spline curves
Defined from control point Local control
− Joints between polynomial curve segments
− degree 3, C1 or C2 continuity
Spline curve
Control point
![Page 32: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/32.jpg)
32
Interpolation vs. Approximation
P1P2
P3
P2
P3
P1
![Page 33: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/33.jpg)
33
Splines curves
Mathematical formulation? Curve points = linear
combination of control points
C(u) =∑ Fk(u) Pk Curve’s degree of continuity = degree of
continuity of Fk
Desirable properties for the “influence functions” Fk?
![Page 34: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/34.jpg)
34
Splines curvesSummary of desirable properties
C(t) =∑ Fk(t) Pk,
Interpolation & approximation− Affine invariance ∑ Fk(t) =1− Locality: Fk(t) with compact support− Parametric or geometric continuity
Approximation− Convex hull Fk(t) ≥0 − Variance reduction: no unwanted
oscillation
Tk Tk+1
u
![Page 35: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/35.jpg)
35
Splines curvesMost important models
Interpolation− Hermite curves C1, cannot be local if C2 − Cardinal spline (Catmull Rom)
Approximation− Bézier curves− Uniform, cubic B-spline (unique definition,
subdivision)− Generalization to NURBS
![Page 36: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/36.jpg)
36
Cardinal Spline, with tension=0.5
![Page 37: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/37.jpg)
37
Uniform, cubic B-spline
![Page 38: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/38.jpg)
38
Cubic splines: matrix equation
P1P2
P3 P4 P4
P2
P3
P1
Qi (u) = (u3 u2 u 1) Mspline [Pi-1 Pi Pi+1 Pi+2] t
Cardinal spline B-spline
−−−
−−
=
0020
0101
1452
1331
2
1CatmullM
−−
−−
=
0141
0303
0363
1331
6
1BsplineM
![Page 39: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/39.jpg)
39
Splines surfaces
« Tensor product »: product of spline curves in u and v
Qi,j (u, v) = (u3 u2 u 1) M [Pi,j] Mt (v3 v2 v 1)
− Smooth surface?
− Convert to meshes?
− Locality?
![Page 40: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/40.jpg)
40
Splines surfaces
• Expression with separable influence functions!
Qi,j (u, v) = ∑ Bi(u) Bj(v) Pij
u
v Historic example
![Page 41: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/41.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 42: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/42.jpg)
42
Subdivision Curves & Surfaces
Start with a control polygon or mesh progressive refinement rule (similar
to B-spline) Smooth? use variance reduction!
− “corner cutting”
Chaikin
(½, ½)
![Page 43: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/43.jpg)
43
How Chaikin’s algorithm works?
Qi = ¾ Pi + ¼ Pi+1
Ri = ¼ Pi + ¾ Pi+1
Ex: do Chaikin on a square
![Page 44: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/44.jpg)
44
Subdivision Surfaces
Topology defined by the control polygon
Progressive refinement (interpolation or approximation)
Loop
Butterfly Catmull-Clark
= B-spline at regular vertices
![Page 45: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/45.jpg)
45
Example : Butterfly Subdivision Surface
Interpolate Triangular Uniform &
Stationary Vertex insertion
(primal) 8-point
a = ½, b = 1/8 + 2w, c = -1/16 – w
w is a tension parameter
w = –1/16 => surface isn’t smooth
![Page 46: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/46.jpg)
46
Example: Doo-SabinWorks on quadrangles;
Approximates
![Page 47: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/47.jpg)
47
Comparison
Catmull-Clark
(primal)
Doo-Sabin
(dual)
![Page 48: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/48.jpg)
48
![Page 49: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/49.jpg)
49
![Page 50: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/50.jpg)
50
At curve point / regular surface verticesSplines as limit of subdivision
schemes
Loop
Quartic uniform box splines
Catmull-Clark
Cubic uniform B-spline surface
Doo-Sabin
Quadratic uniform B-spline surface
Chaikin
Quadratic uniform B-spline curve
![Page 51: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/51.jpg)
Today's planning
1.Geometry representations: introduction
2.Point sets
3.Meshes
4.Splines and parametric surfaces
5.Subdivision surfaces
6.Implicit surfaces
![Page 52: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/52.jpg)
52
Implicit surfacesDefined by an Implicit Equation
S = { P(x,y,z) / f(x,y,z) = iso }
(f: R3→ R) is the «field function» Surface normal : N = - ∇ f Characterizes a volume! f (x,y,z) > iso
− “in/out test” (used for collisions, ray tracing…)
Smoothness: S and f have same degree of continuity
N
P
F>iso
F<iso
![Page 53: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/53.jpg)
53
History: Solid Geometry
Volumetric primitives S = { P(x,y,z) / f(x,y,z) = iso }
Spheres, ellipsoids
Cylinders, cones
Super-ellipsoids
12
2
2
2
2
2
=++c
z
b
y
a
x
1=++n
n
n
n
n
n
c
z
b
y
a
x
![Page 54: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/54.jpg)
54
Constructive Solid Geometry
Developed for CAGD Solid primitives Boolean operators
− Union (or)− Intersection (and)− Difference (not)
Construction tree
Describes the history of construction in a compact, intuitive way
-
∪
∩
![Page 55: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/55.jpg)
55
Problem: limited shapes
Free form primitives ? S = { P(x,y,z) / f(x,y,z) = iso }
f polynomial (algebric surface), or other smooth function
What should the equation of f be to model this?
How can a user control an implicit shape?
− Intuitive control− Locality− Enable deformations
![Page 56: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/56.jpg)
56
Idea (1982) Blinn Objects “Blobs”
Primitive generated by
points S− f decreasing function of the
distance
Union : f = max (f1,f2)
Intersection : f = min (f1,f2)
Blending : f = f1 + f2
sp
f
Distance
![Page 57: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/57.jpg)
57
Idea (1982) Blinn Objects “Blobs”
Exponential field + Very smooth − No local control − Everything is to be recomputed if a point
moves
Extension to blend primitives of different
sizes
2
)( 2SiPd
i ef−−
=field
Distance to centre
2
2
)(
)(
i
i
SR
SPd
ii ekf−−
=
![Page 58: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/58.jpg)
58
Displaying implicit surfaces?Ray Tracing [Blinn 82]
• Use dichotomy to compute ray/surface intersections
Later extensions• Analytical solutions for intersection• Sphere tracing
– adapt the step size based on Lipschitz constants
Several hours for rendering from a single view-point!
![Page 59: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/59.jpg)
59
Make implicit surfaces local?(1985-1990)
Field function with compact support!
− piece-wise polynomial functions in d(P,Si)2
Metaballs [Nishimura 1985] − if 0<d<1/3 fi = 1- 3 d2
− if 1/3<d<1 fi = 3/2 (1-d2)
Soft Objects [Wyvill et al. 1986]- if 0<d<1 fi = -4/9 d6 + 17/9 d4 – 22/9 d2 +1
field
Distance to centre
![Page 60: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/60.jpg)
60
Improving visualization?(1985-1990)
Marching cubes [Lorensen Cline 87]
– Space grid– Facetize voxels that cross the surface– Mesh can be viewed from different
viewpoints– Extension: file to follow the surface
![Page 61: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/61.jpg)
61
Improving visualization?(1985-1990)
Marching cubes [Bloomenthal 1993-1994]
– Evaluation of implicit surface tilers [– An implicit surface polygonizer (paper +
code in C)
![Page 62: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/62.jpg)
62
Extensions (1990-2000)
Skeleton-based Implicit Surfaces
Idea: Use any primitive Si as a skeleton
S = { P / ∑ fi (P) = iso }
fi decreasing function of d(P,Si)
Intuitive control, deformation, change of topology
fi
Distanceiso
e Point, segments, disc, cylinder
![Page 63: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/63.jpg)
Appendix: internship proposals1. Animated mesh construction
from scans of articulated objects
2. Creation of dynamic hair strands from 2D linesWith Florence Bertails (BiPop team)
3. Classification of non-manifold objects based on topological propertiesWith Jean-Claude Léon
http://evasion.imag.fr/Membres/Franck.Hetroy/Students/internships.html
![Page 64: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/64.jpg)
Proposal 1: animated mesh
Objective: from scans of an object under different poses, create a single animation
Matching between created meshes
Interpolation frames Related MoSIG courses:
Computer Graphics (modeling + animation)
(Computational Geometry) (Computer Vision)
Courtesy L. Belcour, E. Heitz and A. Masson-Sibut
![Page 65: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/65.jpg)
Proposal 2: dynamic hair strands
Objective: from a 2D sketched curve + physical model, create a 3D model of a hair strand
Geometric reconstruction of a 3D curve
Attach physical parameters For realistic animation
Related courses: MoSIG Computer Graphics (animation) (Simple) geometry + mechanics
![Page 66: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/66.jpg)
Proposal 3: non-manifolds
Objective: classify non-manifold surfaces based on topology Maths + algorithms
Applications in CAD, architecture, graphics, ...
Collaboration with Univ. Genova 3 weeks in Italy possible
Related MoSIG course: Computational Geometry
![Page 67: Computer Graphics: Modeling - imagevasion.imag.fr/Membres/Franck.Hetroy/Teaching/ComputerGraphic… · Context We want to represent 3D objects −Real objects −Virtual/created objects](https://reader034.fdocuments.in/reader034/viewer/2022042211/5eb3c45103df0c7e825a5cb1/html5/thumbnails/67.jpg)
To do for next week
Read the papers Understand the papers Find, read and understand other papers/book
chapters− In case things are not clear
Next week: Problem to solve in teams
− Related to these papers