Path-space motion estimation, VFX rendering technique.
Particular embodiments decompose an image comprising a scene into a diffuse component and a specular component. Each of the components represent a contribution to lighting in the scene. A set of motion vectors may be extracted in order to capture motion in the scene. Finally, a final contribution of each of the components to the image may be computed based on the motion vectors.
TECHNICAL FIELD(1) This disclosure generally relates to three-dimensional (“3D”) computer graphics.BACKGROUND(2) Pixar is well known for producing award-winning three-dimensional (“3D”) computer-animated films, such as “Toy Story” (1995), “Monsters, Inc.” (2001), “Finding Nemo” (2003), “The Incredibles” (2004), “Ratatouille” (2007), “WALL-E” (2008), “Up” (2009), and “Brave” (2012). In order to produce films such as these, Pixar developed its own platform for network-distributed rendering of complex 3D graphics, including ray-traced 3D views. The RenderMan® platform includes the RenderMan® Interface Specification (an API to establish an interface between modeling programs, e.g., AUTODESK MAYA, and rendering programs in order to describe 3D scenes), RenderMan® Shading Language (a language to define various types of shaders: surface, light, volume, imager, and displacement), and PhotoRealistic RenderMan® (a rendering software system).(3) Modern computer-animated movies have reached an impressive level of visual complexity and fidelity, driven in part by the industry adoption of physically based rendering and production path tracing. Unfortunately, these gains come at tremendous computational effort. Given that hundreds of thousands of frames are needed for a feature length film, the computational costs are a critical factor that will become even more important with the proliferation of stereoscopic, high-resolution, and high-frame rate cinema and home displays.(4) These computat
1. A method comprising, by one or more computing systems: for each of a plurality of pixels in an image comprising a scene: decomposing a color of the pixel into a diffuse component and a specular component, each of the components representing a contribution to lighting in the scene; extracting a set of motion vectors for the pixel in order to capture motion in the scene by performing temporal manifold exploration of light paths in the specular component, wherein one of the motion vectors in the set corresponds to the diffuse component and one of the motion vectors in the set corresponds to the specular component, wherein the temporal manifold exploration is performed only up to a first non-specular interaction or light source, and wherein endpoints of the light paths remain attached to their underlying objects in the scene; and computing, based on the motion vectors, a final contribution of each of the components to the color of the pixel.
10. One or more computer-readable non-transitory storage media embodying software comprising instructions operable when executed to: for each of a plurality of pixels in an image comprising a scene: decompose a color of the pixel into a diffuse component and a specular component, each of the components representing a contribution to lighting in the scene; extract a set of motion vectors for the pixel in order to capture motion in the scene by performing temporal manifold exploration of light paths in the specular component, wherein one of the motion vectors in the set corresponds to the diffuse component and one of the motion vectors in the set corresponds to the specular component, wherein the temporal manifold exploration is performed only up to a first non-specular interaction or light source, and wherein endpoints of the light paths remain attached to their underlying objects in the scene; and compute, based on the motion vectors, a final contribution of each of the components to the color of the pixel.
15. A system comprising one or more processors and a memory coupled to the processors comprising instructions executable by the processors, the processors being operable when executing the instructions to: for each of a plurality of pixels in an image comprising a scene: decompose a color of the pixel into a diffuse component and a specular component, each of the components representing a contribution to lighting in the scene; extract a set of motion vectors for the pixel in order to capture motion in the scene by performing temporal manifold exploration of light paths in the specular component, wherein one of the motion vectors in the set corresponds to the diffuse component and one of the motion vectors in the set corresponds to the specular component, wherein the temporal manifold exploration is performed only up to a first non-specular interaction or light source, and wherein endpoints of the light paths remain attached to their underlying objects in the scene; and compute, based on the motion vectors, a final contribution of each of the components to the color of the pixel.