Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU...
Transcript of Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU...
![Page 1: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/1.jpg)
Visual Computing SystemsCMU 15-869, Fall 2013
Lecture 12:
The Reyes Rendering Architecture
![Page 2: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/2.jpg)
CMU 15-869, Fall 2013
A gallery of images rendered using Reyes
![Page 3: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/3.jpg)
CMU 15-869, Fall 2013Image credit: Lucas!lm (Adventures of Andre and Walle B, 1984)
![Page 4: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/4.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (Luxo Jr., 1986)
![Page 5: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/5.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (Toy Story 2, 1999)
![Page 6: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/6.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (Wall-E, 2008)
![Page 7: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/7.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (Ratatouille, 2007)
![Page 8: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/8.jpg)
CMU 15-869, Fall 2013Image credit: Pixar (UP, 2009)
![Page 9: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/9.jpg)
CMU 15-869, Fall 2013Image credit: Pixar (UP, 2009)
![Page 10: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/10.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (UP, 2009)
![Page 11: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/11.jpg)
CMU 15-869, Fall 2013Image credit: Pixar (UP, 2009)
![Page 12: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/12.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (UP, 2009)
![Page 13: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/13.jpg)
CMU 15-869, Fall 2013
Image credit: Pixar (Toy Story 3, 2010)
![Page 14: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/14.jpg)
CMU 15-869, Fall 2013
The Reyes image rendering architecture▪ Reyes: acronym for Renders Everything You Ever Saw
- Also a reference to Pt. Reyes, CA (just north of San Francisco)- Disagreement in graphics community about whether it is written Reyes or REYES.
(Rob Cook says it’s “Reyes”)
▪ Developed at Lucas!lm (graphics group later became Pixar)
▪ Pixar’s implementation is called Photorealistic Renderman (prman)- Renderman name was a take off on the Sony Walkman
▪ Rendering system for every Pixar !lm- And vast majority of other studio’s special effects
![Page 15: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/15.jpg)
CMU 15-869, Fall 2013
Reyes goals▪ High image quality: no visible faceting or aliasing
▪ Handle massive scene complexity
▪ Support large diversity in models, materials (shading)
▪ High performance: achieve all of the above in “reasonable” rendering time (minutes/hours frame)
![Page 16: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/16.jpg)
CMU 15-869, Fall 2013
Canonical Reyes pipeline
Vertex Shade
Primitive Bound
Primitive Split
Rasterization
Frame-Buffer Ops
Primitive Dice
“Hider”
Primitives(e.g., parametric patch, sphere)
Micropolygon Grid
Shaded Micropolygon Grid(vertices displaced)
Visible points
Frame Buffer
![Page 17: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/17.jpg)
CMU 15-869, Fall 2013
De!nitions▪ Micropolygon = canonical intermediate representation in the Reyes
pipeline. Expectation is that projected polygon area <= 1 pixel ▪ Grid = micropolygon mesh corresponding to contiguous surface region▪ Reyes pipeline state de!nes:
- Target micropolygon area (typically 1/4 to 1 pixels)- Maximum number of micropolygons in a grid (typically ~256)
![Page 18: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/18.jpg)
Micropolygons(note: here I’m showing triangle micropolygons, but for this lecture I usually refer to micropolygons as quads)
(one pixel)
![Page 19: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/19.jpg)
CMU 15-869, Fall 2013
Tessellation
![Page 20: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/20.jpg)
CMU 15-869, Fall 2013
Tessellating primitives into micropolygon grids
▪ Goals- Want micropolygons all about the same size- Want projected micropolygon areas to closely match target size - Ideally, grids should be reasonably large (close to max grid size)
▪ Reyes tessellation- Lane-Carpenter algorithm (often referred to as “split-dice”)
![Page 21: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/21.jpg)
Patch viewed from camera
Uniform patch tessellation is insufficient
Polygons too large: poor quality
Too many polygons: poor performance
Uniform partitioning of patch(parametric domain)
u
v
![Page 22: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/22.jpg)
Patch parametric domain Patch viewed from camera
Split-dice adaptive tessellation
u
v
[Lane 80]
![Page 23: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/23.jpg)
Patch parametric domain Patch viewed from camerau
v
Split-dice adaptive tessellation [Lane 80]
![Page 24: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/24.jpg)
Patch parametric domain Patch viewed from camerau
v
Split-dice adaptive tessellation [Lane 80]
![Page 25: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/25.jpg)
CMU 15-869, Fall 2013
Reyes primitive interfaceclass Primitive
{
BBox3D bbox();
bool canDice();
List<Primitive> split();
Grid dice();
};
Split partitions primitive into one or more child primitivesSplit may generate child primitives of a different type
Note: bbox is expanded by renderer to account for primitive motion over the frame (motion blur), surface displacement, etc.
![Page 26: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/26.jpg)
CMU 15-869, Fall 2013
Interesting implications of split
▪ Splitting also enables clipless rasterization (see Reyes paper)
▪ Encapsulates adaptivity (keep dicing operation simple, regular, and fast)
▪ Divide and conquer algorithm:- Micropolygon generation order exhibits high spatial locality (recall hierarchical rasterization)- Provides temporal stability
▪ Splitting implicitly creates a hierarchy of grids- Very useful for frustum/depth culling at largest possible granularity- Use bbox to cull primitives prior to dicing (or prior to unnecessary splitt
![Page 27: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/27.jpg)
CMU 15-869, Fall 2013
Shading
![Page 28: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/28.jpg)
CMU 15-869, Fall 2013
Reyes shades micropolygon grid vertices▪ Reyes invokes the shading function once for each grid vertex
- Shading function de!ned using Renderman Shading Language (RSL) ***- Shading function computes surface appearance at vertex- Shading function may also reposition vertex (displacement)
*** See shading languages lecture
![Page 29: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/29.jpg)
CMU 15-869, Fall 2013
Micropolygon mesh: before displacement
![Page 30: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/30.jpg)
CMU 15-869, Fall 2013
Micropolygon mesh: after displacement (Noise function used to compute displacement amount.)
![Page 31: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/31.jpg)
CMU 15-869, Fall 2013
Why operate on grids?▪ Execution coherence
- All vertices on grid shaded with same shader- Permits SIMD implementation
▪ Locality- Grid is contiguous region of surface: shading points together increases texture locality
▪ Compact representation- For regular (tensor product) grid, topology is implicit (do not need to store polygon adjacency)- Quad micropolygon grid: each interior vertex shared by four micropolygons
▪ Connectivity leveraged to compute derivatives in shaders- Can compute higher order derivatives
▪ Preserve hierarchy- Allows per-grid operations, in addition to per micropolygon or per-vertex- Useful for culling, etc.
![Page 32: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/32.jpg)
CMU 15-869, Fall 2013
Hiding(visibility and occlusion)
![Page 33: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/33.jpg)
CMU 15-869, Fall 2013
Hiding micropolygons (rasterization + occlusion)
Note: many visibility samples per pixel to eliminate aliasing
Option 1: micropolygon is $at shaded (apply color from one vertex to sample)
![Page 34: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/34.jpg)
CMU 15-869, Fall 2013
Hiding micropolygons (rasterization + occlusion)
Note: many visibility samples per pixel to eliminate aliasing
Option 2: interpolate per-vertex colors
![Page 35: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/35.jpg)
CMU 15-869, Fall 2013
Aside: interesting sampling question▪ Reyes samples surface appearance uniformly in surface parametric space (within in grid)
- Uniform in parametric space ≃ uniform in object space, but not uniform in screen space due to projection
- Textures !ltered using object-space surface derivatives
▪ Surface is projected, and then appearance is resampled uniformly in screen space at visibility sample points
▪ OpenGL/Direct3D pipeline samples surface appearance uniformly in screen space
- Textures !ltered using screen-space surface derivatives
Is there a preferred solution? (not well understood)Consider:High frequency surface appearance: due to bumpy geometry, due to high frequency textureSurfaces at grazing angles to camera (near silhouettes)What is lost in resampling step?
![Page 36: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/36.jpg)
CMU 15-869, Fall 2013
Motion blur
![Page 37: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/37.jpg)
Moving micropolygon
x
y
t Common simpli!cation: linear motion for duration of virtual camera exposure
![Page 38: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/38.jpg)
X,T plane (visibility samples distributes in space and time)t
x
1 pixel
![Page 39: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/39.jpg)
X,T plane
xMotion blur + defocus: 5D point-in-polygon tests (XY, T, lens UV)
t
![Page 40: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/40.jpg)
Candidate visibility samplest
x
![Page 41: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/41.jpg)
Tighter bounds (4 time intervals)
x
t
![Page 42: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/42.jpg)
Tighter bounds (4 time intervals)
x
t
B0
B1
B2
B3
![Page 43: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/43.jpg)
Slow motion = tight bounds
xB0
t
![Page 44: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/44.jpg)
Fast motion = loose bounds
xB0
t
![Page 45: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/45.jpg)
CMU 15-869, Fall 2013
Stochastic rasterization resultsWhite ball moving rapidly across screen
(movies shown in class)
![Page 46: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/46.jpg)
CMU 15-869, Fall 2013
Stochastic rasterization resultsWhite ball moving rapidly across screen
(movies shown in class: see web site)
![Page 47: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/47.jpg)
CMU 15-869, Fall 2013
Stochastic sampling for motion blur (and defocus blur)▪ Need high visibility sampling rates to remove noise in renderings with
large motion blur, or camera defocus▪ 64 - 128 visibility samples per pixel common in !lm rendering
- Large frame buffer!
![Page 48: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/48.jpg)
CMU 15-869, Fall 2013
Transparent surfaces
100% opaque, red
75% opaque, blue
25% opaque, green
composited result = 0.25 * green + .75 * ( .75 * blue + .25 * red)
OpenGL/Direct3D solution relies on pipeline ordering semantics:Application sorts surfaces, renders surfaces back-to-front ***Set frame-buffer blend mode:frag.alpha * frag.color + (1-‐frag.alpha) * fb_color
*** front-to-back rendering solution exists as well
![Page 49: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/49.jpg)
CMU 15-869, Fall 2013
Transparency when using Z-buffer for occlusion
▪ Application sorting is a pain
▪ Depth sort order not well de!ned with triangles (interpenetration), let alone complex Reyes primitives
▪ Further complicated by motion blur
![Page 50: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/50.jpg)
CMU 15-869, Fall 2013
A-buffer▪ Store list of “visible points” at each visibility sample
- visible point = {rgb, alpha, z}
▪ When frame rendering is complete:For each sample:
Sort visible points in list by Z
Blend front-‐to-‐back (or back-‐to-‐front)
▪ Provides primitive order-independent solution for rendering transparency ▪ Cost: variable storage per visibility sample▪ Many optimizations to prune list as rendering proceeds
- e.g., don’t need to add visible points behind an opaque point in the list
[Carpenter 84]
![Page 51: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/51.jpg)
CMU 15-869, Fall 2013
Reyes A-buffer▪ Many visibility samples per pixel (recall: 64-128)▪ Many visible points per sample (under conditions of
signi!cant transparency)
1920x1080 rendering (1080p)64 visibility samples per pixel4 visible points per sample (rgb,a,z)
~10 GB A-buffer !!!
![Page 52: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/52.jpg)
CMU 15-869, Fall 2013
Reyes implementations use bucketing▪ Recall “sort middle tiled chunked” (assignment 1)▪ Motivation here is to keep the A-buffer for a bucket in memory
(previously we discussed how some implementations of OpenGL use a similar sorting scheme to: gain parallelism, keep a tile of frame-buffer on chip)
for each primitive, place in screen bucket
for each bucket
allocate G-‐buffer for bucket
for each primitive
split-‐dice to create grids // each split, cull primitives falling outside of bucket
shade + hide grids
for each bucket g-‐buffer sample
composite visible points
![Page 53: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/53.jpg)
CMU 15-869, Fall 2013
Reyes summary▪ Key algorithms
- High quality, split-dice tessellation- Shades per-vertex, prior to rasterization- Visibility via stochastic point sampling to simulate motion blur, camera defocus- Correct rendering of transparent surfaces via the A-buffer
▪ Key system concepts - Micropolygons: common intermediate representation for all primitive types- Micropolygon grids for locality and SIMD shading- Bucketed rendering to !t tiles of A-buffer in memory (high depth complexity due to
transparency and high visibility sampling rates)(not discussed today: lots of smarts in a performant Reyes implementation to keep working set in memory)
![Page 54: Lecture 12: The Reyes Rendering Architecturegraphics.cs.cmu.edu/courses/15869/fall2013content/...CMU 15-869, Fall 2013 The Reyes image rendering architecture Reyes: acronym for Renders](https://reader036.fdocuments.net/reader036/viewer/2022071100/5fd8c75bc9d159261659e27a/html5/thumbnails/54.jpg)
CMU 15-869, Fall 2013
Readings▪ The Reyes Image Rendering Architecture. R. Cook et al.
SIGGRAPH 1987