+ All Categories
Home > Documents > Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Date post: 12-Jan-2016
Category:
Upload: jordan-sanders
View: 217 times
Download: 0 times
Share this document with a friend
26
Surface displacement, tessellation, and subdivision Ikrima Elhassan
Transcript
Page 1: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Surface displacement, tessellation,and subdivision

Ikrima Elhassan

Page 2: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

Design Goals

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

Page 5: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

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.

Texture Locality

2 Classes of Textures: CATs & RATs

Sequential access with CATs

Can eliminate filtering

Page 9: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

Extensions

Constructive Solid Geometry Transparency Depth of field Motion Blur

Page 12: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

N-Patches

Page 15: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

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.

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.

Geometry: cubic B´ezier

Bijk = control points = coefficients

Makes up the “control net”

Cubic interpolation

Page 20: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Normal: quadratic B´ezier

Linear or Quadratic Interpolation

Page 21: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Algorithm

LOD = # vertices -2 on an edge

Tangent coefficients determined by planer projection

Page 22: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Algorithm (Continued)

Quadratic interpolation allows for inflection between vertices

Page 23: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

Examples of N-patches

Page 24: Surface displacement, tessellation, and subdivision Ikrima Elhassan.

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.

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.

Advantages

Generated on-chip Saves bandwidth and

memory Curved surfaces and

better shading

Cant control curvature No sharp edges


Recommended