Presentation is loading. Please wait.

Presentation is loading. Please wait.

Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Similar presentations


Presentation on theme: "Surface displacement, tessellation, and subdivision Ikrima Elhassan."— Presentation transcript:

1 Surface displacement, tessellation, and subdivision Ikrima Elhassan

2 Overview The Reyes image rendering architecture", Cook et al., SIGGRAPH 1987 The Reyes image rendering architecture Curved PN triangles", Vlachos, Peters, Boyd, and Mitchell, Symposium on Interactive 3D Graphics, 2001 Curved PN triangles

3 Reyes Architecture: Support Goals Speed (render high quality film in less than a year) Shading/Model Complexity & Diversity Minimal Raytracing Image Quality Flexibility

4 Design Goals Natural Coordinates Vectorization Common underlying representation Locality Linearity Large Models Back door

5 Geometric Locality & Sampling Raytracing can cause model and texture paging to dominate rendering time as model complexity increases Uses stochastic sampling called jittering

6 MicroPolygons ½ pixel in length for Nyquist limit Dice primitives along natural boundaries Done in eyespace Results in a grid with shared vertices

7 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

8 Texture Locality 2 Classes of Textures: CATs & RATs Sequential access with CATs Can eliminate filtering

9 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”

10 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

11 Extensions Constructive Solid Geometry Transparency Depth of field Motion Blur

12 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

13 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

14 N-Patches

15 Issues with new geometric primitives Must be compatible with work already in progress Must be backward compatible Fit existing hardware designs

16 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

17 Goals Isolation (cannot access mesh neighbors) Fast Evaluation (including normal) Modeling range (smoother contours and better shading)

18 Interpolation Use barycentric coordinates for triangular domain Consider a set of points P 0, P 1,…, P n, 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 C 2 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 formula y = 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.

19 Geometry: cubic B´ezier B ijk = control points = coefficients Makes up the “control net” Cubic interpolation

20 Normal: quadratic B´ezier Linear or Quadratic Interpolation

21 Algorithm LOD = # vertices -2 on an edge Tangent coefficients determined by planer projection

22 Algorithm (Continued) Quadratic interpolation allows for inflection between vertices

23 Examples of N-patches

24 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

25 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

26 Advantages Generated on-chip Saves bandwidth and memory Curved surfaces and better shading Cant control curvature No sharp edges


Download ppt "Surface displacement, tessellation, and subdivision Ikrima Elhassan."

Similar presentations


Ads by Google