Download presentation
Presentation is loading. Please wait.
Published byFrank McKenzie Modified over 9 years ago
1
Originally presented at: ACM SIGGRAPH 2003 Symposium on Interactive 3D Graphics Interruptible Rendering Joint work with: David Luebke * Benjamin Watson† Abhinav Dayal† * University of Virginia † Northwestern University Master’s Project Presentation Cliff Woolley University of Virginia
2
4/30/2003 Interruptible Rendering2 Motivation
3
4/30/2003 Interruptible Rendering3 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
4
4/30/2003 Interruptible Rendering4 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?
5
4/30/2003 Interruptible Rendering5 Error metric unification Inspired by [Meruvia 2000] Combine notions of temporal and spatial error (i.e. “lateness” vs. “coarseness”) Use to drive progressive refinement
6
4/30/2003 Interruptible Rendering6 Unified error metrics With interruptible rendering, we address this key question: At what point does further refinement of the current frame become pointless?
7
4/30/2003 Interruptible Rendering7 Methodology
8
4/30/2003 Interruptible Rendering8 Methodology Refine a stream of continuous LODs Monitor input frequently Minimize dynamic visual error
9
4/30/2003 Interruptible Rendering9 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
10
4/30/2003 Interruptible Rendering10 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
11
4/30/2003 Interruptible Rendering11 Start with a very coarse rendering Progressively render refinement stream over top of the coarse image Progressive hull refinement
12
4/30/2003 Interruptible Rendering12 Progressive hulls Simplification method by [Sander et al. 2000] Record a sequence of constrained edge collapses and play it back in reverse Guarantees containment V1V1 VnVn V4V4 V3V3 V2V2
13
4/30/2003 Interruptible Rendering13 V1V1 VnVn V4V4 V3V3 V2V2 Progressive hulls
14
4/30/2003 Interruptible Rendering14 Progressive hulls
15
4/30/2003 Interruptible Rendering15 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
16
4/30/2003 Interruptible Rendering16 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
17
4/30/2003 Interruptible Rendering17 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
18
clear front buffer I front = I current start Refine the current image in the front buffer. improve i front t front = I current – I front s front = I front – i front Refine the current image in the back buffer. improve i back t back = I current – I back s back = I back – i back Start refining a new image toward most current input in the back buffer. clear back buffer I back = I current Back buffer now closer to I current than front is. swap buffers I front = I back It is pointless to continue refining. swap buffers I front = I back s front = s back e front >= e back ? noyes no t front > s front ? yesno t back > s back ? Rendering to Back BufferRendering to Front Buffer time t front = I current – I front e front = s front + t front e back = s back + t back Clear the front buffer start Refine the front buffer Refine the back buffer Clear the back buffer Swap buffers e f >= e b ? NY YN t f > s f ? YN t b > s b ? Rendering to Back BufferRendering to Front Buffer time Compute dynamic visual error
19
4/30/2003 Interruptible Rendering19 Evaluation
20
4/30/2003 Interruptible Rendering20 “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
21
4/30/2003 Interruptible Rendering21 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)
22
4/30/2003 Interruptible Rendering22 Comparing frames Error measures RMS – Root Mean Square error Lindstrom's perceptually based error Diff t = Ideal t - Rendered t
23
4/30/2003 Interruptible Rendering23 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
24
Ideal Inter- ruptible Un- managed Frames: Interaction sequence: ray caster Constant Fidelity 33 5754 5148 4542 393660
25
4/30/2003 Interruptible Rendering25 Video
26
Interactive input stream Rotation input stream Ray casting Progressive hulls error(rms) time(secs) constant fidelity unmanaged constant frame rate interruptible
27
4/30/2003 Interruptible Rendering27 Demo
28
4/30/2003 Interruptible Rendering28 Conclusions
29
4/30/2003 Interruptible Rendering29 Benefits Accuracy Balancing spatial and temporal error Interactivity Slow renderers, like ray caster Large models Self-tuning feedback system Adapts to hardware
30
4/30/2003 Interruptible Rendering30 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
31
4/30/2003 Interruptible Rendering31 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
32
4/30/2003 Interruptible Rendering32 Acknowledgements Peter Lindstrom for ltdiff OpenRT Interactive Raytracing Project Stanford 3D Scanning Repository National Science Foundation Awards 0092973, 0093172, and 0112937
33
4/30/2003 Interruptible Rendering33 Questions?
34
4/30/2003 Interruptible Rendering34 Progressive ray casting Progressive refinement Coarse to fine sampling/reconstruction Sampling Where to shoot the ray Adaptive Non-adaptive Reconstruction Producing imagery from samples
35
4/30/2003 Interruptible Rendering35 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
36
4/30/2003 Interruptible Rendering36 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
37
4/30/2003 Interruptible Rendering37 Flat shaded Alpha textured
38
4/30/2003 Interruptible Rendering38 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 Spatial error
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.