Image-Based Techniques Hierarchical Image Caching Michael Chung.

69
Image-Based Techniques Hierarchical Image Caching Michael Chung
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    223
  • download

    4

Transcript of Image-Based Techniques Hierarchical Image Caching Michael Chung.

Page 1: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Image-Based TechniquesHierarchical Image Caching

Michael Chung

Page 2: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Papers• Hierarchical Image Caching for

Accelerated Walkthroughs of Complex Environments– Jonathan Shade, Dani Lischinski, David H.

Salesin, Tony DeRose, John Snyder (SIGGRAPH, 1996)

• A Three Dimensional Image Cache for Virtual Reality– Gernot Schaufler, Wolfgang Sturzlinger

(EUROGRAPHICS, 1996)

Page 3: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Motivation• Unable to render large and

complex environments at a sufficiently high frame rate.

• Would be nice to be able to. (ex: crowded forests, cities…)

Page 4: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Insights• Dynamically Generated Impostors (Schaufler, 1995)

– Path coherence between frames– No need to render every frame from scratch

Page 5: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Impostor – What is it?• An impostor is a billboard that mimics and

replaces 3d geometry in a scene.

Page 6: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Impostor – Why use it?• Fast to render

• Reusable for objects that are coherent between frames– Especially distant objects

• Essentially, a high quality image at the cost of a very low LOD model (a quad)– But the impostor is short-lived.

Page 7: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Impostor Generation• Face viewpoint towards center of bounding box• Project bounding box into screen space• Generate tight rectangle• Reverse project rectangle into world space• Render impostor texture onto rectangle

Page 8: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Example: Virtual Dublin Project

• Geopostors: A Real-Time Geometry / Impostor Crowd Rendering System

Simon Dobbyn, John Hamill, Keith O’Conor, Carol O’Sullivan

Page 9: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Insights• Dynamically Generated Impostors (Schaufler, 1995)

– Path coherence between frames– No need to render every frame from scratch

Page 10: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Insights• Dynamically Generated Impostors (Schaufler, 1995)

– Path coherence between frames– No need to render every frame from scratch

• New insight:– Further optimize rendering using a

hierarchical cache of impostors• Creating impostors out of smaller impostors saves

time over rendering actual geometry• If possible, draw fewer impostors per frame

Page 11: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Proposed ContributionsShade, Lischinski, Salesin, DeRose, Snyder• “New method for accelerating

walkthroughs of geometrically complex and largely unoccluded static scenes by hierarchically caching images of scene portions.”

• “New simple error metric that provides automatic quality control.”

Page 12: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Proposed ContributionsSchaufler, Sturzlinger

• “New approach to software accelerated rendering which improves and generalizes the concept of impostors”

– Handles intersecting objects

– Handles indoor as well as outdoor scenes

– Deals with primitives, does not rely on organization of scene into object groupings

Page 13: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Proposed ContributionsSchaufler, Sturzlinger

• Indoor intersecting objects problem:

Page 14: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Proposed ContributionsSchaufler, Sturzlinger

• With the 3d image cache:

Page 15: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Method Overview• Partition scene into a tree

(BSP-tree or k-d-tree)

• For each frame:– First traversal of tree

• Cull nodes outside of the view frustum (optional)• Update the cached impostors of nodes

– Second traversal of tree• Render scene into framebuffer, back to front

Page 16: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Algorithm DetailsShade, Lischinski, Salesin, DeRose, Snyder

• Partition scene into BSP-tree– All splitting planes perpendicular to x and z

axes.– Place splitting planes in the “best” gap found.

• Compute a cost for each gap that is a function of: – the number of its active objects– and, the ratio of the number of primitives on either side of

the gap

– Choose best gap such that the longest side of the bounding box is split.

Page 17: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Algorithm DetailsSchaufler, Sturzlinger

• Partition scene into k-d-tree– Recursively subdivide along longest side.– If primitive intersects more than one bounding

box, store primitive in all intersected bounding boxes.

Page 18: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesShade, Lischinski, Salesin, DeRose, Snyder

UpdateCaches(node, viewpoint)if node is outside the view frustum then

node.status CULL

else if node.cache is valid for viewpoint thennode.status DRAW CACHE

else if node is a leaf thenUpdateNode(node, viewpoint)

elseUpdateCaches(node.back, viewpoint)UpdateCaches(node.front, viewpoint)UpdateNode(node, viewpoint)

Page 19: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 20: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 21: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 22: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 23: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 24: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 25: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 26: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 27: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 28: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 29: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesA Visual Example

Page 30: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesShade, Lischinski, Salesin, DeRose, Snyder

UpdateCaches(node, viewpoint)

if node is outside the view frustum then

node.status CULL

else if node.cache is valid for viewpoint then DETERMINE VALIDITY?

node.status DRAW CACHE

else if node is a leaf then

UpdateNode(node, viewpoint)

else

UpdateCaches(node.back, viewpoint)

UpdateCaches(node.front, viewpoint)

UpdateNode(node, viewpoint)

Page 31: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Determining Impostor ValidityShade, Lischinski, Salesin, DeRose, Snyder

• Error metric

• In practice, only consider the eight corners of a node’s bounding box when computing error.

Page 32: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Determining Impostor Validity• Error threshold

• Impostor can be used if…– – AND, imposter is not too close to the viewpoint

• Too close if tex >= screen (Schaufler, Sturzlinger)• OR, too close if viewpoint is in the same node (Shade et al)

Page 33: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating Image CachesShade, Lischinski, Salesin, DeRose, Snyder

UpdateCaches(node, viewpoint)if node is outside the view frustum then

node.status CULL

else if node.cache is valid for viewpoint thennode.status DRAW CACHE

else if node is a leaf thenUpdateNode(node, viewpoint)

elseUpdateCaches(node.back, viewpoint)UpdateCaches(node.front, viewpoint)UpdateNode(node, viewpoint) CACHE NEW IMAGE OR NOT?

Page 34: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating NodesShade, Lischinski, Salesin, DeRose, Snyder

UpdateNode(node, viewpoint)if viewpoint is inside node then

if node is a leaf thennode.status DRAW GEOMETRY

elsenode.status RECURSE

returnk EstimateCacheLifeSpan(node, viewpoint)amortizedCost (cost to create cache) / k + (cost to draw cache)if (amortizedCost < (cost to draw contents) then

CreateCache(node, viewpoint)node.status DRAW CACHEnode.drawingCost (cost to draw cache)

elseif node is a leaf then

node.status DRAW GEOMETRYnode.drawingCost (cost to draw geometry)

elsenode.status RECURSEnode.drawingCost node.back.drawingCost + node.front.drawingCost

Page 35: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Updating NodesShade, Lischinski, Salesin, DeRose, Snyder

UpdateNode(node, viewpoint)if viewpoint is inside node then

if node is a leaf thennode.status DRAW GEOMETRY

elsenode.status RECURSE

returnk EstimateCacheLifeSpan(node, viewpoint) HOW TO ESTIMATE LIFE

SPAN?amortizedCost (cost to create cache) / k + (cost to draw cache)if (amortizedCost < (cost to draw contents) then

CreateCache(node, viewpoint)node.status DRAW CACHEnode.drawingCost (cost to draw cache)

elseif node is a leaf then

node.status DRAW GEOMETRYnode.drawingCost (cost to draw geometry)

elsenode.status RECURSEnode.drawingCost node.back.drawingCost + node.front.drawingCost

Page 36: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Estimating Impostor Life SpanShade, Lischinski, Salesin, DeRose, Snyder

• Approximate the safety zone around current viewpoint.

Page 37: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Estimating Impostor Life SpanShade, Lischinski, Salesin, DeRose, Snyder

• Approximating safety zone for a leaf node– Evaluate d for each corner of node’s bounding

volume.– Let r be the smallest such d.– Set the safety zone to be the axis-aligned

cube inscribed inside a sphere of radius r around current viewpoint.

Page 38: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Estimating Impostor Life SpanShade, Lischinski, Salesin, DeRose, Snyder

• Approximating safety zone for an interior node.– Compute safety zone Z using the bounding

box of the node.– Intersect Z with the safety zones of the node’s

children

Page 39: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Main Algorithm Differences

• Shade et al.– View frustum culling– Cost-benefit analysis for cache update

• Schaufler, Sturzlinger– No view frustum culling– No cost-benefit analysis for cache update

• Replace invalid impostors with new ones no matter what

Page 40: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Questions so far?Method Overview

• Partition scene into a tree(BSP-tree or k-d-tree)

• For each frame:– First traversal of tree

• Cull nodes outside of the view frustum (optional)• Update the cached impostors of visible nodes

– Second traversal of tree• Render scene into framebuffer, back to front

Page 41: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

• Silicon Graphics Indigo2 workstation– 250 MHz R4400 processor– 320 MB RAM– Maximum Impact graphics board with 4 MB

texture memory

• Outdoor Scene (island forest)– 1117 willow trees– 40,599,982 triangles

Page 42: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Page 43: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Page 44: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Page 45: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

• BSP-tree Preprocessing– 46 seconds construction time– No splitting of trees, only terrain is split– 13 levels, 1072 leaf nodes– 150 MB storage space

• Walkthroughs– 640 x 480 frame resolution– 2 pixel error threshold

Page 46: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Actual geometry Image cache 2 pixel error threshold

Page 47: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Actual geometry Image cache 8 pixel error threshold

Page 48: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Actual geometry Image cache 2 pixel error threshold

Page 49: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Actual geometry Image cache 8 pixel error threshold

Page 50: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Page 51: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsShade, Lischinski, Salesin, DeRose, Snyder

Page 52: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

• INDIGO R3000– 39k triangles per second– No hardware support for texture mapping

• One cache update visualization

• Two performance tests

Page 53: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

Cache update visualization• Diagonal walkthrough of some complex scene

• k-d-tree preprocessing– 341 bounding boxes

• 256 x 256 maximum texture resolution

• Impostor updates for every 6th frame of 120 frames shown…

Page 54: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

Cache update visualization

Page 55: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

Page 56: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

• Two performance tests– Make up for hardware insufficiencies

• 1st test: Render at a small screen resolution• 2nd test: Replace each textured polygon with two

gouraud shaded polygons

– Sideward translation in front of forest (100 frames)

– Zoom from one corner of forest towards its center (100 frames)

– 1 pixel threshold

Page 57: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

• Procedurally generated forest scene– 100 trees– Approximately 105000 polygons

• k-d-tree preprocessing– Max depth of 4– 585 bounding boxes

Page 58: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

Page 59: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Tests and Analysis of ResultsSchaufler, Sturzlinger

Page 60: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Comments on Papers• Shade et al.

– Relatively thorough explanation of proposed method

– No justification of formulas for calculating cached image life expectancy.

• Schaufler, Sturzlinger– Insufficient explanation of testing procedure– Confusing graphs

Page 61: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary

Page 62: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 63: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 64: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 65: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 66: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 67: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 68: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Summary• Hierarchical image caching

– Impostors are cheap mimics of complex 3d geometry.• Take advantage of path coherence

– Caching impostors hierarchically further saves rendering time• Allows generation of impostors from children impostors

– Scene partitions are disjoint and does not rely on object groupings• Able to handle intersecting objects

• Automatic cache update control using error metric based on angular discrepancy

• Improved frame rates for large, complex static scenes

• Following work impacted by the insight that large and complex geometry can be efficiently rendered by hierarchically caching cheap representations

Page 69: Image-Based Techniques Hierarchical Image Caching Michael Chung.

Questions?