SlideShare ist ein Scribd-Unternehmen logo
1 von 112
Downloaden Sie, um offline zu lesen
The Lightspeed Automatic Interactive
      Lighting Preview System
      Jonathan Ragan-Kelley / MIT CSAIL
            Charlie Kilpatrick / ILM
              Brian Smith / ILM
         Doug Epps / Tippett Studio
           Paul Green / MIT CSAIL
            Christophe Héry / ILM
          Frédo Durand / MIT CSAIL
Lighting Design




■ End of pipeline
 fixed geometry, viewpoint, material

■ Slow feedback
 10-60 mins to render
Lighting Design




                    another hour later...
                          1
■ End of pipeline
 fixed geometry, viewpoint, material

■ Slow feedback
 10-60 mins to render
Goal: Fast Lighting Preview




Exploit redundancy between previews
■ geometry
■ view
■ material
High-Level Approach
■ Precompute deep-framebuffer cache
e.g.                                            ...
       normal   position   diffuse   specular
                           texture    texture


■ Preview dynamically on GPU
  as the user specifies new light parameters
Prior Work
Render Caching
   Parameterized Ray Tracing [Séquin & Smyrl 1989]
   G-Buffer [Saito & Takahashi 1990]
   Fast Relighting Engine [Gershbein & Hanrahan 2000]



■ Precomputed buffer
 (normals, texture)
 with BRDF*light reevaluated at runtime

■ Shortcomings
 ■ Simplistic shading
 ■ No antialiasing, motion blur, transparency
Pixar’s Lpics
             [Pellacini et al. 2005]



■ Production shaders
 & lights (RenderMan)

■ Exploit programmable GPUs
■ No antialiasing, transparency
■ Requires extra shader-writing work
 ■ (final) RenderMan version
   + extra caching code
 ■ GPU preview version
Specializing Shaders
      [Guenter et al. 1995]



■ Given dynamic parameters, automatically
 split shader code into:
 ■ static
 ■ dynamic
■ Simple language
 no control flow

■ Simple shaders
                              Plate 1: Test image.
                               Plate 1: Test image.                                             Plate 2: Image obtained by reshading image of Plate 1. This
                                                                                                 Plate 2: Image obtained by reshading image of Plate 1. This
                                                                                                took 12 seconds unspecialized, 0.5 seconds specialized.
                                                                                                 took 12 seconds unspecialized, 0.5 seconds specialized.

                              Bibliography
                              Bibliography
                              [1] Andersen, Lars Ole. Self-applicable C Program
                               [1] Andersen, Lars Ole. Self-applicable C Program                [9] Jones, Neil D., Carsten K. Gomard, and Peter Sestoft.
                                                                                                 [9] Jones, Neil D., Carsten K. Gomard, and Peter Sestoft.
                                   Specialization. Proceedings of the ACM SIGPLAN
                                    Specialization. Proceedings of the ACM SIGPLAN                   Partial Evaluation and Automatic Program Generation.
                                                                                                      Partial Evaluation and Automatic Program Generation.
                                   Workshop on Partial Evaluation and Semantics-Based
                                    Workshop on Partial Evaluation and Semantics-Based               Prentice-Hall, 1993.
                                                                                                      Prentice-Hall, 1993.
                                   Program Manipulation (San Francisco, California, June 12-
                                    Program Manipulation (San Francisco, California, June 12-
                                                                                                [10] Mogensen, Torben. The Application of Partial Evaluation to
                                                                                                 [10] Mogensen, Torben. The Application of Partial Evaluation to
                                   20, 1992). Yale University technical report
                                    20, 1992). Yale University technical report
                                   YALEU/DCS/RR-909, 1992, 54-61.                                     Ray-Tracing. Master's thesis, DIKU, University of
                                                                                                      Ray-Tracing. Master's thesis, DIKU, University of
                                    YALEU/DCS/RR-909, 1992, 54-61.
                                                                                                      Copenhagen, Denmark, 1986.
                                                                                                      Copenhagen, Denmark, 1986.
Precomputed Radiance Transfer
 e Transfer for Real-Time Rendering
 requency Lighting Environments
                   e.g. Sloan et al. 2002, Ng et al. 2003
          Jan Kautz                             John Snyder
 x-Planck-Institut für Informatik
                               Microsoft Research
      jnkautz@mpi-sb.mpg.de                  johnsny@microsoft.com



  use and
 hat cap-
  process,
over the
 equency
  s global
 ect onto
  o actual
 ampling
 e rigidly
 ting and
                   Figure 1: Precomputed, unshadowed irradiance from [34] (left) vs. our
  pherical
                   precomputed transfer (right). The right model can be rendered at 129Hz

                   Inappropriate for our application
  ntly on          with self-shadowing and self-interreflection in any lighting environment.
 o a dot
   Glossy          frequency lighting environments, using a low-order spherical

                   ■ Large precomputation cost
 e further         harmonic (SH) basis to represent such environments efficiently
  lighting         without aliasing. The main idea is to represent how an object
  g points         scatters this light onto itself or its neighboring space.

                   ■ Largely ignore light functions
m rigidly          To describe our technique, assume initially we have a convex,
 ers. We           diffuse object lit by an infinitely distant environment map. The
 roach.

                   ■ Limitations on shading models
                   object’s shaded “response” to its environment can be viewed as a
 chniques,         transfer function, mapping incoming to outgoing radiance, which
                   in this case simply performs a cosine-weighted integral. A more
                   complex integral captures how a concave object shadows itself,
                   where the integrand is multiplied by an additional transport factor
tions are          representing visibility along each direction.
tunately,          Our approach is to precompute for a given object the expensive
 environ-          transport simulation required by complex transfer functions like
25], rad-          shadowing. The resulting transfer functions are represented as a
ple point          dense set of vectors or matrices over its surface. Meanwhile,
ndering.           incident radiance need not be precomputed. The graphics hard-
 difficul-         ware can dynamically sample incident radiance at a number of
 s of real         points. Analytic models, such as skylight models [33] or simple
Our Design Goals

1. High-performance preview
 ■ Low-latency feedback
 ■ Fast initial precomputation
2. Seamless integration
 ■ Same input: RenderMan scene & shaders
 ■ Same output: high quality image
3. Ease of implementation & maintenance
System Overview
System Overview
RenderMan
scene &
shaders
System Overview
RenderMan               cache &
scene &                 preview
shaders                 shaders




            automatic
             caching
System Overview
RenderMan               cache &
                        preview                preview image
scene &
shaders                 shaders



                                  relighting
            automatic
                                   engine
             caching
                                     (gpu)
System Overview
RenderMan                     cache &
                              preview                      preview image
scene &
shaders                       shaders



                                        relighting
            automatic
                                         engine
             caching
                                           (gpu)

                                                        lighting parameters


    one-time precomputation                iterative preview
System Overview
RenderMan               cache &
                        preview                  preview image
scene &
shaders                 shaders



                                  relighting
            automatic
                                   engine
             caching
                                     (gpu)

                                               lighting parameters


Automatic
for real production scenes
‣ specialization & translation
‣ cache compression
System Overview
RenderMan               cache &
                        preview                   preview image
scene &
shaders                 shaders



                                   relighting
            automatic
                                    engine
             caching
                                      (gpu)

                                                lighting parameters


Automatic                      High fidelity
for real production scenes antialiasing, motion blur,
‣ specialization & translation transparency
‣ cache compression               ‣ indirect framebuffer
Automatic Caching
RenderMan               cache &
                        preview                  preview image
scene &
shaders                 shaders



                                  relighting
            automatic
                                   engine
             caching
                                     (gpu)

                                               lighting parameters
Program Analysis
Program Analysis



mySurface(color
c)
{
  albedo
=
c*Texture(U,V);
  shade
=
Light(L)*BRDF(N,L);
  return
albedo*shade;
}
Program Analysis



   mySurface(color
c)
{            dynamic
     albedo
=
c*Texture(U,V);
     shade
=
Light(L)*BRDF(N,L);
     return
albedo*shade;
   }




what part of the code depends on
the lighting parameter L?
Program Analysis



    mySurface(color
c)
{            dynamic
      albedo
=
c*Texture(U,V);
      shade
=
Light(L)*BRDF(N,L);
                                    static
      return
albedo*shade;
    }




everything else is static
Program Analysis



   mySurface(color
c)
{            dynamic
     albedo
=
c*Texture(U,V);
     shade
=
Light(L)*BRDF(N,L);
                                   static
     return
albedo*shade;          cache
   }




values at the boundary are cached
for reevaluation
Program Analysis



mySurface(color
c)
{
  albedo
=
c*Texture(U,V);
  shade
=
Light(L)*BRDF(N,L);
  return
albedo*shade;
}
Program Analysis



                                    albedo                      shade
mySurface(color
c)
{
  albedo
=
c*Texture(U,V);
  shade
=
Light(L)*BRDF(N,L);
  return
albedo*shade;
}
                                c         Texture       Light           BRDF



                                      U             V             L            N
Deep Framebuffer Generation




 mySurface(color
c)
{
   albedo
=
c*Texture(U,V);
   shade
=
Light(L)*BRDF(N,L);
   return
albedo*shade;
 }
Deep Framebuffer Generation


caching
shader
          mySurfaceCache(color
c)
{
            albedo
=
c*Texture(U,V);
            cache(N);
            cache(albedo);
          }
Deep Framebuffer Generation
                                        N
                                            albedo
  final                                               deep
renderer                                             framebuffer
                                                     cache
caching
shader
           mySurfaceCache(color
c)
{
             albedo
=
c*Texture(U,V);
             cache(N);
             cache(albedo);
           }
Deep Framebuffer Generation
                 N
                     albedo
                              deep
                              framebuffer
                              cache
caching
shader
Deep Framebuffer Generation
                 N
                     albedo
                               deep
                               framebuffer
                               cache
caching
shader




                             mySurfaceDynamic(vector
L)
{
                               N
=
lookup();
                               albedo
=
lookup();
                               shade
=
Light(L)*BRDF(N,L);
                     preview   return
albedo*shade;
                     shader }
Deep Framebuffer Generation
                 N
                     albedo
                               deep
                               framebuffer
                               cache
caching
shader




                             mySurfaceDynamic(vector
L)
{
                               N
=
lookup();
                               albedo
=
lookup();
                               shade
=
Light(L)*BRDF(N,L);
                     preview   return
albedo*shade;
                     shader }
Deep Framebuffer Generation
                 N
                     albedo
                               deep
                               framebuffer
                               cache
caching
shader



                                             rendered
                     shade                   image




                     preview
                     shader
Automatic Caching
Automatic Caching

RenderMan
scene       scene preprocessor




RenderMan
shaders
Automatic Caching

RenderMan
scene       scene preprocessor




            program
            analysis


RenderMan
shaders
Automatic Caching

RenderMan
scene       scene preprocessor




                   caching
                   shaders

            program
            analysis


RenderMan
shaders
Automatic Caching

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                   x1
              final                   N
                                         P
            renderer

                   caching
                   shaders

            program
            analysis


RenderMan
shaders
Automatic Caching

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                   x1
              final                   N
                                         P
            renderer

                   caching
                   shaders

            program
            analysis


RenderMan                          dynamic
shaders                            preview
                                   shaders
Automatic Caching

                                               challenge: cache size
                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                                program analysis is
              final
                                   x1
                                     N
                                         P
                                                   conservative
            renderer

                   caching
                   shaders                     generates
                                               many cached terms
            program
            analysis                                     (hundreds)
RenderMan                          dynamic
shaders                            preview
                                   shaders
                                                   large caches
                                                       (gigabytes)
Cache Compression

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                   x1
              final                   N
                                         P
            renderer

                   caching
                   shaders
                                               Remove redundant
            program
            analysis                           values after caching
RenderMan                          dynamic
shaders                            preview
                                   shaders
Cache Compression

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                   x1                        N
              final                   N           cache           P
                                         P
            renderer                           compression

                   caching
                   shaders
                                               Remove redundant
            program
            analysis                           values after caching
RenderMan                          dynamic
shaders                            preview
                                   shaders
Cache Compression

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                 x2
                                   x1                        N
              final                   N           cache           P
                                         P
            renderer                           compression

                   caching
                   shaders
                                               Remove redundant
            program
            analysis                           values after caching
RenderMan
shaders
                                   dynamic
                                   preview
                                                → 5x compression
                                   shaders
System Overview

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                  N
                                      P
              final      cache
            renderer    compr.
                        comp.

                   caching
                   shaders

            program
            analysis


RenderMan                         dynamic
shaders                           preview
                                  shaders
System Overview

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                  N
                                      P
              final      cache
            renderer    comp.

                   caching
                   shaders

            program
            analysis


RenderMan                         dynamic
shaders                           preview
                                  shaders
System Overview

                                 deep
RenderMan                        framebuffer
scene       scene preprocessor   cache
                                  N
                                      P
              final      cache
            renderer    comp.
                                               relighting
                   caching
                   shaders                      engine
                                                  (gpu)
            program
            analysis                                            preview image


RenderMan                         dynamic
shaders                           preview
                                  shaders                   lighting parameters
System Overview
                                                 antialiasing?
RenderMan
scene       scene preprocessor
                                 deep
                                 framebuffer
                                 cache
                                               transparency?
                                  N
                                      P
              final      cache
            renderer    comp.
                                               relighting
                   caching
                   shaders                      engine
                                                  (gpu)
            program
            analysis                                            preview image


RenderMan                         dynamic
shaders                           preview
                                  shaders                   lighting parameters
Classical Deep Framebuffer

     B




A
Classical Deep Framebuffer

     B




A
Classical Deep Framebuffer
                                x2                    deep
                                     x1               framebuffer
                                          N           cache

        B                                     P

                      cache


                                              shade
   A

Cache one sample per-pixel                            rendered
Shade cache values to render image                    image
Classical Deep Framebuffer
                              x2                    deep
                                   x1               framebuffer
                                        N           cache

       B                                    P

                      cache


                                            shade
  A


How can we do antialiasing?                         rendered
                                                    image
Classical Deep Framebuffer
      supersample image           x2
                                       x1
                                            N
        B                                       P

                          cache


                                                shade
  A


How can we do antialiasing?
            transparency?
Classical Deep Framebuffer
                               x4
                   supersample x3
                         cache    N
       B                              P

                      cache


                                      shade
  A
                        supersample
                            shading
How can we do antialiasing?
            transparency?
Classical Deep Framebuffer
                              x4
                                   x3
                                        N
       B                                    P
                                                    ...?
                      cache


                                            shade
  A


How can we do antialiasing?                         ...?
            transparency?
Our Indirect Framebuffer


■ Decouple shading from visibility
 ■ only supersample visibility
‣ Do what RenderMan does
■ Compress samples
 based on static visibility
RenderMan / REYES

    B

                     show
                     *filtering*
                     pixel color?




A
RenderMan / REYES

        B
        b1
                          show
                          *filtering*
                          pixel color?

                 b2
            a1
   A

dice into micropolygons
RenderMan / REYES

       B
       b1
                         show
                         *filtering*
                         pixel color?

                b2
           a1
  A

shade micropolygons
RenderMan / REYES

        B
        b1
                          show
                          *filtering*
                          pixel color?

                 b2
            a1
   A

rasterize micropolygons
RenderMan / REYES

    B
    b1
                      show
                      *filtering*
                      pixel color?

             b2
        a1
A
RenderMan / REYES
                         1                         2
    B                          a1                      b2
    b1
                                    show
                                    *filtering*
    1        2                      pixel color?

                 b2
    3   a   1
             4
                         3                         4

A                              a1                      a1


             pixel = a1+b2+a1+a1
RenderMan / REYES
                         1                         2
    B                          a1                      b2
    b1
                                    show
                                    *filtering*
    1        2                      pixel color?

                 b2
    3   a   1
             4
                         3                         4

A                              a1                      a1


             pixel = a1+b2+a1+a1
                          4
RenderMan / REYES
                         1                           2
    B                          a1                        b2
    b1
                                      show
                                      *filtering*
    1        2                        pixel color?

                 b2
    3   a   1
             4
                         3                           4

A                              a1                        a1


             pixel = a1+b2+a1+a1 = 0.75*a1+0.25*b2
                          4
RenderMan / REYES
                           1                       2
    B                          a1                      b2
    b1
                                    show
                                    *filtering*
    1        2                      pixel color?

                 b2
    3   a   1
             4
                           3                       4

A                              a1                      a1


             pixel =   ?
RenderMan / REYES

    B
    b1

               b2
        a1
A


             pixel =   ?
RenderMan / REYES
                           1
    B                           a1      b1
                               α=0.3   α=1.0
    b1
                               0.3*a1+0.7*b1
    1
               b2
        a1
A


             pixel =   ?
RenderMan / REYES
                           1                   2
    B                           a1      b1          b2
                               α=0.3   α=1.0       α=1.0
    b1
             2
                               0.3*a1+0.7*b1       1.0*b2
    1
                 b2
        a1
A


             pixel =   ?
RenderMan / REYES
                           1                           2
    B                           a1          b1              b2
                               α=0.3    α=1.0              α=1.0
    b1
             2
                               0.3*a1+0.7*b1               1.0*b2
    1
                 b2
    3   a   1
             4
                           3            4

A                               a1                a1         b2
                               α=0.3             α=0.3      α=1.0

                               0.3*a1            0.3*a1+0.7*b1
             pixel =   ?
RenderMan / REYES
                         1                           2
    B                         a1          b1              b2
                             α=0.3    α=1.0              α=1.0
    b1
             2
                             0.3*a1+0.7*b1               1.0*b2
    1
                 b2
    3   a   1
             4
                         3            4

A                             a1                a1         b2
                             α=0.3             α=0.3      α=1.0

                             0.3*a1            0.3*a1+0.7*b1
             pixel = 0.225*a1+0.35*b1+0.25*b2
Indirect Framebuffer
Indirect Framebuffer
b1
a1b2
Indirect Framebuffer
  b1
  a1b2
                        x4         x4 deep
         x1        x3         x3     buffer
     N        x2         x2
 P        P         P
a1 b1 b2




no longer image space
(per-micropolygon)
Indirect Framebuffer
  b1
  a1b2
                         x4         x4 deep
          x1        x3         x3     buffer
      N        x2         x2
  P        P         P
a1 b1 b2


                                               shading
  shade                                        samples

shaded like a conventional deep-framebuffer
Indirect Framebuffer
  b1
  a1b2
                                              indirect framebuffer
                        x4         x4 deep
         x1        x3         x3     buffer
     N        x2         x2
 P        P         P
a1 b1 b2


                                                  shading
  shade                                           samples
Indirect Framebuffer
  b1
  a1b2
                                               indirect framebuffer
                         x4         x4 deep
          x1        x3         x3     buffer    0.225   0.35   0.25
      N        x2         x2
  P        P         P
a1 b1 b2


                                                   shading
  shade                                            samples

densely stored in vertex array, on GPU
Indirect Framebuffer
  b1
  a1b2
                                               indirect framebuffer
                         x4         x4 deep
          x1        x3         x3     buffer    0.225    0.35   0.25
      N        x2         x2
  P        P         P
a1 b1 b2
                                                        blend
                                                   shading             final
  shade                                            samples             pixel
4 subpixel samples, 2 transparent layers
only 3 unique micropolygons
Indirect Framebuffer
  b1
  a1b2
                                               indirect framebuffer
                         x4         x4 deep
          x1        x3         x3     buffer    0.225    0.35   0.25
      N        x2         x2
  P        P         P
a1 b1 b2
                                                        blend
                                                   shading             final
  shade                                            samples             pixel
4 subpixel samples, 2 transparent layers
only 3 unique micropolygons
all contributions linearized into a single weight
More samples,
  b1                                Same cost
  a1b2
                                              indirect framebuffer
                        x4         x4 deep
         x1        x3         x3     buffer    0.242    0.331   0.245
     N        x2         x2
 P        P         P
a1 b1 b2
                                                       blend
                                                  shading               final
  shade                                           samples               pixel
More samples,
  b1                                Same cost
  a1b2
                                              indirect framebuffer
                        x4         x4 deep
         x1        x3         x3     buffer    0.242    0.331   0.245
     N        x2         x2
 P        P         P
a1 b1 b2
                                                       blend
                                                  shading               final
  shade                                           samples               pixel
More samples,
  b1                                Same cost
  a1b2
                                              indirect framebuffer
                        x4         x4 deep
         x1        x3         x3     buffer    0.242    0.331   0.245
     N        x2         x2
 P        P         P
a1 b1 b2
                                                       blend
                                                  shading               final
  shade                                           samples               pixel
Indirect Framebuffer Results
         antialiasing
         motion blur
         transparency
         identical to RenderMan
Indirect Framebuffer Results
                        antialiasing
                        motion blur
                        transparency
                        identical to RenderMan

                                           RenderMan
                                           45M micropolygons
                                           60M subpixel samples


                                           brute-force
                                           >100M samples


                                           Indirect framebuffer
                                            10M deep fb
                                           +15M indirect fb
720x389, 64x supersampling
System Architecture
System Architecture

RenderMan
scene       scene preprocessor




RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor




            program
            analysis


RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor




                   caching
                   shaders

            program              preview
            analysis             shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor

              final
            renderer

                   caching
                   shaders

            program              preview
            analysis             shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor
                                           deep fb        indirect fb
              final     cache               x2
                                         x1
            renderer   compr.        N
                                 P


                   caching
                   shaders

            program                             preview
            analysis                            shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor                  relighting engine (GPU)
                                           deep fb            indirect fb
              final     cache               x2
                                         x1
            renderer   compr.        N
                                 P


                   caching
                   shaders

            program                             preview
            analysis                            shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor                  relighting engine (GPU)
                                           deep fb            indirect fb
              final     cache               x2
                                         x1
            renderer   compr.        N
                                 P


                   caching
                   shaders           shade

            program                             preview
            analysis                            shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor                  relighting engine (GPU)
                                           deep fb            indirect fb   rendered image
              final     cache               x2
                                         x1
            renderer   compr.        N
                                 P


                   caching
                   shaders           shade                          blend

            program                             preview
            analysis                            shaders

RenderMan
shaders
System Architecture

RenderMan
scene       scene preprocessor                  relighting engine (GPU)
                                           deep fb            indirect fb     rendered image
              final     cache               x2
                                         x1
            renderer   compr.        N
                                 P


                   caching
                   shaders           shade                          blend

            program                             preview
            analysis                            shaders
                                                                                 lighting
                                                                               parameters
RenderMan
shaders

    one-time precomputation                               iterative preview
Additional Features

■ Shadows
■ Subsurface Scattering
■ Performance
 enhancement
 ■ Progressive Refinement
 ■ Light Caching           …
 ■ Tiling
Results
initial feedback: 0.05 sec
 full refinement: 0.7 sec




                                     Lightspeed
720x389                      offline render: 5 mins
Results
initial feedback: 0.05 sec
 full refinement: 0.7 sec




                                     RenderMan
                                     Lightspeed
720x389                      offline render: 5 mins
Results
Results
             caching: 16 mins
   initial feedback: 0.11 sec
    full refinement: 2.7 sec




914x389                            offline render: 59 mins
13x13 antialiasing
42 lights
Results
             caching: 16 mins
   initial feedback: 0.11 sec
    full refinement: 2.7 sec
Lightspeed




                                           RenderMan
914x389                            offline render: 59 mins
13x13 antialiasing
42 lights
Results
             caching: 16 mins
   initial feedback: 0.11 sec
    full refinement: 2.7 sec
Lightspeed




                                           RenderMan
914x389                            offline render: 59 mins
13x13 antialiasing
42 lights
Results
Results
Results
Results
Limitations
■ GPU programming model
 ■ Dynamic calls to external C code
 ■ Complex data structures
 ■ GPU limits (bandwidth, memory, registers)
■ Fully-accurate dynamic ray tracing
■ Unbounded dynamic loops
■ Additional features not yet implemented
 ■ Indirect diffuse
 ■ Deep shadows
 ■ Non-linear lights
Discussion
■ Automatic and manual specialization
  (Lpics) both have advantages
 ■ Manual specialization allows hand optimization
 ■ Compiler requires up-front R&D, never perfect
   (especially on the GPU)
 ■ Saves significant time in production
 ■ Some material parameters are editable
■ Cache compression is key to practical
  automatic specialization
  much simpler than fancy static analysis

■ Indirect Framebuffer is powerful, scalable
Summary
■ Interactive lighting preview
  milliseconds instead of hours

■ Automatic caching for our production scenes
 ■ Program analysis
 ■ Cache compression
■ Indirect framebuffer
 ■ Efficient antialiasing, motion blur, transparency
 ■ Progressive refinement
■ In use on current productions
Acknowledgments
Inception: Pat Hanrahan, Ujval Kapasi

Compilers: Alex Aiken, John Kodumal

Tippett: Aaron Luk, Davey Wentworth

ILM: Alan Trombla, Ed Hanway, Dan Goldman,
    Steve Sullivan, Paul Churchill

Images: Michael Bay, Dan Piponi

Money: NSF, NVIDIA, MSR, Sloan & Ford
       fellowships
Summary
■ Interactive lighting preview
  milliseconds instead of hours

■ Automatic caching for our production scenes
 ■ Program analysis
 ■ Cache compression
■ Indirect framebuffer
 ■ Efficient antialiasing, motion blur, transparency
 ■ Progressive refinement
■ In use on current productions
EXTRAS
Cache Compression
                             deep framebuffer cache
Remove redundant
values after caching
■ non-varying
  same for many pixels
■ non-unique
  same within a pixel
                         unique
                                      varying

           → 4-5x compression
Cache Compression


    shader            dynamic         varying      unique
                  (static analysis)             (compressed)
generic surface         402            145          97

 metallic paint         450            150          97
Visibility Compression
                                             Indirect
                          RenderMan        Framebuffer
scene   res.     samples shade   subpix   shade   indirect

robot 914x389 13x13      2.1M     32M     633k     1.6M

robot
       720x306 13x13     1.5M     21M     467k     3.8M
(blur)

pirate 640x376    4x4    2.5M    2.3M     327k     716k


hairs 720x389     8x8    43M      58M     11M      17M

Weitere ähnliche Inhalte

Was ist angesagt?

Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...
Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...
Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...IDES Editor
 
Project - Sound Model Similarity Search
Project - Sound Model Similarity SearchProject - Sound Model Similarity Search
Project - Sound Model Similarity SearchSudarshan Bala
 
Brochure v-ray-rhino
Brochure v-ray-rhinoBrochure v-ray-rhino
Brochure v-ray-rhinoAlex Santos
 
ASC flash lidar technology
ASC flash lidar technologyASC flash lidar technology
ASC flash lidar technologyfrmsnh
 
Poster Toward a realistic retinal simulator
Poster Toward a realistic retinal simulatorPoster Toward a realistic retinal simulator
Poster Toward a realistic retinal simulatorHassan Nasser
 
An automated and user-friendly optical tweezers for biomolecular investigat...
An automated and user-friendly optical  tweezers for biomolecular  investigat...An automated and user-friendly optical  tweezers for biomolecular  investigat...
An automated and user-friendly optical tweezers for biomolecular investigat...Dr. Pranav Rathi
 
Battle of the Codecs
Battle of the CodecsBattle of the Codecs
Battle of the CodecsJames Uren
 
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...sipij
 
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...Best Jobs
 
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...Wanjin Yu
 
IGARSS-MI-Pritt.pptx
IGARSS-MI-Pritt.pptxIGARSS-MI-Pritt.pptx
IGARSS-MI-Pritt.pptxgrssieee
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
Performance Analysis of Digital Watermarking Of Video in the Spatial Domain
Performance Analysis of Digital Watermarking Of Video in the Spatial DomainPerformance Analysis of Digital Watermarking Of Video in the Spatial Domain
Performance Analysis of Digital Watermarking Of Video in the Spatial Domainpaperpublications3
 
DIPA 2000 Particle Size & Shape Analyzer
DIPA 2000 Particle Size & Shape AnalyzerDIPA 2000 Particle Size & Shape Analyzer
DIPA 2000 Particle Size & Shape Analyzerbdon71
 
RoboCV - Demo Session Slides
RoboCV - Demo Session SlidesRoboCV - Demo Session Slides
RoboCV - Demo Session SlidesroboVITics club
 

Was ist angesagt? (18)

Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...
Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...
Hardware Implementation of Genetic Algorithm Based Digital Colour Image Water...
 
Project - Sound Model Similarity Search
Project - Sound Model Similarity SearchProject - Sound Model Similarity Search
Project - Sound Model Similarity Search
 
Brochure v-ray-rhino
Brochure v-ray-rhinoBrochure v-ray-rhino
Brochure v-ray-rhino
 
ASC flash lidar technology
ASC flash lidar technologyASC flash lidar technology
ASC flash lidar technology
 
G0523444
G0523444G0523444
G0523444
 
Poster Toward a realistic retinal simulator
Poster Toward a realistic retinal simulatorPoster Toward a realistic retinal simulator
Poster Toward a realistic retinal simulator
 
An automated and user-friendly optical tweezers for biomolecular investigat...
An automated and user-friendly optical  tweezers for biomolecular  investigat...An automated and user-friendly optical  tweezers for biomolecular  investigat...
An automated and user-friendly optical tweezers for biomolecular investigat...
 
Battle of the Codecs
Battle of the CodecsBattle of the Codecs
Battle of the Codecs
 
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...
TARGET DETECTION AND CLASSIFICATION PERFORMANCE ENHANCEMENT USING SUPERRESOLU...
 
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...
A Segmentation Based Sequential Pattern Matching for Efficient Video Copy Det...
 
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...
Intelligent Image Enhancement and Restoration - From Prior Driven Model to Ad...
 
IGARSS-MI-Pritt.pptx
IGARSS-MI-Pritt.pptxIGARSS-MI-Pritt.pptx
IGARSS-MI-Pritt.pptx
 
Dip sdit 7
Dip sdit 7Dip sdit 7
Dip sdit 7
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Robust watermarking technique sppt
Robust watermarking technique spptRobust watermarking technique sppt
Robust watermarking technique sppt
 
Performance Analysis of Digital Watermarking Of Video in the Spatial Domain
Performance Analysis of Digital Watermarking Of Video in the Spatial DomainPerformance Analysis of Digital Watermarking Of Video in the Spatial Domain
Performance Analysis of Digital Watermarking Of Video in the Spatial Domain
 
DIPA 2000 Particle Size & Shape Analyzer
DIPA 2000 Particle Size & Shape AnalyzerDIPA 2000 Particle Size & Shape Analyzer
DIPA 2000 Particle Size & Shape Analyzer
 
RoboCV - Demo Session Slides
RoboCV - Demo Session SlidesRoboCV - Demo Session Slides
RoboCV - Demo Session Slides
 

Andere mochten auch

TurKit: A Toolkit for Human Computation Algorithms
TurKit: A Toolkit for Human Computation AlgorithmsTurKit: A Toolkit for Human Computation Algorithms
TurKit: A Toolkit for Human Computation AlgorithmsGreg Little
 
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014MIT/CSAIL OpenStack Use Cases - Hong Kong 2014
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014Jonathan Proulx
 
RIMES: Embedding Interactive Multimedia Exercises in Lecture Videos
RIMES: Embedding Interactive Multimedia Exercises in Lecture VideosRIMES: Embedding Interactive Multimedia Exercises in Lecture Videos
RIMES: Embedding Interactive Multimedia Exercises in Lecture VideosJuho Kim
 
Fuentes, Fortalezas, Etc
Fuentes, Fortalezas, EtcFuentes, Fortalezas, Etc
Fuentes, Fortalezas, EtcJOSE DOMINGUEZ
 
Calles deEncinasola (2)
Calles deEncinasola (2)Calles deEncinasola (2)
Calles deEncinasola (2)JOSE DOMINGUEZ
 
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...Juho Kim
 
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)Laura Chiticariu
 
La Iglesia parroquial de Encinasola
La Iglesia parroquial de EncinasolaLa Iglesia parroquial de Encinasola
La Iglesia parroquial de EncinasolaJOSE DOMINGUEZ
 
Why Graphics Is Fast, and What It Can Teach Us About Parallel Programming
Why Graphics Is Fast, and What It Can Teach Us About Parallel ProgrammingWhy Graphics Is Fast, and What It Can Teach Us About Parallel Programming
Why Graphics Is Fast, and What It Can Teach Us About Parallel ProgrammingJonathan Ragan-Kelley
 
Vertical Farming Lauren Williamson
Vertical Farming Lauren WilliamsonVertical Farming Lauren Williamson
Vertical Farming Lauren Williamsonenvirock
 

Andere mochten auch (20)

TurKit: A Toolkit for Human Computation Algorithms
TurKit: A Toolkit for Human Computation AlgorithmsTurKit: A Toolkit for Human Computation Algorithms
TurKit: A Toolkit for Human Computation Algorithms
 
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014MIT/CSAIL OpenStack Use Cases - Hong Kong 2014
MIT/CSAIL OpenStack Use Cases - Hong Kong 2014
 
RIMES: Embedding Interactive Multimedia Exercises in Lecture Videos
RIMES: Embedding Interactive Multimedia Exercises in Lecture VideosRIMES: Embedding Interactive Multimedia Exercises in Lecture Videos
RIMES: Embedding Interactive Multimedia Exercises in Lecture Videos
 
UN PREMIO NOBEL
UN PREMIO NOBELUN PREMIO NOBEL
UN PREMIO NOBEL
 
)
))
)
 
Fuentes, Fortalezas, Etc
Fuentes, Fortalezas, EtcFuentes, Fortalezas, Etc
Fuentes, Fortalezas, Etc
 
Calles deEncinasola (2)
Calles deEncinasola (2)Calles deEncinasola (2)
Calles deEncinasola (2)
 
Sky and Earth
Sky and EarthSky and Earth
Sky and Earth
 
Cuidado On lIne
Cuidado On lIneCuidado On lIne
Cuidado On lIne
 
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...
CHI2014 Workshop - Leveraging Video Interaction Data and Content Analysis to ...
 
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)
SystemT: Declarative Information Extraction (invited talk at MIT CSAIL)
 
La Iglesia parroquial de Encinasola
La Iglesia parroquial de EncinasolaLa Iglesia parroquial de Encinasola
La Iglesia parroquial de Encinasola
 
Why Graphics Is Fast, and What It Can Teach Us About Parallel Programming
Why Graphics Is Fast, and What It Can Teach Us About Parallel ProgrammingWhy Graphics Is Fast, and What It Can Teach Us About Parallel Programming
Why Graphics Is Fast, and What It Can Teach Us About Parallel Programming
 
Residential lighting technologies
Residential lighting technologiesResidential lighting technologies
Residential lighting technologies
 
Reimagining the Vertical Farm 2015
Reimagining the Vertical Farm 2015Reimagining the Vertical Farm 2015
Reimagining the Vertical Farm 2015
 
From Home Vertical Farm to Commercial Scale 2015
From Home Vertical Farm to Commercial Scale 2015From Home Vertical Farm to Commercial Scale 2015
From Home Vertical Farm to Commercial Scale 2015
 
Vertical farming concepts
Vertical farming concepts Vertical farming concepts
Vertical farming concepts
 
Vertical farming
Vertical farmingVertical farming
Vertical farming
 
Vertical Farming Lauren Williamson
Vertical Farming Lauren WilliamsonVertical Farming Lauren Williamson
Vertical Farming Lauren Williamson
 
Commercial Applications for Daylighting
Commercial Applications for DaylightingCommercial Applications for Daylighting
Commercial Applications for Daylighting
 

Ähnlich wie Lightspeed Automatic Interactive Lighting Preview System

Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon Transform
Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon TransformHuman Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon Transform
Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon TransformFadwa Fouad
 
Ijmsr 2016-10
Ijmsr 2016-10Ijmsr 2016-10
Ijmsr 2016-10ijmsr
 
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONMEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONcscpconf
 
Median based parallel steering kernel regression for image reconstruction
Median based parallel steering kernel regression for image reconstructionMedian based parallel steering kernel regression for image reconstruction
Median based parallel steering kernel regression for image reconstructioncsandit
 
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONMEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONcsandit
 
Lightspeed Preprint
Lightspeed PreprintLightspeed Preprint
Lightspeed Preprintjustanimate
 
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...KIMMINHA3
 
Survey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesSurvey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesIOSR Journals
 
Survey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesSurvey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesIOSR Journals
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingElectronic Arts / DICE
 
Generating super resolution images using transformers
Generating super resolution images using transformersGenerating super resolution images using transformers
Generating super resolution images using transformersNEERAJ BAGHEL
 
Super resolution in deep learning era - Jaejun Yoo
Super resolution in deep learning era - Jaejun YooSuper resolution in deep learning era - Jaejun Yoo
Super resolution in deep learning era - Jaejun YooJaeJun Yoo
 
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])Masaya Kaneko
 
Image attendance system
Image attendance systemImage attendance system
Image attendance systemMayank Garg
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformIJERA Editor
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformIJERA Editor
 
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfPapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfAdam Hill
 

Ähnlich wie Lightspeed Automatic Interactive Lighting Preview System (20)

Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon Transform
Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon TransformHuman Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon Transform
Human Action Recognition in Videos Employing 2DPCA on 2DHOOF and Radon Transform
 
Ijmsr 2016-10
Ijmsr 2016-10Ijmsr 2016-10
Ijmsr 2016-10
 
Compressed Sensing - Achuta Kadambi
Compressed Sensing - Achuta KadambiCompressed Sensing - Achuta Kadambi
Compressed Sensing - Achuta Kadambi
 
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONMEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
 
Median based parallel steering kernel regression for image reconstruction
Median based parallel steering kernel regression for image reconstructionMedian based parallel steering kernel regression for image reconstruction
Median based parallel steering kernel regression for image reconstruction
 
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTIONMEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
MEDIAN BASED PARALLEL STEERING KERNEL REGRESSION FOR IMAGE RECONSTRUCTION
 
Lightspeed Preprint
Lightspeed PreprintLightspeed Preprint
Lightspeed Preprint
 
Ad24210214
Ad24210214Ad24210214
Ad24210214
 
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...
[CVPRW 2020]Real world Super-Resolution via Kernel Estimation and Noise Injec...
 
Survey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesSurvey on Single image Super Resolution Techniques
Survey on Single image Super Resolution Techniques
 
Survey on Single image Super Resolution Techniques
Survey on Single image Super Resolution TechniquesSurvey on Single image Super Resolution Techniques
Survey on Single image Super Resolution Techniques
 
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time RaytracingSIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
SIGGRAPH 2018 - Full Rays Ahead! From Raster to Real-Time Raytracing
 
Generating super resolution images using transformers
Generating super resolution images using transformersGenerating super resolution images using transformers
Generating super resolution images using transformers
 
Super resolution in deep learning era - Jaejun Yoo
Super resolution in deep learning era - Jaejun YooSuper resolution in deep learning era - Jaejun Yoo
Super resolution in deep learning era - Jaejun Yoo
 
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
論文読み会@AIST (Deep Virtual Stereo Odometry [ECCV2018])
 
Image attendance system
Image attendance systemImage attendance system
Image attendance system
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
 
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet TransformNoise Removal in SAR Images using Orthonormal Ridgelet Transform
Noise Removal in SAR Images using Orthonormal Ridgelet Transform
 
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdfPapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
PapersWeLove - Rendering Synthetic Objects Into Real Scenes - Paul Debevec.pdf
 
W4101139143
W4101139143W4101139143
W4101139143
 

Kürzlich hochgeladen

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Kürzlich hochgeladen (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Lightspeed Automatic Interactive Lighting Preview System

  • 1. The Lightspeed Automatic Interactive Lighting Preview System Jonathan Ragan-Kelley / MIT CSAIL Charlie Kilpatrick / ILM Brian Smith / ILM Doug Epps / Tippett Studio Paul Green / MIT CSAIL Christophe Héry / ILM Frédo Durand / MIT CSAIL
  • 2. Lighting Design ■ End of pipeline fixed geometry, viewpoint, material ■ Slow feedback 10-60 mins to render
  • 3. Lighting Design another hour later... 1 ■ End of pipeline fixed geometry, viewpoint, material ■ Slow feedback 10-60 mins to render
  • 4. Goal: Fast Lighting Preview Exploit redundancy between previews ■ geometry ■ view ■ material
  • 5. High-Level Approach ■ Precompute deep-framebuffer cache e.g. ... normal position diffuse specular texture texture ■ Preview dynamically on GPU as the user specifies new light parameters
  • 7. Render Caching Parameterized Ray Tracing [Séquin & Smyrl 1989] G-Buffer [Saito & Takahashi 1990] Fast Relighting Engine [Gershbein & Hanrahan 2000] ■ Precomputed buffer (normals, texture) with BRDF*light reevaluated at runtime ■ Shortcomings ■ Simplistic shading ■ No antialiasing, motion blur, transparency
  • 8. Pixar’s Lpics [Pellacini et al. 2005] ■ Production shaders & lights (RenderMan) ■ Exploit programmable GPUs ■ No antialiasing, transparency ■ Requires extra shader-writing work ■ (final) RenderMan version + extra caching code ■ GPU preview version
  • 9. Specializing Shaders [Guenter et al. 1995] ■ Given dynamic parameters, automatically split shader code into: ■ static ■ dynamic ■ Simple language no control flow ■ Simple shaders Plate 1: Test image. Plate 1: Test image. Plate 2: Image obtained by reshading image of Plate 1. This Plate 2: Image obtained by reshading image of Plate 1. This took 12 seconds unspecialized, 0.5 seconds specialized. took 12 seconds unspecialized, 0.5 seconds specialized. Bibliography Bibliography [1] Andersen, Lars Ole. Self-applicable C Program [1] Andersen, Lars Ole. Self-applicable C Program [9] Jones, Neil D., Carsten K. Gomard, and Peter Sestoft. [9] Jones, Neil D., Carsten K. Gomard, and Peter Sestoft. Specialization. Proceedings of the ACM SIGPLAN Specialization. Proceedings of the ACM SIGPLAN Partial Evaluation and Automatic Program Generation. Partial Evaluation and Automatic Program Generation. Workshop on Partial Evaluation and Semantics-Based Workshop on Partial Evaluation and Semantics-Based Prentice-Hall, 1993. Prentice-Hall, 1993. Program Manipulation (San Francisco, California, June 12- Program Manipulation (San Francisco, California, June 12- [10] Mogensen, Torben. The Application of Partial Evaluation to [10] Mogensen, Torben. The Application of Partial Evaluation to 20, 1992). Yale University technical report 20, 1992). Yale University technical report YALEU/DCS/RR-909, 1992, 54-61. Ray-Tracing. Master's thesis, DIKU, University of Ray-Tracing. Master's thesis, DIKU, University of YALEU/DCS/RR-909, 1992, 54-61. Copenhagen, Denmark, 1986. Copenhagen, Denmark, 1986.
  • 10. Precomputed Radiance Transfer e Transfer for Real-Time Rendering requency Lighting Environments e.g. Sloan et al. 2002, Ng et al. 2003 Jan Kautz John Snyder x-Planck-Institut für Informatik Microsoft Research jnkautz@mpi-sb.mpg.de johnsny@microsoft.com use and hat cap- process, over the equency s global ect onto o actual ampling e rigidly ting and Figure 1: Precomputed, unshadowed irradiance from [34] (left) vs. our pherical precomputed transfer (right). The right model can be rendered at 129Hz Inappropriate for our application ntly on with self-shadowing and self-interreflection in any lighting environment. o a dot Glossy frequency lighting environments, using a low-order spherical ■ Large precomputation cost e further harmonic (SH) basis to represent such environments efficiently lighting without aliasing. The main idea is to represent how an object g points scatters this light onto itself or its neighboring space. ■ Largely ignore light functions m rigidly To describe our technique, assume initially we have a convex, ers. We diffuse object lit by an infinitely distant environment map. The roach. ■ Limitations on shading models object’s shaded “response” to its environment can be viewed as a chniques, transfer function, mapping incoming to outgoing radiance, which in this case simply performs a cosine-weighted integral. A more complex integral captures how a concave object shadows itself, where the integrand is multiplied by an additional transport factor tions are representing visibility along each direction. tunately, Our approach is to precompute for a given object the expensive environ- transport simulation required by complex transfer functions like 25], rad- shadowing. The resulting transfer functions are represented as a ple point dense set of vectors or matrices over its surface. Meanwhile, ndering. incident radiance need not be precomputed. The graphics hard- difficul- ware can dynamically sample incident radiance at a number of s of real points. Analytic models, such as skylight models [33] or simple
  • 11. Our Design Goals 1. High-performance preview ■ Low-latency feedback ■ Fast initial precomputation 2. Seamless integration ■ Same input: RenderMan scene & shaders ■ Same output: high quality image 3. Ease of implementation & maintenance
  • 14. System Overview RenderMan cache & scene & preview shaders shaders automatic caching
  • 15. System Overview RenderMan cache & preview preview image scene & shaders shaders relighting automatic engine caching (gpu)
  • 16. System Overview RenderMan cache & preview preview image scene & shaders shaders relighting automatic engine caching (gpu) lighting parameters one-time precomputation iterative preview
  • 17. System Overview RenderMan cache & preview preview image scene & shaders shaders relighting automatic engine caching (gpu) lighting parameters Automatic for real production scenes ‣ specialization & translation ‣ cache compression
  • 18. System Overview RenderMan cache & preview preview image scene & shaders shaders relighting automatic engine caching (gpu) lighting parameters Automatic High fidelity for real production scenes antialiasing, motion blur, ‣ specialization & translation transparency ‣ cache compression ‣ indirect framebuffer
  • 19. Automatic Caching RenderMan cache & preview preview image scene & shaders shaders relighting automatic engine caching (gpu) lighting parameters
  • 21. Program Analysis mySurface(color
c)
{ albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); return
albedo*shade; }
  • 22. Program Analysis mySurface(color
c)
{ dynamic albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); return
albedo*shade; } what part of the code depends on the lighting parameter L?
  • 23. Program Analysis mySurface(color
c)
{ dynamic albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); static return
albedo*shade; } everything else is static
  • 24. Program Analysis mySurface(color
c)
{ dynamic albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); static return
albedo*shade; cache } values at the boundary are cached for reevaluation
  • 25. Program Analysis mySurface(color
c)
{ albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); return
albedo*shade; }
  • 26. Program Analysis albedo shade mySurface(color
c)
{ albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); return
albedo*shade; } c Texture Light BRDF U V L N
  • 27. Deep Framebuffer Generation mySurface(color
c)
{ albedo
=
c*Texture(U,V); shade
=
Light(L)*BRDF(N,L); return
albedo*shade; }
  • 28. Deep Framebuffer Generation caching shader mySurfaceCache(color
c)
{ albedo
=
c*Texture(U,V); cache(N); cache(albedo); }
  • 29. Deep Framebuffer Generation N albedo final deep renderer framebuffer cache caching shader mySurfaceCache(color
c)
{ albedo
=
c*Texture(U,V); cache(N); cache(albedo); }
  • 30. Deep Framebuffer Generation N albedo deep framebuffer cache caching shader
  • 31. Deep Framebuffer Generation N albedo deep framebuffer cache caching shader mySurfaceDynamic(vector
L)
{ N
=
lookup(); albedo
=
lookup(); shade
=
Light(L)*BRDF(N,L); preview return
albedo*shade; shader }
  • 32. Deep Framebuffer Generation N albedo deep framebuffer cache caching shader mySurfaceDynamic(vector
L)
{ N
=
lookup(); albedo
=
lookup(); shade
=
Light(L)*BRDF(N,L); preview return
albedo*shade; shader }
  • 33. Deep Framebuffer Generation N albedo deep framebuffer cache caching shader rendered shade image preview shader
  • 35. Automatic Caching RenderMan scene scene preprocessor RenderMan shaders
  • 36. Automatic Caching RenderMan scene scene preprocessor program analysis RenderMan shaders
  • 37. Automatic Caching RenderMan scene scene preprocessor caching shaders program analysis RenderMan shaders
  • 38. Automatic Caching deep RenderMan framebuffer scene scene preprocessor cache x2 x1 final N P renderer caching shaders program analysis RenderMan shaders
  • 39. Automatic Caching deep RenderMan framebuffer scene scene preprocessor cache x2 x1 final N P renderer caching shaders program analysis RenderMan dynamic shaders preview shaders
  • 40. Automatic Caching challenge: cache size deep RenderMan framebuffer scene scene preprocessor cache x2 program analysis is final x1 N P conservative renderer caching shaders generates many cached terms program analysis (hundreds) RenderMan dynamic shaders preview shaders large caches (gigabytes)
  • 41. Cache Compression deep RenderMan framebuffer scene scene preprocessor cache x2 x1 final N P renderer caching shaders Remove redundant program analysis values after caching RenderMan dynamic shaders preview shaders
  • 42. Cache Compression deep RenderMan framebuffer scene scene preprocessor cache x2 x1 N final N cache P P renderer compression caching shaders Remove redundant program analysis values after caching RenderMan dynamic shaders preview shaders
  • 43. Cache Compression deep RenderMan framebuffer scene scene preprocessor cache x2 x1 N final N cache P P renderer compression caching shaders Remove redundant program analysis values after caching RenderMan shaders dynamic preview → 5x compression shaders
  • 44. System Overview deep RenderMan framebuffer scene scene preprocessor cache N P final cache renderer compr. comp. caching shaders program analysis RenderMan dynamic shaders preview shaders
  • 45. System Overview deep RenderMan framebuffer scene scene preprocessor cache N P final cache renderer comp. caching shaders program analysis RenderMan dynamic shaders preview shaders
  • 46. System Overview deep RenderMan framebuffer scene scene preprocessor cache N P final cache renderer comp. relighting caching shaders engine (gpu) program analysis preview image RenderMan dynamic shaders preview shaders lighting parameters
  • 47. System Overview antialiasing? RenderMan scene scene preprocessor deep framebuffer cache transparency? N P final cache renderer comp. relighting caching shaders engine (gpu) program analysis preview image RenderMan dynamic shaders preview shaders lighting parameters
  • 50. Classical Deep Framebuffer x2 deep x1 framebuffer N cache B P cache shade A Cache one sample per-pixel rendered Shade cache values to render image image
  • 51. Classical Deep Framebuffer x2 deep x1 framebuffer N cache B P cache shade A How can we do antialiasing? rendered image
  • 52. Classical Deep Framebuffer supersample image x2 x1 N B P cache shade A How can we do antialiasing? transparency?
  • 53. Classical Deep Framebuffer x4 supersample x3 cache N B P cache shade A supersample shading How can we do antialiasing? transparency?
  • 54. Classical Deep Framebuffer x4 x3 N B P ...? cache shade A How can we do antialiasing? ...? transparency?
  • 55. Our Indirect Framebuffer ■ Decouple shading from visibility ■ only supersample visibility ‣ Do what RenderMan does ■ Compress samples based on static visibility
  • 56. RenderMan / REYES B show *filtering* pixel color? A
  • 57. RenderMan / REYES B b1 show *filtering* pixel color? b2 a1 A dice into micropolygons
  • 58. RenderMan / REYES B b1 show *filtering* pixel color? b2 a1 A shade micropolygons
  • 59. RenderMan / REYES B b1 show *filtering* pixel color? b2 a1 A rasterize micropolygons
  • 60. RenderMan / REYES B b1 show *filtering* pixel color? b2 a1 A
  • 61. RenderMan / REYES 1 2 B a1 b2 b1 show *filtering* 1 2 pixel color? b2 3 a 1 4 3 4 A a1 a1 pixel = a1+b2+a1+a1
  • 62. RenderMan / REYES 1 2 B a1 b2 b1 show *filtering* 1 2 pixel color? b2 3 a 1 4 3 4 A a1 a1 pixel = a1+b2+a1+a1 4
  • 63. RenderMan / REYES 1 2 B a1 b2 b1 show *filtering* 1 2 pixel color? b2 3 a 1 4 3 4 A a1 a1 pixel = a1+b2+a1+a1 = 0.75*a1+0.25*b2 4
  • 64. RenderMan / REYES 1 2 B a1 b2 b1 show *filtering* 1 2 pixel color? b2 3 a 1 4 3 4 A a1 a1 pixel = ?
  • 65. RenderMan / REYES B b1 b2 a1 A pixel = ?
  • 66. RenderMan / REYES 1 B a1 b1 α=0.3 α=1.0 b1 0.3*a1+0.7*b1 1 b2 a1 A pixel = ?
  • 67. RenderMan / REYES 1 2 B a1 b1 b2 α=0.3 α=1.0 α=1.0 b1 2 0.3*a1+0.7*b1 1.0*b2 1 b2 a1 A pixel = ?
  • 68. RenderMan / REYES 1 2 B a1 b1 b2 α=0.3 α=1.0 α=1.0 b1 2 0.3*a1+0.7*b1 1.0*b2 1 b2 3 a 1 4 3 4 A a1 a1 b2 α=0.3 α=0.3 α=1.0 0.3*a1 0.3*a1+0.7*b1 pixel = ?
  • 69. RenderMan / REYES 1 2 B a1 b1 b2 α=0.3 α=1.0 α=1.0 b1 2 0.3*a1+0.7*b1 1.0*b2 1 b2 3 a 1 4 3 4 A a1 a1 b2 α=0.3 α=0.3 α=1.0 0.3*a1 0.3*a1+0.7*b1 pixel = 0.225*a1+0.35*b1+0.25*b2
  • 72. Indirect Framebuffer b1 a1b2 x4 x4 deep x1 x3 x3 buffer N x2 x2 P P P a1 b1 b2 no longer image space (per-micropolygon)
  • 73. Indirect Framebuffer b1 a1b2 x4 x4 deep x1 x3 x3 buffer N x2 x2 P P P a1 b1 b2 shading shade samples shaded like a conventional deep-framebuffer
  • 74. Indirect Framebuffer b1 a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer N x2 x2 P P P a1 b1 b2 shading shade samples
  • 75. Indirect Framebuffer b1 a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.225 0.35 0.25 N x2 x2 P P P a1 b1 b2 shading shade samples densely stored in vertex array, on GPU
  • 76. Indirect Framebuffer b1 a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.225 0.35 0.25 N x2 x2 P P P a1 b1 b2 blend shading final shade samples pixel 4 subpixel samples, 2 transparent layers only 3 unique micropolygons
  • 77. Indirect Framebuffer b1 a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.225 0.35 0.25 N x2 x2 P P P a1 b1 b2 blend shading final shade samples pixel 4 subpixel samples, 2 transparent layers only 3 unique micropolygons all contributions linearized into a single weight
  • 78. More samples, b1 Same cost a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.242 0.331 0.245 N x2 x2 P P P a1 b1 b2 blend shading final shade samples pixel
  • 79. More samples, b1 Same cost a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.242 0.331 0.245 N x2 x2 P P P a1 b1 b2 blend shading final shade samples pixel
  • 80. More samples, b1 Same cost a1b2 indirect framebuffer x4 x4 deep x1 x3 x3 buffer 0.242 0.331 0.245 N x2 x2 P P P a1 b1 b2 blend shading final shade samples pixel
  • 81. Indirect Framebuffer Results antialiasing motion blur transparency identical to RenderMan
  • 82. Indirect Framebuffer Results antialiasing motion blur transparency identical to RenderMan RenderMan 45M micropolygons 60M subpixel samples brute-force >100M samples Indirect framebuffer 10M deep fb +15M indirect fb 720x389, 64x supersampling
  • 84. System Architecture RenderMan scene scene preprocessor RenderMan shaders
  • 85. System Architecture RenderMan scene scene preprocessor program analysis RenderMan shaders
  • 86. System Architecture RenderMan scene scene preprocessor caching shaders program preview analysis shaders RenderMan shaders
  • 87. System Architecture RenderMan scene scene preprocessor final renderer caching shaders program preview analysis shaders RenderMan shaders
  • 88. System Architecture RenderMan scene scene preprocessor deep fb indirect fb final cache x2 x1 renderer compr. N P caching shaders program preview analysis shaders RenderMan shaders
  • 89. System Architecture RenderMan scene scene preprocessor relighting engine (GPU) deep fb indirect fb final cache x2 x1 renderer compr. N P caching shaders program preview analysis shaders RenderMan shaders
  • 90. System Architecture RenderMan scene scene preprocessor relighting engine (GPU) deep fb indirect fb final cache x2 x1 renderer compr. N P caching shaders shade program preview analysis shaders RenderMan shaders
  • 91. System Architecture RenderMan scene scene preprocessor relighting engine (GPU) deep fb indirect fb rendered image final cache x2 x1 renderer compr. N P caching shaders shade blend program preview analysis shaders RenderMan shaders
  • 92. System Architecture RenderMan scene scene preprocessor relighting engine (GPU) deep fb indirect fb rendered image final cache x2 x1 renderer compr. N P caching shaders shade blend program preview analysis shaders lighting parameters RenderMan shaders one-time precomputation iterative preview
  • 93. Additional Features ■ Shadows ■ Subsurface Scattering ■ Performance enhancement ■ Progressive Refinement ■ Light Caching … ■ Tiling
  • 94. Results initial feedback: 0.05 sec full refinement: 0.7 sec Lightspeed 720x389 offline render: 5 mins
  • 95. Results initial feedback: 0.05 sec full refinement: 0.7 sec RenderMan Lightspeed 720x389 offline render: 5 mins
  • 97. Results caching: 16 mins initial feedback: 0.11 sec full refinement: 2.7 sec 914x389 offline render: 59 mins 13x13 antialiasing 42 lights
  • 98. Results caching: 16 mins initial feedback: 0.11 sec full refinement: 2.7 sec Lightspeed RenderMan 914x389 offline render: 59 mins 13x13 antialiasing 42 lights
  • 99. Results caching: 16 mins initial feedback: 0.11 sec full refinement: 2.7 sec Lightspeed RenderMan 914x389 offline render: 59 mins 13x13 antialiasing 42 lights
  • 104. Limitations ■ GPU programming model ■ Dynamic calls to external C code ■ Complex data structures ■ GPU limits (bandwidth, memory, registers) ■ Fully-accurate dynamic ray tracing ■ Unbounded dynamic loops ■ Additional features not yet implemented ■ Indirect diffuse ■ Deep shadows ■ Non-linear lights
  • 105. Discussion ■ Automatic and manual specialization (Lpics) both have advantages ■ Manual specialization allows hand optimization ■ Compiler requires up-front R&D, never perfect (especially on the GPU) ■ Saves significant time in production ■ Some material parameters are editable ■ Cache compression is key to practical automatic specialization much simpler than fancy static analysis ■ Indirect Framebuffer is powerful, scalable
  • 106. Summary ■ Interactive lighting preview milliseconds instead of hours ■ Automatic caching for our production scenes ■ Program analysis ■ Cache compression ■ Indirect framebuffer ■ Efficient antialiasing, motion blur, transparency ■ Progressive refinement ■ In use on current productions
  • 107. Acknowledgments Inception: Pat Hanrahan, Ujval Kapasi Compilers: Alex Aiken, John Kodumal Tippett: Aaron Luk, Davey Wentworth ILM: Alan Trombla, Ed Hanway, Dan Goldman, Steve Sullivan, Paul Churchill Images: Michael Bay, Dan Piponi Money: NSF, NVIDIA, MSR, Sloan & Ford fellowships
  • 108. Summary ■ Interactive lighting preview milliseconds instead of hours ■ Automatic caching for our production scenes ■ Program analysis ■ Cache compression ■ Indirect framebuffer ■ Efficient antialiasing, motion blur, transparency ■ Progressive refinement ■ In use on current productions
  • 109. EXTRAS
  • 110. Cache Compression deep framebuffer cache Remove redundant values after caching ■ non-varying same for many pixels ■ non-unique same within a pixel unique varying → 4-5x compression
  • 111. Cache Compression shader dynamic varying unique (static analysis) (compressed) generic surface 402 145 97 metallic paint 450 150 97
  • 112. Visibility Compression Indirect RenderMan Framebuffer scene res. samples shade subpix shade indirect robot 914x389 13x13 2.1M 32M 633k 1.6M robot 720x306 13x13 1.5M 21M 467k 3.8M (blur) pirate 640x376 4x4 2.5M 2.3M 327k 716k hairs 720x389 8x8 43M 58M 11M 17M