Patents by Inventor Gavin S. P. Miller

Gavin S. P. Miller 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: 8400447
    Abstract: A method, system, and computer-readable storage medium are disclosed for partitioning a scene with discrete oriented planes. In one embodiment, a scene comprising a plurality of objects may be partitioned into a plurality of sub-regions. The sub-regions may be divided by a plurality of planes having orientations selected from a discrete set of orientations comprising at least one orientation that is not the x axis, y axis, or z axis and is at a nonzero angle with respect to the x, y, or z axes. The partitioned scene may be stored in a binary tree comprising a plurality of nodes. Each node may correspond to a sub-region. In one embodiment, a ray tracing query may be solved for a particular ray. In solving the ray tracing query, the tree may be traversed to identify a first object of the plurality of objects intersected by the ray.
    Type: Grant
    Filed: February 15, 2008
    Date of Patent: March 19, 2013
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Gavin S. P. Miller, Adam G. Kirk
  • Patent number: 8379021
    Abstract: A system, methods, and computer-readable storage media for rendering height-field images that efficiently compute hard and soft shadows are disclosed. The system and methods may utilize a graphics representation comprising bounded 2D shapes with full 3D fill styles that affect shading, and an occlusion priority that determines visibility. The methods may include scan-coherent techniques for computing shadows from height-fields containing depth discontinuities while incrementally updating a convex hull of surface points. The methods may include a sweep-based algorithm for linear light source illumination of 2.5D graphical models across diagonal height-field cross-sections and/or a shear warp algorithm. Pre-computed (weighted) integrals corresponding to the light direction may be stored in tables according to a corresponding horizon angle and may be used in computing the lit intensity. The results may be free of aliasing artifacts.
    Type: Grant
    Filed: July 22, 2008
    Date of Patent: February 19, 2013
    Assignee: Adobe Systems Incorporated
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 8379025
    Abstract: Methods and apparatus for ray-casting 2D animated vector art on graphics hardware. Embodiments maintain curves in their analytic form when transmitted to the GPU. On the CPU, the curves in the vector art may be subdivided into a plurality of monotonic curve segments. A plurality of intervals may be generated from the curve segments. Further subdivision may be applied on the CPU to any interval that includes more than n curves, where n is the maximum number of curves that can be processed in parallel in the pixel shader. On the GPU, the pixels are evaluated to determine whether each pixel is inside or outside of the curve network. The technique used in the GPU may be based on a point-in-polygon algorithm that casts rays from points under test and counts the number of curve crossings before the rays exit the shape using a modified implicit formula.
    Type: Grant
    Filed: August 28, 2009
    Date of Patent: February 19, 2013
    Assignee: Adobe Systems Incorporated
    Inventors: Nathan A. Carr, Gavin S. P. Miller
  • Patent number: 8339413
    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: Grant
    Filed: May 17, 2007
    Date of Patent: December 25, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Gavin S. P. Miller, Nathan A. Carr
  • Patent number: 8314797
    Abstract: Method and apparatus that employs one or more perceptual metrics in determining a priori a number of samples to take at each location during irradiance computation. A number of hemisphere samples to be taken at each location in a scene may be calculated according to one or more perceptual metrics corresponding to the location. Perceptual metrics that may be used may include one or more of, but are not limited to: the overall direct lighting at the location; the diffuse texture of the surface at or around the location; and the color at the location. An irradiance value for each location may be calculated according to the number of samples calculated for the location. This perceptual metrics technique for determining a priori the number of samples needed is orthogonal to conventional adaptive sampling techniques, and can be adapted for use in other irradiance computation techniques.
    Type: Grant
    Filed: January 15, 2009
    Date of Patent: November 20, 2012
    Assignee: Adobe Systems Incorporated
    Inventors: Aravind Krishnaswamy, Gavin S. P. Miller
  • 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: 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
  • Patent number: 8063914
    Abstract: Anti-aliased output based on a scene comprising a plurality of objects may be generated. In one embodiment, a number of samples for an anti-aliasing operation is determined. For each of the samples: each of the objects may be translated in space according to jitter values; the objects may be multiplied by a fractional alpha value for the respective sample; a fractional alpha value stored in a buffer may be modified by a transparency value for each transparent object; and the objects may be rendered to the buffer by blending the objects with existing contents of the buffer. The fractional alpha values may vary from sample to sample. In one embodiment, the plurality of objects comprises one or more opaque objects and one or more transparent objects. In one embodiment, the objects may be rendered directly to a screen buffer.
    Type: Grant
    Filed: August 2, 2007
    Date of Patent: November 22, 2011
    Assignee: Adobe Systems Incorporated
    Inventors: 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: 7982734
    Abstract: Soft shadows may include areas that are less clear (more blurry) than other regions. For instance, an area of shadow that is closer to the shadow caster may be clearer than a region that is farther from the shadow caster. When generating a soft shadow, the total amount of light reaching each point on the shadow receiving surface is calculated according to a spatially-varying convolution kernel of the occluder's transparency information. Ray-tracing, traditionally used to determine a spatially varying convolution, can be very CPU intensive. Instead of using ray-tracing, data structures, such as MIP-maps and summed-area tables, or separable linear filters may be used to compute the spatially-varying convolution. For example, a two-dimensional convolution may be computed as two spatially-varying, separable, linear convolution filters—one computing a horizontal component and the other a vertical component of the final 2D convolution.
    Type: Grant
    Filed: August 1, 2007
    Date of Patent: July 19, 2011
    Assignee: Adobe Systems Incorporated
    Inventor: Gavin S. P. Miller
  • 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: 7970237
    Abstract: Glossy reflections may include areas that are less clear (more blurry) than other regions. For instance, an area of reflection that is closer to the object being reflected may appear clearer than a region that is farther from the object. When generating a glossy reflection, the total amount of light reaching each point on the reflecting surface is calculated according to a spatially-varying convolution kernel of the transparency information for the image being reflected. Ray-tracing, traditionally used to determine a spatially varying convolution, can be very CPU intensive. Instead of using ray-tracing, data structures, such as MIP-maps and summed-area tables, or separable linear filters may be used to compute the spatially-varying convolution. For example, a two-dimensional convolution may be computed as two spatially-varying, separable, linear convolution filters—one computing a horizontal component and the other a vertical component of the final 2D convolution.
    Type: Grant
    Filed: August 1, 2007
    Date of Patent: June 28, 2011
    Assignee: Adobe Systems Incorporated
    Inventor: Gavin S. P. Miller
  • Patent number: 7921003
    Abstract: A system and method for shallow water simulation may provide a framework for solving General Shallow Wave Equations (GSWE) to efficiently simulate 3D fluid effects on arbitrary surfaces using a height field representation. The height field representation may include height columns constructed along surface normals, which may be dependent on a condition of boundary cells adjacent to fluid cells and/or artificial viscosity effects. The framework may provide implicit schemes for solving for the effects of external forces applied to the fluid, including gravity and surface tension, and explicit schemes for solving for advection effects. The system and method may be implemented on general-purpose CPU(s) and/or GPU(s) and may be capable of simulating a variety of fluid effects including: waves, rivulets and streams, drops, and capillary events. In some embodiments, the system and method may achieve real-time fluid control and fluid shape design through user-interaction (e.g., in a graphical painting application).
    Type: Grant
    Filed: January 22, 2008
    Date of Patent: April 5, 2011
    Assignee: Adobe Systems Incorporated
    Inventors: Gavin S. P. Miller, Huamin Wang
  • 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: 7675518
    Abstract: System and method for generating hard and soft extruded image shadows with ray-coherent integration of extruded transparency maps. The ends of rays are positioned along a set of spokes radiating from the background point to be illuminated. In some embodiments, the weighted sum of integrals along a dense cone of rays from each point on the background is computed to determine the fraction of light obscured by the extruded artwork. The end points of the rays may be placed on lines that converge to the background point, according to some embodiments. Thus, intermediate line integrals of the alpha matte may be used to compute values for multiple rays. In other words, since the endpoints of multiple rays are placed along a single line, the results of computing the weighted sums for shorter rays may be used when calculating the sums for longer rays.
    Type: Grant
    Filed: September 5, 2006
    Date of Patent: March 9, 2010
    Assignee: Adobe Systems, Incorporated
    Inventor: Gavin S. P. Miller
  • Patent number: 7623137
    Abstract: One embodiment of the present invention provides a system that uses a successive-convolution technique to render a set of visible sprites which are visible through a translucent surface. During operation, the system first initializes a translucent light map to a background color. Next, the system iteratively processes each visible sprite, starting at a furthest visible sprite from the translucent surface, and iterating through successively nearer visible sprites until a nearest visible sprite is processed. While doing so, the system processes each visible sprite by first compositing the visible sprite into the translucent light map, and then incrementally blurring the resultant translucent light map.
    Type: Grant
    Filed: February 15, 2006
    Date of Patent: November 24, 2009
    Assignee: Adobe Systems, Incorporated
    Inventor: Gavin S. P. Miller
  • Patent number: 7589724
    Abstract: One embodiment of the present invention provides a system that uses a successive-convolution technique to render shadows produced by a set of shadowing sprites onto a shadowed sprite. During operation, the system initializes a shadow map. Next, the system iteratively processes each shadowing sprite, starting at a furthest shadowing sprite from the shadowed sprite, and iterating through successively nearer shadowing sprites, until a nearest shadowing sprite is processed. In doing so, the system processes each shadowing sprite by first transforming the shadowing sprite's coverage map to the parametric space of the shadowed sprite. Next, the system composites the transformed shadowing sprite into the shadow map, and then incrementally blurs the resultant shadow map.
    Type: Grant
    Filed: February 15, 2006
    Date of Patent: September 15, 2009
    Assignee: Adobe Systems, Incorporated
    Inventor: Gavin S. P. Miller
  • 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