Real time reyes
1 / 13

Real-time REYES - PowerPoint PPT Presentation

  • Uploaded on

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?

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

PowerPoint Slideshow about 'Real-time REYES' - kellsie

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
Real time reyes

Real-time REYES

Jeremy Sugerman

This talk
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?


  • “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.

Reyes features
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

Basic reyes pipeline

Multiple Primitives






Unshaded Grids


Shaded Grids

Bust & Bound



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.

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.

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

Gpu mismatches
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.

Straightforward gpu evolution
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

Sticking point blending
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.

Options for depth order blending
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?)

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?


  • 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.