1 / 13

Real-time REYES

Real-time REYES. Jeremy Sugerman. This Talk. Still exploring future GPUs, Direct3D / GL This time in a software context Offline REYES, as RenderMan, is king of the rendering world What would real-time REYES look like?

kellsie
Download Presentation

Real-time REYES

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Real-time REYES Jeremy Sugerman

  2. This Talk • Still exploring future GPUs, Direct3D / GL • This time in a software context • Offline REYES, as RenderMan, is king of the rendering world • What would real-time REYES look like? • Where are current GPUs / Direct3D and REYES the same? Similar? Different?

  3. Background • “The Reyes Image Rendering Architecture” • Pixar: Rob Cook, Loren Carpenter, Ed Catmull • SIGGRAPH 1987, First film 1985, Oscar 1993 • “An architecture optimized for fast high-quality rendering of complex animated scenes.” • Fast: feature-length film in a year • High-Quality: virtually indistinguishable from live action • Complex: as visually rich as real scenes.

  4. REYES Features • Primitives are smooth surfaces • Automatic, adaptive refinement • Programmable shading including displacement • On surface-space grids • Very high resolution geometry for visibility • After shading • Stochastic sampling in time, space, lens • Motion-blur, anti-aliasing, depth of field • Order-independent (depth sorted) blending • Wide pixel reconstruction filtering

  5. Multiple Primitives Bound Split Primitives Dice Primitives Unshaded Grids Shade Shaded Grids Bust & Bound Micropolygons Sample Visible Points Blend & Filter Basic REYES Pipeline Parallel scalability is added with screen-space bucketing computed during the Bounding and Splitting. Deferring Dicing also allows each bucket to be depth-sorted and occlusion culled.

  6. REYES on a GPU? • If you squint at it right… ‘Grids of micropolygons’ → ‘quads’ ‘Displace and shade’ → ‘shade vertices’(*) ‘Bust & bound, sample’ → ‘rasterize’(*) ‘Blend & filter’ → ‘blend & filter’(*) • Technically, OpenGL even includes implicit surface (NURBS) evaluators, but there is no serious support in (current) GPUs.

  7. Opaque GPU-REYES • Tesselate to grids in advance (CPU, cache, …) • Render grids as GL_QUADS • Displace, shade grids with a vertex shader • Cull, sample, and produce visible points with the rasterizer (MSAA / FSAA) • Reconstruction during ROP / FB • Flat fragment shading with micropolygons! • Current GPU lacking in tesselation, shading richness, stochastic sampling, blending

  8. GPU Mismatches • High level surfaces versus triangles • Surface vertex shading versus fragment shading • Including a constrained shading language • Stochastic sampling versus MSAA rasterization • Depth order versus primitive order blending • Note: REYES only tries to make ‘pictures’. • Bonus: Opaque REYES is totally unordered.

  9. Straightforward GPU Evolution • High level surfaces are already coming • Without ordering, performance is easy • Shading surface points versus pixels is fakeable • Less flexible GLSL/HLSL is fine • Unified shader cores help a lot • Adjust rast for small quad workloads • Stochastic sampling versus MSAA rasterization • Allow rast to time-sample linear motion

  10. Sticking Point: Blending • Primitive order blending generates poor images • Depth order risks unbounded storage needs • Samples must be buffered until all closer samples are blended. • Closest sample may not happen until the last grid of the last primitive. • Unbounded storage is anathema in GPU environments and real-time systems in general.

  11. Options for Depth-Order Blending • Classic REYES buckets grids into screen-space partitions. • Reduces, but still does not bound, footprint • Assume GPU REYES has fixed on-chip buffers • Three options when a bucket fills: • Rendering fails (awful) • Spill to memory (slow? when memory fills?) • Shrink bucket, discard samples newly outside (recomputation hard? too compute wasteful?)

  12. GPU REYES Summary • Unordered • Retained mode input (at least for blending) • Simplified shading language • Separate opaque and blended modes • Constrained reconstruction filters • Bound and split on CPU? Simplified adaptivity? • Mandatory displacement shader separation? • Constraints on stochastic sampling? • Blending policy– Primitive order? Spill? Shrink?

  13. Acknowledgements • Kayvon has provided explanation and discussion beyond a point where I can separate any ideas unique to myself. • Kurt and Pat provided excellent historical context and insight. • Gordon Stoll and Bill Mark repeated the word ‘REYES’ and insisted that its shading / anti-aliasing properties were valuable until I dug into it in self-defense.

More Related