parametric surface patches 1
implicit representation implicit surface representation f ( P ) = 0 e.g. sphere: x 2 y 2 z 2 r 2 f ( P ) = 0 → + + − = 0 2
parametric representation parametric surface representation P ( u ) = ( f x ( u ), f y ( u ), f z ( u )) e.g. sphere: P ( u ) = ( r cos ϕ sin θ , r sin ϕ sin θ , r cos θ ) 3
parametric representation goals when defining f smoothness, efficiency, local control same as curves (1) combine curves to obtain surfaces easy for simple solids, but not general (2) extend parametric curves to surface patches general formulation used heavily in CAD 4
surfaces from curves example: extrude curve in XY along Z C ( u ) P ( u , v ) = ( C x ( u ), C y ( u ), v ) example: revolve curve in YZ along Z C ( u ) P ( u , v ) = ( C y ( u ) cos( v ), C y ( u ) sin( v ), C z ( u ) ) 5
patches 6
patches spline curves: 1D blending functions P ( t ) = ∑ b i ( t ) P i i surface patches: 2D blending functions cross product of 1D blendering functions P ( u , v ) = ∑ b ij ( u , v ) P ij ij b ij ( u , v ) = b i ( u ) ( v ) b j 7
patches bicubic Bezier patches 8
patches joining is hard 9
other patch functions just like curves uniform, non-uniform non-uniform rational B-splines (NURBS) ratios of B-splines invariance under perspective can represent conic sections exactly often used in 3D 10
rendering parametric surfaces 11
rendering parametric surfaces tesselation: approximate surfaces with triangles/quads meshes are efficient to draw in hardware and software more faces to provide better approximation uniform tesselation: split intervals uniformly ( u , v ) fast to compute and simple to implement generates many segments adaptive tesselation: split recursively until good enough Bezier patches can use De Castaljeu 12
uniform tesselation split in points uniformly at K × K ( u k 1 v k 2 , ) = (1/ k 1 ,1/ k 2 ) tesselate into quads by creating a quad grid K × K set vertices to P ( u k 1 v k 2 , ) join vertices to avoid holes if function wraps (e.g. cylinder) normals evaluate analytically if possible (e.g. sphere) or evaluate by computing partial derivatives n = ∂ P /∂ u × ∂ P /∂ v or smooth the mesh by averaging face normals over 13 vertices
Recommend
More recommend