surface displacement, tessellation, and subdivision ikrima elhassan
TRANSCRIPT
![Page 1: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/1.jpg)
Surface displacement, tessellation,and subdivision
Ikrima Elhassan
![Page 2: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/2.jpg)
Overview
The Reyes image rendering architecture", Cook et al.,SIGGRAPH 1987
Curved PN triangles", Vlachos, Peters, Boyd, and Mitchell,Symposium on Interactive 3D Graphics, 2001
![Page 3: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/3.jpg)
Reyes Architecture: Support Goals
Speed (render high quality film in less than a year)
Shading/Model Complexity & Diversity Minimal Raytracing Image Quality Flexibility
![Page 4: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/4.jpg)
Design Goals
Natural Coordinates Vectorization Common underlying representation Locality Linearity Large Models Back door
![Page 5: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/5.jpg)
Geometric Locality & Sampling
Raytracing can cause model and texture paging to dominate rendering time as model complexity increases
Uses stochastic sampling called jittering
![Page 6: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/6.jpg)
MicroPolygons
½ pixel in length for Nyquist limit Dice primitives along natural boundaries Done in eyespace Results in a grid with shared vertices
![Page 7: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/7.jpg)
Micropolygons: Adv vs. Disadvantages Vectorizable Texture locality &
filtering Subdivision
coherence Ease of Clipping &
Displacement maps No perspective
Shading occurs on nonvisible micropolygons
Rendering time becomes tied to depth complexity
![Page 8: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/8.jpg)
Texture Locality
2 Classes of Textures: CATs & RATs
Sequential access with CATs
Can eliminate filtering
![Page 9: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/9.jpg)
Description Algorithm
Bounded primitives (not necessarily tight) Primitives must be able to break down into
diceable primitives Must be able to split primitives Diceability test – returns “diceable” or “not
diceable”
![Page 10: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/10.jpg)
Algorithm Description (Continued)
Does not require clipping Use ε plane to avoid invalid perspective
calculation Primitives with 0<z < ε are split until no
primitives span the ε plane
![Page 11: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/11.jpg)
Extensions
Constructive Solid Geometry Transparency Depth of field Motion Blur
![Page 12: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/12.jpg)
Implementation
Bucket Rendering Each primitive is diced or split and put into
corresponding bucket Only one bucket is needed at a time Lowers memory requirements
![Page 13: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/13.jpg)
Final Thoughts on Reyes
No inverse calculations No clipping calculations Very vectorized No texture thrashing and
can eliminate run time filtering
Sampling occurs after shading
Difficult to handle metaballs
Hard to bound primitives such as particle systems for bucket sort
Polygons don’t have natural coordinate system
![Page 14: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/14.jpg)
N-Patches
![Page 15: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/15.jpg)
Issues with new geometric primitives Must be compatible with work already in
progress Must be backward compatible Fit existing hardware designs
![Page 16: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/16.jpg)
N-patches: Advantages
Curved surfaces Improved visual quality (smooth
silhouettes and better vertex shading) Do not require developers to store
geometry differently (triangles) Minimize change to API’s Minimize bandwidth
![Page 17: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/17.jpg)
Goals
Isolation (cannot access mesh neighbors) Fast Evaluation (including normal) Modeling range (smoother contours and
better shading)
![Page 18: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/18.jpg)
Interpolation Use barycentric coordinates for
triangular domain Consider a set of points P0, P1,…, Pn,
and consider the set of all affine combinations taken from these points. That is all points that can be written as
for some
This set of points forms an affine
space, and the coordinates
are called the barycentric coordinates of the points of the space.
Recall that a point within a triangle Δp0p1p2, can be described as p(u,v) = p0 + u(p1-p0) + v(p2-p0) = (1-u-v)p0 + up1 + vp2, where (u,v) are the barycentric coordinates
Bicubic interpolation results in C2 surfaces
Given a tabulated function yi = y(xi), i = 1...N , focus attention on one particular interval, between xj and xj+1. Linear interpolation in that interval gives the interpolation formulay = Ayj + By(j+1)
If we have yi”, we can add to the right-hand side of equation a cubic polynomial whose second derivative varies linearly from a value y j on the left to a value y (j+1) on the right.
![Page 19: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/19.jpg)
Geometry: cubic B´ezier
Bijk = control points = coefficients
Makes up the “control net”
Cubic interpolation
![Page 20: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/20.jpg)
Normal: quadratic B´ezier
Linear or Quadratic Interpolation
![Page 21: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/21.jpg)
Algorithm
LOD = # vertices -2 on an edge
Tangent coefficients determined by planer projection
![Page 22: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/22.jpg)
Algorithm (Continued)
Quadratic interpolation allows for inflection between vertices
![Page 23: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/23.jpg)
Examples of N-patches
![Page 24: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/24.jpg)
Sharp Edges
Proven that you cant have creases with purely local information
More than distinct normal per vertex causes holes or cracks
Not really discussed in detail, solution is to add more triangles
![Page 25: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/25.jpg)
Hardware Performance
Operations are dot products, addition of two vectors, scaling, and per-component multiply of two vectors
Uses 6.8 to 11.6 vector operations per generated vertex Fill rate is not a bottleneck, since screen area is
unchanged Key limiting factor, most of time, is bandwidth Overhead in additional transformation of vertices Reduces calculation for key-frame interpolation and
collision detection Might be able to shift pixel shading to vertex shading
![Page 26: Surface displacement, tessellation, and subdivision Ikrima Elhassan](https://reader036.vdocuments.us/reader036/viewer/2022081514/56649e9e5503460f94b9ffc2/html5/thumbnails/26.jpg)
Advantages
Generated on-chip Saves bandwidth and
memory Curved surfaces and
better shading
Cant control curvature No sharp edges