ray tracing solution for film production...
TRANSCRIPT
-
Ray Tracing Solution for Film Production
RenderingMarcos Fajardo
SIGGRAPH 2010 Global Illumination Across Industries
SIGGRAPH 2010
-
Distributed ray tracing, Cook et al.1984
Image courtesy of LucasfilmSIGGRAPH 2010
-
The Rendering Equation, Kajiya 1986
SIGGRAPH 2010
-
CGI Studio
• Blue Sky Studio’s proprietary renderer• Physically-based Monte Carlo ray tracer• Created by Carl Ludwig, Eugene
Troubetzkoy, Michael Ferraro et al.
• ex-MAGI/SynthaVision team (TRON etc)
SIGGRAPH 2010
-
Image courtesy of Blue Sky Studios, Inc.
Carl Ludwig 1990 (!)
SIGGRAPH 2010
-
Image courtesy of Blue Sky Studios, Inc.
uncredited,1991
SIGGRAPH 2010
-
Image courtesy of Blue Sky Studios, Inc.
John Kars 1992
SIGGRAPH 2010
-
Image courtesy of Blue Sky Studios, Inc.
“Bunny”, Best Animated Short 1998
SIGGRAPH 2010
-
Arnold
• Physically-based Monte Carlo ray tracer• Unbiased, uni-directional path tracing• Co-developed by Solid Angle SL and
Sony Pictures Imageworks, Inc.
SIGGRAPH 2010
-
“Pepe” 1999Image courtesy of Daniel Martinez Lara. © 1999
Daniel Martinez Lara. All rights reserved.
SIGGRAPH 2010
-
Image courtesy of Ruairi Robinson. © 2001 Zanita Films. All rights reserved.
“Fifty Percent Grey” 2001
SIGGRAPH 2010
-
Image courtesy of Columbia Pictures. © 2006 Columbia Pictures Industries, Inc. All rights reserved.
“Monster House” 2006
SIGGRAPH 2010
-
Image courtesy of Sony Pictures Animation. © 2009 Sony Pictures Animation, Inc. All rights reserved.
“Cloudy with a Chance of Meatballs” 2009
SIGGRAPH 2010
-
Image courtesy of Columbia Pictures. © 2009 Columbia Pictures Industries, Inc. All rights reserved.
“2012” 2009
SIGGRAPH 2010
-
“Alice in Wonderland” 2010
Lots of furry characters ...
SIGGRAPH 2010 Images courtesy of Walt Disney Pictures
-
What is Arnold?
• Unbiased Monte Carlo ray tracer• Uni-directional path tracer• 200k lines of highly optimized C/C++
code
• Fully multi-threaded + SIMD architecture
SIGGRAPH 2010
-
Production features• Motion blur (xform and deformation)• Networked, programmable shaders• Hundreds of millions of triangles and
hair splines
• Deferred/procedural loading of geometry
• Texture cachingSIGGRAPH 2010
-
Production features• Motion blur (xform and deformation)• Networked, programmable shaders• Hundreds of millions of triangles and
hair splines
• Deferred/procedural loading of geometry
• Texture cachingSIGGRAPH 2010
-
Pros• Single-pass: dramatically simpler
pipeline (no extra files or caches)
• Only one quality knob (number of samples)
• Shadows are always perfect (no shadowmaps etc)
• Interactive (via progressive refinement)• No memory used to store lighting/GI
SIGGRAPH 2010
-
Cons
• Slow?• Noise• Indoors are hard• Geometry must reside in memory at all
times
SIGGRAPH 2010
-
Address the cons!
• Three orthogonal axes:• make rays faster• reduce memory use (cost per
polygon)
• variance reduction
SIGGRAPH 2010
-
Address the cons!
• Aim for optimal multi-threading performance (linear scalability)
• 8-core machines are the norm at the workstation
• 32- and 64-core machines are in the horizon
SIGGRAPH 2010
-
Address the cons!
• Explore new ray acceleration structures• BVH, kd-tree etc• Build time is less important than
traversal
• Geometry quantization
SIGGRAPH 2010
-
Variance reduction• Good 2D (pixel, lens, light, BRDF) and 1D
(motion blur, volume) sample sets
• BRDF importance sampling• Solid angle-based light source importance
sampling
• Multiple importance sampling• Volume importance sampling• Careful with correlation between
dimensionsSIGGRAPH 2010
-
Geometry instancing• Easy to generate billions of visible
polygons
• Greatly helps in many common scenarios:
• cities• crowds• debris
SIGGRAPH 2010
-
Geometry instancing
SIGGRAPH 2010
Chew and Swallow city from Cloudy with a Chance of Meatballs1 million separate instanced objects, 2.5 GB
-
Geometry instancing
SIGGRAPH 2010
-
Geometry instancing
-
Geometry instancing
SIGGRAPH 2010
-
Interactivity
• Why is interactive feedback so important?
• CPU time: $0.1 / hour• artist time: $40 / hour• Final “beauty” render time is not as
important as reducing lighting overhead
SIGGRAPH 2010
-
SIGGRAPH 2010
1 million polys, area light, sky, 2-bounce GI, reflections(rendered on a single quad-core CPU, 4 threads)
-
Interactivity
• Can’t afford to have lighters waiting for shadowmaps, pointclouds and caches everytime they need to move a light
• Scene updates are interactive: lights, shaders, camera, moving geometry
• Inmediate feedback via progressive refinement
SIGGRAPH 2010
-
1.5 M displaced tris3 area lights + sky
diffuse + glossy + sss10x10 pixel samples
1920x1080
00:14
model by Glassworks LondonSIGGRAPH 2010
Low-overheaddeformationmotion blur
-
1.5 M displaced tris3 area lights + sky
diffuse + glossy + sss10x10 pixel samples
1920x1080
00:16
model by Glassworks LondonSIGGRAPH 2010
Low-overheaddeformationmotion blur
-
Less artistic freedom?• Often mentioned as a criticism for global
illumination renderers
• ... but in practice we are not getting many complaints, specially in photoreal projects
• Many optional controls:• light groups (e.g. lights for eyes only)• per-light spec/diffuse switches• hide/substitute objects for certain ray
typesSIGGRAPH 2010
-
Less artistic freedom?
SIGGRAPH 2010
"The initial expectation was that combined specular and reflection parameters would result in reduced ability to art-direct and dial the looks. In practice however, the imagery
looked more correct out of the box, we almost never received direction to dial specular illumination and reflection
independently."
Adam Martinez on Alice in Wonderland
-
Initial reluctance• Traditionally too slow for production use
...
• But both algorithms and hardware have improved dramatically in recent years
• GI is now “always on”, rarely turned off• By having it on by default, first-time
artists don’t have to press extra buttons and get up to speed more quickly
SIGGRAPH 2010
-
Some tricks
• Noisy caustics: turn off certain light paths
• Noisy caustics: broaden specular lobes for secondary bounces
• Clamp 1/d^2 term near the lights
SIGGRAPH 2010
-
Broaden specular lobes for direct lighting in secondary
bounces
SIGGRAPH 2010
phong_exponent = 2000 phong_exponent = 50
same render time!
-
Conclusion
• Path tracing for film production is here to stay
• Radically changes the rendering pipeline at film studios (after an initial period of scepticism)
• Still lots of room for improvement (sampling, new accels etc)
SIGGRAPH 2010
-
Thanks!
• Blue Sky: Carl Ludwig• Imageworks: Cliff Stein, Chris Kulla, Larry Gritz, Alex
Conty, Rene Limberger, Rob Bredow
• Solid Angle: Angel Jimenez, Borja Morales, Luis Armengol
• Glassworks: Andreas Byström
SIGGRAPH 2010
Ray Tracing Solution for Film Production RenderingSlide Number 2Slide Number 3CGI StudioImage courtesy of Blue Sky Studios, Inc.Image courtesy of Blue Sky Studios, Inc.Image courtesy of Blue Sky Studios, Inc.Image courtesy of Blue Sky Studios, Inc.Arnold“Pepe” 1999��Image courtesy of Daniel Martinez Lara. © 1999 Daniel Martinez Lara. All rights reserved.Image courtesy of Ruairi Robinson. © 2001 Zanita Films. All rights reserved.Image courtesy of Columbia Pictures. © 2006 Columbia Pictures Industries, Inc. All rights reserved.Image courtesy of Sony Pictures Animation. © 2009 Sony Pictures Animation, Inc. All rights reserved.Image courtesy of Columbia Pictures. © 2009 Columbia Pictures Industries, Inc. All rights reserved.Slide Number 15What is Arnold?Production featuresProduction featuresProsConsAddress the cons!Address the cons!Address the cons!Variance reductionGeometry instancingGeometry instancingGeometry instancingGeometry instancingGeometry instancingInteractivitySlide Number 31InteractivitySlide Number 33Slide Number 34Less artistic freedom?Less artistic freedom?Initial reluctanceSome tricksBroaden specular lobes for direct lighting in secondary bouncesConclusionThanks!
/ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages false /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages false /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False
/CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice