Composite rendering 3-D graphical objects
AssigneeAdobe Systems Incorporated
InventorJonathan Shekter
Life of this patent
Estimating the term…
Abstract
Methods and apparatus for 3-D image compositing. The compositing system can be used to render 3-D objects together to a scene, to combine together separately rendered 3-D objects in a scene including previously rendered objects, or to render some objects together while separately rendering and combining together other objects in a scene. The system correctly handles image processing effects including anti-alias, motion-blur and depth-of-field effects in all regions of the scene, including regions where the objects within the scene intersect. The resulting scenes have the same high image quality regardless of which image objects are rendered together and which are later combined or composited to the final image.
Claims55
A method for creating a motion buffer to store the local properties of one or more scan-converted 3-D objects, comprising:
- receiving one or more 3-D objects, wherein each 3-D object comprises one or more object primitives;
- scan-converting each 3-D object's one or more object primitives into a plurality of pixel fragments corresponding to a plurality of pixels in a 2-D scene, wherein each pixel fragment is configured to store the local properties of a scan-converted object primitive including the object primitive's local color, depth, coverage, transfer mode, rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the object primitive's surface;
- and
- inserting each of the pixel fragments into the motion buffer for subsequent composition to the 2-D scene.
A method for compositing one or more scan-converted 3-D objects to a 2-D scene, comprising:
- receiving a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the scan-converted object's surface;
- and
- resolving the motion buffer by using the information stored in the motion buffer to composite the one or more scan-converted 3-D objects to the 2-D scene.
A method for rendering a plurality of scan-converted 3-D objects to a 2-D scene, comprising:
- splitting the plurality of scan-converted 3-D objects into one or more object clusters;
- rendering all non-simple object clusters to a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth with time and surface geometry information;
- and
- resolving the motion buffer to composite the non-simple object clusters to the 2-D scene.
A computer program product, implemented on a machine readable medium, for creating a motion buffer to store the local properties of one or more 3-D objects, the computer program product comprising instructions operable to cause a programmable processor to;
- receive one or more 3-D objects, wherein each 3-D object comprises one or more object primitives;
- scan-convert each 3-D object's one or more object primitives into a plurality of pixel fragments corresponding to a plurality of pixels in a 2-D scene, wherein each pixel fragment is configured to store the local properties of a scan-converted abject primitive including the object primitive's local color, depth, coverage, transfer mode, primitive's rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the object primitive's surface;
- and
- insert each of the pixel fragments into the motion buffer for subsequent composition to the 2-D scene.
A computer program product, implemented on a machine readable medium, for compositing one or more scan-converted 3-D objects to a 2-D scene, the computer program product comprising instructions operable to cause a programmable processor to:
- receive a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, each scan-converted 3-D object's rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the scan-converted 3-D object's surface;
- and
- resolve the motion buffer by using the information stored in the motion buffer to composite the one or more scan-converted 3-D objects to the 2-D scene.
A computer program product, implemented on a machine readable medium, for compositing one or more scan-converted 3-D objects to a 2-D scene, the computer program product comprising instructions operable to cause a programmable processor to:
- receive a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode and surface geometry information;
- and to
- resolve the motion buffer by using the information stored in the motion buffer to composite and depth-of-field blur the one or more scan converted 3-D objects to the 2-D scene;
- wherein the instructions to depth-of-field blur the one or more scan-converted 3-D objects further comprises instructions to:
- use the depth and surface geometry information for the one or more 3-D objects to extend, on an output buffer pixel basis, the surfaces of the one or more 3-D objects into an extended output buffer pixel;
- determine whether the extended surfaces of two or more of the 3-D objects intersect over the extended output buffer pixel;
- and
- blend the colors of the one or more 3-D objects with the color of the output buffer pixel as if two or more of the 3-D objects intersected over the output buffer pixel whenever the extended surfaces of two or more of the 3-D objects intersect over the extended output buffer pixel.
A computer program product, implemented on a machine readable medium, for compositing one or more scan-converted 3-D objects to a 2-D scene, wherein the surfaces of two or more of the 3-D objects pass through each other over an output buffer pixel in the 2-D scene during a shutter interval, the computer program product comprising instructions operable to cause a programmable processor to:
- receive a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode and rate of change of depth with time;
- and to
- resolve the motion buffer by using the information stored in the motion buffer to composite and motion-blur the one or more scan-converted 3-D objects to the 2-D scene;
- wherein the instructions to motion-blur the one or more scan-converted 3-D objects further comprises instructions to:
- determine the number of time periods during the shutter interval in which the one or more 3-D objects are uniquely layered, and the duration of each uniquely layered time period;
- determine a blended color for each uniquely layered time period by blending in depth sorted order the color of each of the one or more 3-D objects with the color of the output buffer pixel according to each of the one or more 3-D objects' transfer modes;
- and
- paint the output buffer pixel with a weighted average of the blended colors for each uniquely layered time period, wherein the weight assigned to the blended color of a uniquely layered time period is determined by the duration of that time period.
A computer program product, implemented on a machine readable medium, for compositing one or more scan-converted 3-D objects to a 2-D scene, wherein the surfaces of two or more of the 3-D objects intersect and pass through each other over an output buffer pixel in the 2-D scene during a shutter interval, the computer program product comprising instructions operable to cause a programmable processor to:
- receive a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth with time surface geometry information;
- and to
- resolve the motion buffer by using the information stored in the motion buffer to composite, anti-alias and motion-blur the one or more scan-converted 3-D objects to the 2-D scene;
- wherein the instruction to anti-alias and motion-blur the one or more scan-converted 3-D objects further comprises instructions to:
- divide the area of the output buffer pixel and the shutter interval into a number of uniquely layered space-time regions, wherein for each uniquely layered space-time region the surfaces of the one or more 3-D objects are uniquely layered over a portion of the output buffer pixel for a portion of the shutter interval;
- determine the number and volume of each uniquely layered space-time region, wherein the volume of a uniquely layered space-time region is calculated from the portion of the output buffer pixel and the portion of the shutter interval occupied by the space-time region;
- determine a blended color for each uniquely layered space-time region by blending in depth sorted order the color of each of the one or more 3-D objects stored in the motion buffer with the color of the output buffer pixel according to each object's transfer mode;
- and
- paint the output buffer pixel with a weighted average of the blended colors for each uniquely layered space-time region, wherein the weight assigned to the blended color of a uniquely layered space-time region is determined by the volume of that uniquely layered space-time region.
A computer program product, implemented on a machine readable medium, far rendering a plurality of scan-converted 3-D objects to a 2-D scene, the computer program product comprising instructions operable to cause a programmable processor to:
- split the plurality of scan-converted 3-D objects into one or more object clusters;
- render all non-simple object clusters to a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth with time and surface geometry information;
- and
- resolve the motion buffer to composite the non-simple object clusters to the 2-D scene.
A computer system comprising:
- a display device for displaying information to a user;
- a user input device for providing user input to the computer system;
- at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to at least one of a memory, the user input device or the display device, wherein the memory stores instructions executable by the at least one programmable processor for creating a motion buffer to store the local properties of one or more scan-converted 3-D objects, the instructions being operable to cause the at least one programmable processor to:
- receive one or more 3-D objects, wherein each 3-D object comprises one or more object primitives;
- scan-convert each 3-D object's one or more object primitives into a plurality of pixel fragments corresponding to a plurality of pixels in a 2-D scene, wherein each pixel fragment is configured to store the local properties of a scan-converted object primitive including the object primitive's local color, depth, coverage, transfer mode, rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the object primitive's surface;
- and
- insert each of the pixel fragments into the motion buffer for subsequent composition to the 2-D scene.
A computer system comprising:
- a display device for displaying information to a user;
- a user input device for providing user input to the computer system;
- at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to at least one of a memory, the user input device or the display device, wherein the memory stores instructions executable by the at least one programmable processor and operable to cause the at least one programmable processor to:
- receive a motion buffer, the motion buffer containing the rendered local properties of one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth with time, and surface geometry information, wherein the surface geometry information comprises spatial information about the scan-converted object's surface;
- and
- resolve the motion buffer by using the information stored in the motion buffer to composite the one or more scan-converted 3-D objects to the 2-D scene.
A computer system comprising:
- a display device for displaying information to a user;
- a user input device for providing user input to the computer system;
- at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to at least one of a memory, the user input device or the display device, wherein the memory stores instructions executable by the at least one programmable processor and operable to cause the at least one programmable processor to:
- split the plurality of scan-converted 3-D objects into one or more object clusters;
- render all non-simple object clusters to a motion buffer, the motion buffer containing the rendered local properties of the one or more scan-converted 3-D objects including each scan-converted 3-D object's color, depth, coverage, transfer mode, rate of change of depth and surface geometry information;
- and
- resolve the motion buffer to composite the non-simple object clusters to the 2-D scene.
Dependencies are inferred from the claim text.