Interactive Rendering using the Render Cache
-
Upload
ann-hopkins -
Category
Documents
-
view
62 -
download
0
description
Transcript of Interactive Rendering using the Render Cache
![Page 1: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/1.jpg)
Interactive Rendering using the Render Cache
Bruce Walter, George DrettakisiMAGIS*-GRAVIR/IMAG-INRIA
Steven ParkerUniversity of Utah
*iMAGIS is a joint project of CNRS/IMAG/INRIA and UJF
![Page 2: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/2.jpg)
Motivation
Goal: Interactive rendering
Ray tracing Path tracing
![Page 3: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/3.jpg)
Motivation
High-quality renderers• Pixel based
- Ray tracing, path tracing, etc.
• Wide range of lighting effects- Reflection, refraction, global illumination, etc.
• Too slow for interactive use- Many seconds per image
- Often used only for final images
- Alternate renderers used for interactive editing
![Page 4: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/4.jpg)
Motivation
Interactive rendering• Rapid feedback is paramount
- High accuracy is less important
• Fast consistent framerate- Eg, > 5 fps
- Could use faster renderer• Eg, hardware accelerated scan conversion
• Use same renderer- Need to bridge framerate gap
![Page 5: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/5.jpg)
Visual Feedback Loop
Standard visual feedback loop• Entirely
synchronous• Framerate is
limited by the renderer
renderer
application
image
user
![Page 6: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/6.jpg)
Visual Feedback Loop
Modified visual feedback loop
display
application
image
userrenderer
Asynchronousinterface
![Page 7: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/7.jpg)
Goals
Independent display process• Works with many (pixel-based) renders
Exploit frame to frame coherence• Reproject pixels from previous frames
Fast consistent framerate• Use simple, fast methods
Concentrate rendering effort• Prioritize pixel’s need for recomputation
![Page 8: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/8.jpg)
Demo
![Page 9: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/9.jpg)
Previous Work
Approximate or progressive approaches• Progressive radiosity or ray tracing• Frameless rendering
Reprojection or warping• Image based rendering (IBR)• Ray tracing acceleration
![Page 10: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/10.jpg)
Previous Work
Parallel processing• Multiprocessors or distributed clusters
Intelligent display processes• Post-rendering warp• Holodeck system
![Page 11: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/11.jpg)
Algorithm Overview
renderer
renderer
image
Rendercache
interpolate
sampling
depth cull
project
Display process
![Page 12: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/12.jpg)
Image Estimation
Projection• Project cached points onto current image
- Camera transform provided by application
• Z-buffer- In case multiple points map to a pixel
![Page 13: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/13.jpg)
Image Estimation
Problem: visual artifacts
Original view New view
![Page 14: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/14.jpg)
Image Estimation
Depth cull heuristic• Problem: occluded points may be visible
- Z-buffering only works within a pixel
• Find pixels with locally inconsistent depths- Likely to be from different occluding surfaces
Raw projection After depth cull
![Page 15: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/15.jpg)
Image Estimation
Interpolation / smoothing• Problem: small gaps in point data• Interpolate pixel colors
- Compute locally-weighted average colors
- Currently uses 3x3 neighborhoods
After interpolationAfter depth cullRaw projection
![Page 16: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/16.jpg)
Image Estimation
Results after each stage
Projection Depth cull Interpolation
![Page 17: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/17.jpg)
Image Estimation
Problem: visual artifacts• Simple filter can remove many artifacts
Need new points from renderer• Previously invisible areas• Color changes due to non-diffuse shading
- Eg,specular highlights
• Changes due to user editing- Changes in lighting, geometry, materials
![Page 18: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/18.jpg)
Sampling
Generate priority image• Based on pixel’s need for re-rendering• Priority given to pixels with older points
- Render cache stores an age with each point
• Empty pixels priority based on local density- Highest priority given to regions without points
![Page 19: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/19.jpg)
Sampling
Choose pixels for rendering• Sampling must be sparse
- Relatively few pixels are rendered per frame
• Chosen using error-diffusion dither- Concentrates pixels in high priority regions
- Maintains good spatial distribution
• Requested pixels sent to renderer(s)- Results returned at some later frame
![Page 20: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/20.jpg)
Sampling
Displayed image Priority image Requested pixels
![Page 21: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/21.jpg)
Optimizations
Further prioritizing sampling• Identify points that are likely to be outdated
- Color change heuristic
- Renderer supplied hints
• Prematurely age these points- Forces sooner resampling of these points
![Page 22: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/22.jpg)
Optimizations
Moving objects• Application can supply object transforms• Applied to points in the render cache
- Improves tracking of moving objects
- Points also aged to encourage resampling
![Page 23: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/23.jpg)
Demo
![Page 24: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/24.jpg)
Results
Timing: 70.5 ms or 14 fps• 256x256 image, display process only• 195 Mhz R10K processor
Other(10%)
Point projection(47%)
Depth cull(12%)
Interpolation(20%)
Request new samples(8%)
Update render cache(4%)
![Page 25: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/25.jpg)
Conclusions
Greatly improved interactivity• Eg, ray tracing, path tracing
Efficient reuse of rendered pixels• Using reprojection and simple filters
Prioritized sparse sampling• Efficently uses limited rendering budget
Independent automatic display process• Can be used with many different renderers
![Page 26: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/26.jpg)
Future Work
Larger images• Cost scales linearly with # of pixels
Higher render ratios• Currently work well out to about 1:64
Anti-aliasing
![Page 27: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/27.jpg)
The End
![Page 28: Interactive Rendering using the Render Cache](https://reader030.fdocuments.net/reader030/viewer/2022033022/5681304a550346895d95f60f/html5/thumbnails/28.jpg)
Overview
Cache rendered results• Stored as colored points in 3D
Estimate current image• Project points onto current image plane• Filter to reduce artifacts
Prioritize future rendering• Identify problem pixels• Sparse sampling for limited render budget