Real-Time Rendering

Download Report

Transcript Real-Time Rendering

Real-Time Rendering SPEEDING UP RENDERING

Lecture 04 Marina Gavrilova

Brief Outline

       Culling Hierarchical z-buffering Hierarchical Occlusion Map (HOM) Impostors and Nailboards Hierarchical image caching Level of Detail (LOD) Triangle Stripping

Culling

   To cut-off non-visible objects at an early stage of the rendering pipeline Backface culling: Most frequently used culling  Dot product of surface normal and view vector Clustered Culling: Determine using 1 test whether a group of polygon is visible or not

Hierarchical View Frustum Culling

    Bounding Volume (BV): Volume that encloses a group of objects Compute BV Hierarchy and store as Directed Acyclic Graph (DAG) or tree Leaf holds actual geometry, parent BV contains several child BV Most common BV: Sphere, Axis Aligned Bounding Box (AABB), Oriented Bounding Box (OBB) Hierarchy of BV is often called a Scene

Graph

Rendering Scene with Hierarchical BV

 Child is explored for visibility only if parent is completely or partially visible

BSP trees for static scene

     Excellent for static scene Takes a long time to compute Efficient culling test AABB based BSP:    Take one plane of the box Divide objects into two sets Subsequent division Polygon Aligned BSP:    Choose one polygon as divider Use the chosen polygons plane to divide into two partition Recursively divide the rest

Rendering scene using BSP

    Polygon aligned BSP trees can be traversed to find back to front order of objects Render back to front: no z-buffer needed Render front to back: no need to redraw pixels   Pixel span: span of pixels in a row. No need to draw pixel spans BSP is also known as k-d trees in computational geometry

Portal culling

      Used in architectural design Used in Computer games inside buildings with doors Occluders are large walls Compute Potentially visible set (PVS) from one point of view Divide the entire scene into cells (i.e. room) Doors and windows are called portals   Method 1: impose a BSP on cells (align the partitioning planes with the walls) Method 2: Subdivide cells and identify portals and construct a cell-to cell visibility data structure  Dramatic Speedup (up to 100 times) when scene is very complex with many walls

Portal Culling (cont’d)

   It is a refinement process (diminishing view frustum) Reflection can be seen as another portal (with associated PVS) Used in Nintendo 64

Detail Culling

 Object to Screen Pixel Ratio: The area of the projected BV of an object (in number of pixels)  Omit objects who’s Screen pixel ratio is too small  Replace object with simpler model when screen pixel ratio is low

Occlusion Culling

   Z-buffer is not sufficient for densely packed objects (i.e. a forest) Occlusion culling saves rendering time by preventing occluded objects from being rendered General algorithm:

Hierarchical Z-buffering

      Hierarchical Visibility Algorithm (HV) Maintain scene model in an Octree Maintain a z-pyramid for occlusion test Recursively subdivide scene into octree boxes (until each leaf contains

HV algorithm

  To maintain z-pyramid recurse the furthest value Upto 100 times less depth test than standard z-buffer

Other HV based techniques

     Hierarchical polygon tiling  Very Efficient Without hardware implementation HV is too slow for real-time graphics Take advantage of frame-to-frame coherence Rendering antialiased scenes hierarchically without error bounds (Greene and Kass) Visibility skeleton method (Durand)

The Hierarchical Occlusion Map (HOM) algorithm

   Another efficient algorithm Occlusion is tested using two mechanism:   Depth Test Overlap Test Identify potentially good occluders (preprocessing)

The HOM Algorithm

Occlusion map

64 x 64 32 x 32 16 x 16

The HOM algorithm

 Hierarchy can be generated by hardware texture MIP maps  Test of occlusion is based on a threshold opacity

Shadow Culling

  Find small number of large occluders Make use of separating planes and supporting planes

Impostors

   Impostor: image of a complex object that is texture mapped onto a rectangle Renders faster than the object Exploits frame-to-frame coherence    Objects rendered to a texture from a particular viewpoint Rendered object is reused until the view point changes significantly Great for particle systems and complex objects  Similar to billboards (dynamic/adaptive billboard)

Nailboards

  Nailboard: an Imposter frame with an attached z-buffer (RGB  ,  =z WRT impostor quad) Avoids visibility problems of impostors Real Object Impostors (without  ) Nailboard (2 bit  ) Nailboard (8 bit  )

Level Of Detail (LOD)

    Simpler objects as the object moves further away from the camera LOD is often equals to # of triangles A more general measure for error metric is screen pixel ratio Problem: When LOD changes popping effects occur

Correcting LOD popping effect

  Alpha LOD: increase transparency of object as distance increases   Object fades away More continuous  Object becomes invisible Geomorph LOD   Use different geometry and perform smooth geometric interpolation between LOD Smooth continuous transition of LOD  Hard to implement

LOD management

 Define an error metric for the object LOD   Optimally refine object to improve accuracy Restrict refinement operations to a constant amount per frame

Triangle Stripping

    Define triangles of an objects as continuous strip Improves rendering performance SGI algorithm (greedy) Stripe algorithm

End of Lecture 04

Questions?