Curves and Surfaces

Download Report

Transcript Curves and Surfaces

Content Subdivision
•
•
•
•
•
First some basics (control point polygon, mesh)
Smooth - Triangle
Some Polygon techniques(Strips, fans, meshes)
Subdivision Linear/ Curves
Subdivision Surfaces
-Doo-Sabin
-Catmull-Clark
-Loop Scheme
Basics(Control Polygon)
Basics(Control Mesh)
Smooth - Triangle(1)
• Curves are described with equations
• curves:
-Compact notations,
-Scalable,
-Smooth and continuous,
-Easy for collision detection and animation;
-Saving in memory
-Curves use less matrix transformation then similar done with a mesh
-Potential for real-time rendering and simple code
Smooth - Triangle(2)
• Basic Atom
• Graphics cards do not have build-in support for curves.
Curves are not generous enough for computing shadow volume which
can be more easily done with the basic atom.
Tessellation
•
•
•
•
•
•
•
Splitting a surface into a set of
polygons.
Also possible for curved surfaces
Why??? Hardware!
Any surface can be made out of
triangles.
With triangles it is alluded as
Triangulation.
Useful to handle concave polygons.
Important for catching shadows
and light.
Tessellation(2)
•
•
•
•
Avoid long thin triangles for
shading.
A Tessellator first projects its 3D
polygon to a 2D plane.
Best plane is where polygon with
the largest area.
Calculation of area where the
magnitude of the normal has the
largest length and throw away that
direction.
Tessellation(3)
• Ear clipping O(n2)
• Look at triangles with vertices i, (i+1), (i+2) where modulo n
check if the line segments from at vertices i and (i+2) intersects line
segments.
• Other problems might occur when polygons do not exhibit from one
single outline. When they consists of holes for example. Solution could
be to connects the holes with the exterior bounds so that one outline
emerges.
Tessellation(Ear Clipping)
Triangle Strips
• Serie of connected triangles
• No need for sending each
triangle.
• Only needs to send one vertex
• So rendering will be done fast.
• (v0, v1, v2, …, vn-1)
vi vi1vi 2
Triangle Fan
• Same Idea as Strips
• Same performance
• Nvidea prefers Strips over Fans
because of the driver
optimisation.
• (v0, v1, v2, …, vn-1)
v0vi 1, v i 2
Subdivision modelling
• What is Subdivision?
•
•
•
•
•
•
Relative new(used in movies)
-Creating Attractive shapes(usually
smooth)
-From a basic to nice shape !
-from an arbitrary mesh
-the limit of an infinite refinement
process
Subdivision can be used for
Modelling, animation and even for
colours and textures.
Subdivision modelling
• What is Subdivision?
Subdivision
• Subdivision Can be roughly be categorised into Interpolating and
approximating schemes.
• You start with an initial polygonal mesh which often has few vertices.
• By repetitively applying the subdivision procedure to the initial mesh,
we generate a sequence of meshes that converges to a resulting
surface.
Subdivision(Linear)
•
•
•
•
Piecewise Linear
1-Dimensional
X = 1/2(Xleft + Xright)
Y = 1/2(Yleft + Yright)
Subdivision Curves
• Chaikin’s scheme:
Qi = 3/4Pi + 1/4Pi+1
Ri = 1/4Pi + 3/4Pi+1
• P0 -> P1 ->P2 -> P (P =Polygon)
• Approximation
• convex hull
• Works on open and closed
polygons
• Corner cutting(low pass filter)
• twice as much vertices
• after each step new vertices are
connected.
Subdivision Curves (Example)
Subdivision Surfaces(1)
•
•
•
•
Powerful Paradigm !!!
Infinite level of detail (LOD)
original surface is compact!
Easy implementation, but
analysis not.
• Works with polygons !
Subdivision Surfaces(2)
• Two phase Process
1) Refinement phase
2) Smoothing Phase
Subdivision Surfaces(3)
• The details specify the scheme and thus the shape
-splitting can be done in different ways.
-Whether the surface is approximating or interpolating.
• A subdivision scheme can be specified by:
-(non)Stationary
-uniform, same rules for each vertex and edge (smoothing phase)
-triangle/polygon
Subdivision Surfaces(4)
Subdivision Surfaces(5)
• Regular/ irregular vertices.
• Conditions
-Subdivision should be efficient
•
•
thus few floating point operations.
-The region of a of a control point
should be finite.
-Subdivision should achieve a
order of smoothness thus C1 or C2.
Shrinking at approximation
Convex polyhedral
Doo-Sabin Scheme(1)
• For each vertex of each face there will be an new vertex created
• For each face, connect the new points that have been generated.
• Connect the new vertices to the adjacent ones
Doo-Sabin Scheme(2)
Doo Sabin Scheme (example)
• Every Valence = 4
• note the triangular facets
• Approximating
Catmull-Clark Sheme(1)
• For each face of the mesh, generate the new face points
• Generate the new edge points
• Calculate the new vertex points
• The mesh is reconnected by the following method.
-Each new face point is connected to the new edge points of the edges defining
the original face.
-Each new vertex point is connected to the new edge points of all original
edges incident on the original vertex point.
• Catmull-Clark works with quad meshes
Catmull-Clark Scheme(2)
Catmull-Clark Scheme (example)
• Every face has 4 control points
• Vertices retain their valence
• First order continuity at a
irregular vertex
• Approximating
• Subdivision can be adapted at
certain places where more detail
is needed.
Loop-Scheme(1)
• The Loop scheme is defined for
triangle meshes only
• Every triangle will be split in 4
new triangles.
• m triangles, with n steps, 4n m
triangles.
• Most edges are shared by two
triangles
• phase 1: refinement.
• Phase 2: fix geometry
look at mesh not just a triangle
Loop Scheme(2)
p
k 1
 (1  n )p   (p 
k
3p  3p  p

8
k
p k 1
i
k
i
k
0
k
i 1
p
p
k
n 1
)
k
i 1
• First formula updates existing vertices
• Second updates the new vertices
Loop Scheme(3)
•
•
•
Valence = 6 (regular)
Mask (draw)
New point should lie on the neighbourhood of the weighted points
•
Next Beta-function give C2 at regular vertices
1 5 (3  2 cos(2 / n) 2
 ( n)  ( 
)
n 8
64
3
 ( n) 
n(n  2)
Loop Scheme(3)
•
•
•
•
First formula calculates directly a limit point
Second formula calculates a limit tangent
use cross product to get the normal, n = tu x tv
With many subdivisions a model shrinks, a solution might be to
increase more vertices at the control mesh
 ( n) 
1
3
n
8  ( n)
n 1
tu   cos(2 i / n)p ,
i 0
k
i
n 1
tv   sin(2 i / n)pik ,
i 0