Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.

Slides:



Advertisements
Similar presentations
Visible-Surface Detection(identification)
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Collisions and Intersections When objects move, test for collision. When projecting surfaces, check for intersections. (Many slides adapted from Amitabh.
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Introduction to Massive Model Visualization Patrick Cozzi Analytical Graphics, Inc.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
Visibility in Games Harald Riegler. 2 / 18 Visibility in Games n What do we need it for? u Increase of rendering speed by removing unseen scene data from.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Visibility in Computer Graphics Toni Sellarès Unversitat de Girona
Part I: Basics of Computer Graphics
CSE 381 – Advanced Game Programming Scene Management
Visibility Culling. Back face culling View-frustrum culling Detail culling Occlusion culling.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Korea Univ. Graphics Lab. 3D Game Engine Design Chapter 12. Spatial Sorting Chung Ji Hye
Real-Time Rendering SPEACIAL EFFECTS Lecture 03 Marina Gavrilova.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
1 Dr. Scott Schaefer Hidden Surfaces. 2/62 Hidden Surfaces.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Tomas Mőller © 2000 Speed-up Techniques for Real-Time Rendering or “What makes your real-time video game fly” Tomas Möller Chalmers University of Technology,
Image-Based Techniques Hierarchical Image Caching Michael Chung.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
1 From-Point Occlusion Culling From-Point Occlusion Culling Chapter 23.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Spatial Data Structure: Quadtree, Octree,and BSP tree Mengxia Zhu Fall 2007.
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Hidden Surface Removal
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
Afrigraph 2004 Massive model visualization Tutorial A: Part I Rasterization Based Approaches Andreas Dietrich Computer Graphics Group, Saarland University.
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
Computer Graphics Mirror and Shadows
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Culling Techniques “To cull” means “to select from group” In graphics context: do not process data that will not contribute to the final image The “group”
CSCE 552 Fall D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and point.
Computer Graphics 2 Lecture 8: Visibility Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Visible-Surface Detection Jehee Lee Seoul National University.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Hidden Surface Removal 1.  Suppose that we have the polyhedron which has 3 totally visible surfaces, 4 totally invisible/hidden surfaces, and 1 partially.
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Implementation II.
David Luebke11/26/2015 CS 551 / 645: Introductory Computer Graphics David Luebke
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Ray Tracing II. HW1 Part A due October 10 Camera module Object module –Read from a file –Sphere and Light only Ray tracer module: –No shading. No reflection.
Where We Stand At this point we know how to: –Convert points from local to window coordinates –Clip polygons and lines to the view volume –Determine which.
Computer Graphics I, Fall 2010 Implementation II.
Honours Graphics 2008 Session 5. Today’s focus Rasterization Visibility determination Coarse / fine visibility determination.
DPL2/10/2016 CS 551/651: Final Review David Luebke
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
01/28/09Dinesh Manocha, COMP770 Visibility Computations Visible Surface Determination Visibility Culling.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
Computer Graphics Inf4/MSc 1 Computer Graphics Lecture 5 Hidden Surface Removal and Rasterization Taku Komura.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Computer Graphics Implementation II
Bounding Volume Hierarchies and Spatial Partitioning
Bounding Volume Hierarchies and Spatial Partitioning
Hidden Surfaces Dr. Scott Schaefer.
CSCE 441: Computer Graphics Hidden Surface Removal
Implementation II Ed Angel Professor Emeritus of Computer Science
Introduction to Computer Graphics with WebGL
Implementation II Ed Angel Professor Emeritus of Computer Science
Using billboards within games
Presentation transcript:

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<k primitives) In 2D  Quadtree representation Takes too much time to be generated in runtime (only suitable for static scene)

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 x 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?