interruptible rendering
Download
Skip this Video
Download Presentation
Interruptible Rendering

Loading in 2 Seconds...

play fullscreen
1 / 38

Interruptible Rendering - PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on

Interruptible Rendering. Master’s Project Presentation Cliff Woolley University of Virginia. Joint work with: David Luebke * Benjamin Watson† Abhinav Dayal†. Originally presented at: ACM SIGGRAPH 2003 Symposium on Interactive 3D Graphics . * University of Virginia

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Interruptible Rendering' - slone


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
interruptible rendering

Interruptible Rendering

Master’s Project Presentation Cliff WoolleyUniversity of Virginia

Joint work with:

David Luebke *

Benjamin Watson†

Abhinav Dayal†

Originally presented at:ACM SIGGRAPH 2003Symposium on Interactive 3D Graphics

* University of Virginia

† Northwestern University

slide2
Motivation

Interruptible Rendering

balance complexity with interactivity
Balance complexity with interactivity
  • Age-old tradeoff: detail vs. frame rate
  • Typical approach:
    • Maintain a high, constant frame rate
    • Create a mesh that can always be rendered in time

Interruptible Rendering

improve on traditional lod
Improve on traditional LOD
  • Is a high, constant frame rate good enough?
  • Is fidelity ever more important than frame rate?
  • How can this be decided at runtime while still guaranteeing interactivity?

Interruptible Rendering

error metric unification
Error metric unification
  • Inspired by [Meruvia 2000]
  • Combine notions of temporal and spatial error (i.e. “lateness” vs. “coarseness”)
  • Use to drive progressive refinement

Interruptible Rendering

unified error metrics
Unified error metrics
  • With interruptible rendering, we address this key question:

At what point does further refinement of the current frame become pointless?

Interruptible Rendering

slide7
Methodology

Interruptible Rendering

methodology
Methodology
  • Refine a stream of continuous LODs
  • Monitor input frequently
  • Minimize dynamic visual error

Interruptible Rendering

refine a stream of continuous lods
Refine a stream of continuous LODs
  • Render progressive refinements on top of each other until “out of time”
  • Ensure that we can stop refining at any time and move on to the next frame

Interruptible Rendering

refinement
Refinement
  • Three refinement schemes implemented:
    • Splatting (Tech sketch, SIGGRAPH 2002)
    • Progressive polygonal hulls
    • Progressive ray casting (Abhinav Dayal, I3D 2003)
  • Will work with any progressive rendering scheme

Interruptible Rendering

progressive hull refinement
Progressive hull refinement
  • Start with a very coarse rendering
  • Progressively render refinement stream over top of the coarse image

Interruptible Rendering

progressive hulls
Progressive hulls
  • Simplification method by [Sander et al. 2000]
  • Record a sequence of constrained edge collapses and play it back in reverse
  • Guarantees containment

V3

V2

Vn

V1

V4

Interruptible Rendering

progressive hulls13
Progressive hulls

V4

V1

V2

V3

Vn

Interruptible Rendering

progressive hulls14
Progressive hulls

Interruptible Rendering

monitor input frequently
Monitor input frequently
  • Ideally: input monitored continuously
  • Realistically: check every x ms
  • Allows quick reaction when sudden changes in input occur
  • Allows system to be self-tuning

Interruptible Rendering

minimize dynamic visual error
Minimize dynamic visual error
  • Always display image with least error
  • Sometimes:
    • Further refinement is pointless
      • Temporal error (lateness) exceeds spatial error (coarseness) for the current frame
    • Front buffer “out of date”
      • Dynamic visual error (spatial + temporal) in front is greater than in the back

Interruptible Rendering

calculating dynamic visual error
Calculating dynamic visual error
  • Spatial error
    • Screen-space size of coarsest geometry visible
  • Temporal error
    • Project bounding box of object in screen-space
    • Find the maximum screen-space distance any corner has moved since frame began

Interruptible Rendering

slide18

Start refining a new image toward

most current input in the back buffer.

clear back buffer

Iback = Icurrent

Clear the back buffer

start

start

clear front buffer

Ifront = Icurrent

Clear the

front buffer

Refine the current image in the

back buffer.

improve iback

tback = Icurrent – Iback

sback = Iback – iback

Refine the back buffer

Refine the current image

in the front buffer.

improve ifront

tfront = Icurrent – Ifront

sfront = Ifront – ifront

Refine the

front buffer

tback > sback?

no

yes

time

time

tb > sb?

N

Y

tfront = Icurrent – Ifront

efront = sfront + tfront

eback = sback + tback

It is pointless to

continue refining.

swap buffers

Ifront = Iback

sfront = sback

Compute

dynamic

visual error

Swap buffers

tfront > sfront?

efront >= eback?

no

yes

no

yes

tf > sf?

N

Y

ef >= eb?

N

Y

Back buffer now closer to Icurrent than front is.

swap buffers

Ifront = Iback

Swap buffers

Rendering to Front Buffer

Rendering to Back Buffer

Rendering to Front Buffer

Rendering to Back Buffer

slide19
Evaluation

Interruptible Rendering

gold standard evaluation
“Gold Standard” evaluation
  • Compares an ideal rendering to interactive approximations
  • Ideal rendering: full detail, zero delay
  • Interactive approximations are
    • Unmanaged
    • Constant fidelity (in pixels)
    • Constant frame rate (fixed Hz)
    • Interruptible rendering

Interruptible Rendering

frame generation
Frame generation
  • Record what the user sees and when
    • Generate each approximation offline
    • Record actual frames displayed over time
  • Account for:
    • Render time
    • Double buffering
    • Frame locking
    • Rendering into front buffer (interruptible)

Interruptible Rendering

comparing frames
Comparing frames
  • Error measures
    • RMS – Root Mean Square error
    • Lindstrom\'s perceptually based error

Difft = Idealt - Renderedt

Interruptible Rendering

two test input streams
Two test input streams
  • Rotation
    • Model-centered
    • Fixed angular velocity
  • User interaction
    • Includes both view translation and rotation
    • Includes both static and dynamic segments
  • Both input streams recorded to files, with timestamps

Interruptible Rendering

interaction sequence ray caster
Interaction sequence: ray caster

42

45

54

57

Frames:

33

36

39

48

51

60

Ideal

Inter-ruptible

Constant

Fidelity

Un-managed

video
Video

Interruptible Rendering

slide26

Rotation input stream

Interactive input stream

Progressive hulls

error(rms)

error(rms)

time(secs)

time(secs)

Ray casting

error(rms)

error(rms)

time(secs)

time(secs)

constant frame rate

constant fidelity

interruptible

unmanaged

slide27
Demo

Interruptible Rendering

slide28
Conclusions

Interruptible Rendering

benefits
Benefits
  • Accuracy
    • Balancing spatial and temporal error
  • Interactivity
    • Slow renderers, like ray caster
    • Large models
  • Self-tuning feedback system
    • Adapts to hardware

Interruptible Rendering

limitations
Limitations
  • Overdraw in progressive renderer
    • Progressive ray caster better here
  • Cost of monitoring temporal error
  • Rendering immersive models
    • Requires reversing the containment criteria for polygon rendering
    • Not a problem for ray caster

Interruptible Rendering

future work
Future work
  • Temporal & spatial error
    • Better estimates of each (e.g. color)
    • Better comparisons of both
  • Textures, normal maps, etc.
  • Reducing overdraw
  • View-dependent refinement
  • Ray tracing: a promising candidate

Interruptible Rendering

acknowledgements
Acknowledgements
  • Peter Lindstrom for ltdiff
  • OpenRT Interactive Raytracing Project
  • Stanford 3D Scanning Repository
  • National Science Foundation
    • Awards 0092973, 0093172, and 0112937

Interruptible Rendering

slide33
Questions?

Interruptible Rendering

progressive ray casting
Progressive ray casting
  • Progressive refinement
    • Coarse to fine sampling/reconstruction
  • Sampling
    • Where to shoot the ray
      • Adaptive
      • Non-adaptive
  • Reconstruction
    • Producing imagery from samples

Interruptible Rendering

sampling
Sampling
  • Coarse to fine - quadtree approach
    • Sample every quadtree node\'s center
    • Breadth first traversal
    • Predetermined random traversal per level
  • Ray casting – using OpenRT
    • Per ray API ~ 600,000 rays per sec.
    • Simple phong shading
    • No shadows or specular highlights

Interruptible Rendering

reconstruction
Reconstruction
  • Placement
    • Place splat at center of each quadtree node
  • Shading
    • Flat shaded quad covering the node\'s screen space
    • Alpha-textured quads (smooth reconstruction)
      • Quad size = twice of node\'s screen space
      • Texture: Gaussian blob
        • Transparent at edges
        • Opaque at center

Interruptible Rendering

slide37

Alpha textured

Flat shaded

Interruptible Rendering

calculating dynamic visual error38

Spatial error

Calculating dynamic visual error
  • Temporal error
    • Computed as in case of polygonal hulls
  • Spatial error
    • Diagonal length of the largest quadtree node displayed on the screen

Interruptible Rendering

ad