Patents by Inventor Nathan A. Carr

Nathan A. Carr has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8259110
    Abstract: A method and apparatus for computing direct lighting in a scene is described. For a sparse set of points in the scene, occlusion information for the points and each of one or more light sources may be computed and stored. For all other surface points in the scene, nearby sample points are examined to determine if their occlusion information agrees. For any light source for which nearby sample points do not agree, lighting computation may be performed, e.g. by the casting of shadow rays. Such areas comprise regions in penumbra or shadow boundaries. For all other regions, it is assumed that they are fully lit or fully occluded, and thus the casting of shadow rays can be avoided.
    Type: Grant
    Filed: June 19, 2008
    Date of Patent: September 4, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Aravind Krishnaswamy, Jared M. Johnson, Gavin S. P. Miller
  • Patent number: 8253730
    Abstract: A method, system, and computer-readable storage medium are disclosed for building ray tracing data structures for three-dimensional scenes. The methods may include accessing an initial data structure representing a coarse hierarchy of a scene geometry, e.g., a scene graph, and sorting elements of the initial data structure into multiple spatial partitions with respect to one or more splitting planes. The sorting may be dependent on spatial bounding ranges of non-leaf nodes of the initial data structure, which may be sorted without visiting the geometric primitives below. Sorting may be performed on pointers to elements of the initial data structure and may comprise a hierarchical quicksort. The resulting ray tracing data structure may comprise a k-dimensional tree, binary space partitioning tree, k-plane tree, bounding interval hierarchy, or fine-grained hierarchical bounding volume tree.
    Type: Grant
    Filed: August 29, 2008
    Date of Patent: August 28, 2012
    Assignee: Adobe Systems Incorporated
    Inventor: Nathan A. Carr
  • Patent number: 8229247
    Abstract: A method is operable to receive an image, where the image includes an input scene, which in turn includes one or more objects. The method associates a non-regular distribution of pins with the input scene, wherein each pin is associated with a respective portion of the input scene, wherein said associating transforms the image into a first deformation domain. The method can receive input specifying symmetry between the one or more objects in the input scene. The method may receive input to deform the input scene, and using that input, map the input scene from the first deformation domain into a second deformation domain, generating a corresponding output scene, while preserving the symmetry. The method detects structural and/or local similarities between the first and the second domain, and transforms the output scene from the second deformation domain into an output image while preserving both the structural and the local similarities.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: July 24, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Qi-xing Huang, Nathan A. Carr, Radomir Mech
  • Patent number: 8223148
    Abstract: A method and apparatus for diffuse indirect lighting computation in a scene is described. An irradiance caching algorithm may be implemented in an indirect lighting module that sparsely computes irradiance in the environment and then interpolates irradiance values between these sparsely computed points. The method for diffuse indirect lighting computation may use cosine weighting in determining nearby sample irradiance points to be used in interpolation. If an object detected by a ray is directly overhead, embodiments may assume a significant amount of occlusion or indirect illumination of that surface point, and thus may weight the ray more heavily. If an object is off to the side, and thus at a shallow angle to a normal of the surface point under test, the ray is given less weight. By using cosine weighting, the indirect lighting module tends to space out sample irradiance points better around edges and cracks than conventional techniques.
    Type: Grant
    Filed: June 19, 2008
    Date of Patent: July 17, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Aravind Krishnaswamy, Jared M. Johnson
  • Patent number: 8217934
    Abstract: Systems, methods, and computer-readable storage media for rendering three-dimensional scenes including transparent surfaces are described, including two techniques for efficient rendering of transparent surfaces that exploit partial ordering in the scene geometry. The first (hybrid layer peeling) may combine unordered meshes with ordered meshes in an efficient way, and may be well suited for rendering scenes such as volumes with embedded transparent meshes. The second (coherent layer peeling) may efficiently detect and render correctly sorted fragment sequences for a given pixel in one iteration, allowing for a smaller number of passes than traditional depth peeling. Pre-sorting and/or periodic sorting of some or all of the surfaces in a scene may be performed, but perfect sorting may not be required. The methods may be implemented in hardware, software, or a combination thereof, such as by program instructions executable on one or more CPUs and/or GPUs.
    Type: Grant
    Filed: July 22, 2008
    Date of Patent: July 10, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Gavin S. P. Miller, Radomir Mech
  • Publication number: 20110267363
    Abstract: A method, system, and computer-readable storage medium are disclosed for rendering an artwork comprising a plurality of surfaces, wherein the plurality of surfaces comprises a plurality of semi-transparent surfaces. Each of the semi-transparent surfaces may be rendered to a first image buffer at a multi-sampled resolution. Each of the rendered semi-transparent surfaces at the multi-sampled resolution may be multiplied by one or more transparency values of one or more of the plurality of surfaces nearer than the rendered semi-transparent surface. Each of the rendered and attenuated semi-transparent surfaces may be reduced from the multi-sampled resolution to a display resolution and added at the display resolution to a second image buffer.
    Type: Application
    Filed: May 17, 2007
    Publication date: November 3, 2011
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 7973803
    Abstract: A method, system, and computer-readable storage medium are disclosed for rendering an artwork comprising a plurality of surfaces, wherein the plurality of surfaces comprises a plurality of sets of semi-transparent surfaces. Each of the sets of semi-transparent surfaces may be rendered to a multi-sampling image buffer comprising an array of sub-pixels, wherein each sub-pixel in the array of sub-pixels is indexed to a corresponding one of the semi-transparent surfaces in the set. Each of the sets of rendered semi-transparent surfaces may be multiplied by one or more transparency values of one or more surfaces that occlude the respective sub-pixel in the corresponding semi-transparent surface. Each of the sets of rendered and attenuated semi-transparent surfaces may be added to a second image buffer comprising an array of pixels at a display resolution.
    Type: Grant
    Filed: May 17, 2007
    Date of Patent: July 5, 2011
    Assignee: Adobe Systems Incorporated
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 7920741
    Abstract: A system and method for performing integral histogram convolution for filtering image data is disclosed. The method may include generating an initial histogram for a kernel region of an input image comprising two or more column histograms. Each histogram may include a plurality of bucket values, each representing a sum of weights associated with pixels having the same value or a count of pixels having the same value. The method may include incrementally generating a region histogram for each successive region of the image as the kernel is passed over the image and applying a convolution operation to it. Generating the new region histogram may involve merging an additional column histogram with the initial or current region histogram, and may also involve subtracting values of a preceding column histogram from the initial or current histogram. The methods may be implemented by program instructions executing in parallel on CPU(s) or GPUs.
    Type: Grant
    Filed: May 31, 2007
    Date of Patent: April 5, 2011
    Assignee: Adobe Systems Incorporated
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 7889923
    Abstract: A method for merging histograms may include generating a histogram for a region of an image, the histogram including bucket values representing a count of pixels having the same pixel value or a weighting dependent on the pixels. The method may include maintaining an array of values indicating non-zero histogram entries for a group of bucket values (e.g., a count of non-zero bucket values in the group or a bitmask indicating if each bucket value is non-zero). A sparse histogram for which such an array exists may be merged with a second histogram. Merging the histograms may include not merging any bucket values in the group if the associated array value is zero, and merging some or all of the bucket values if it is non-zero. The methods disclosed may be implemented by program instructions executing in parallel on CPU(s) or GPUs.
    Type: Grant
    Filed: May 31, 2007
    Date of Patent: February 15, 2011
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Gavin S. P. Miller
  • Patent number: 7675524
    Abstract: A system and method for performing convolutions on image data using pre-computed acceleration data structures is disclosed. The method may include calculating intermediate convolution values for each of a plurality of blocks of pixels by performing an associative operation on the pixel values in each block. Each intermediate value may be associated with the block and indexed dependent on index values of pixels in the block. An image pyramid may include intermediate convolution values for multiple levels of acceleration by calculating intermediate convolution values for multiple block sizes. A convolution result for a kernel of an image may be produced by performing the associative operation on intermediate convolution values for non-overlapping blocks enclosed within the kernel and on pixel values associated with pixels in the kernel but not in one of the non-overlapping blocks. The methods may be implemented by program instructions executing in parallel on CPU(s) or GPUs.
    Type: Grant
    Filed: May 17, 2007
    Date of Patent: March 9, 2010
    Assignee: Adobe Systems, Incorporated
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 7656408
    Abstract: The animation of a border is described. A border associated with a portion of an image is provided. The border comprises pixels and the pixels are animated such that the pixels move in a direction within the border. The direction is configured to identify a location of the portion of the image.
    Type: Grant
    Filed: February 10, 2006
    Date of Patent: February 2, 2010
    Assignee: Adobe Systems, Incorporated
    Inventors: Jonathan Worthen Brandt, Nathan A. Carr
  • Publication number: 20090231337
    Abstract: Method and apparatus for the interactive enhancement of 2D art with 3D geometry. A surface inflation tool may be used to create a 3D shape by inflating the surface that interpolates the input boundaries. The surface inflation tool may, for example, obtain a closed 2D boundary as input, triangulate the area within the boundary to generate an initial surface, and inflate the surface while maintaining a fixed boundary. Using the mean curvature specified at boundary vertices as a degree of freedom, the tool may control the inflated surface efficiently using a single linear system. Embodiments handle both smooth and sharp position constraints. Position constraint vertices may also have curvature constraints specified for controlling the inflation of a local surface.
    Type: Application
    Filed: November 21, 2008
    Publication date: September 17, 2009
    Inventors: Nathan A. Carr, Pushkar P. Joshi
  • Publication number: 20090231338
    Abstract: Method and apparatus for the interactive enhancement of 2D art with 3D geometry. A surface inflation tool may be used to create a 3D shape by inflating the surface that interpolates the input boundaries. The surface inflation tool may, for example, obtain a closed 2D boundary as input, triangulate the area within the boundary to generate an initial surface, and inflate the surface while maintaining a fixed boundary. Using surface normal values and/or mean curvature values specified at boundary vertices as constraints, the tool may control the inflated surface efficiently using a single linear system. Embodiments handle both smooth and sharp position constraints. Position constraint vertices may also have constraints specified for controlling the inflation of a local surface.
    Type: Application
    Filed: November 21, 2008
    Publication date: September 17, 2009
    Inventors: Nathan A. Carr, Pushkar P. Joshi, James L. Andrews
  • Publication number: 20090184960
    Abstract: Systems, methods, and computer-readable storage media for rendering three-dimensional scenes including transparent surfaces are described, including two techniques for efficient rendering of transparent surfaces that exploit partial ordering in the scene geometry. The first (hybrid layer peeling) may combine unordered meshes with ordered meshes in an efficient way, and may be well suited for rendering scenes such as volumes with embedded transparent meshes. The second (coherent layer peeling) may efficiently detect and render correctly sorted fragment sequences for a given pixel in one iteration, allowing for a smaller number of passes than traditional depth peeling. Pre-sorting and/or periodic sorting of some or all of the surfaces in a scene may be performed, but perfect sorting may not be required. The methods may be implemented in hardware, software, or a combination thereof, such as by program instructions executable on one or more CPUs and/or GPUs.
    Type: Application
    Filed: July 22, 2008
    Publication date: July 23, 2009
    Inventors: Nathan A. Carr, Gavin S.P. Miller, Radomir Mech
  • Publication number: 20080298680
    Abstract: A system and method for performing integral histogram convolution for filtering image data is disclosed. The method may include generating an initial histogram for a kernel region of an input image comprising two or more column histograms. Each histogram may include a plurality of bucket values, each representing a sum of weights associated with pixels having the same value or a count of pixels having the same value. The method may include incrementally generating a region histogram for each successive region of the image as the kernel is passed over the image and applying a convolution operation to it. Generating the new region histogram may involve merging an additional column histogram with the initial or current region histogram, and may also involve subtracting values of a preceding column histogram from the initial or current histogram. The methods may be implemented by program instructions executing in parallel on CPU(s) or GPUs.
    Type: Application
    Filed: May 31, 2007
    Publication date: December 4, 2008
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 7403208
    Abstract: Jittered sub-pixel samples are used to reduce aliasing during rendering in a graphics pipeline. Sub-pixel samples are jittered using programmed sub-pixel offset values, permitting an application to select not only the number of sub-pixel samples within a pixel, but also the position of each sub-pixel sample within the pixel.
    Type: Grant
    Filed: March 23, 2006
    Date of Patent: July 22, 2008
    Assignee: NVIDIA Corporation
    Inventors: Rui M. Bastos, Nathan A. Carr
  • Patent number: 7050068
    Abstract: Jittered sub-pixel samples are used to reduce aliasing during rendering in a graphics pipeline. Sub-pixel samples are jittered using programmed sub-pixel offset values, permitting an application to select not only the number of sub-pixel samples within a pixel, but also the position of each sub-pixel sample within the pixel.
    Type: Grant
    Filed: December 2, 2003
    Date of Patent: May 23, 2006
    Assignee: NVIDIA Corporation
    Inventors: Rui M. Bastos, Nathan A. Carr