Patents by Inventor Charles T. Loop

Charles T. Loop 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: 9984498
    Abstract: Processes and systems described herein enable a computing device to perform voxel-based three-dimensional (3D) reconstruction modeling using parallel graphics hardware. The computing device may generate an initial low resolution voxel list. The voxels of the voxel list may be represented as index triples corresponding to the 3D spatial location of a cell within a voxel grid (e.g., {ix, iy, iz}). Based on information of input images associated with an object, the computing device may remove certain voxels that do not intersect with a surface of the object. The remaining voxels may be subdivided one or more times into a certain number of sub-voxels in parallel to generate a new voxel list. The newly generated voxel list may be tested again to determine voxels that do not intersect with the object surface. This process may repeat in part. The output voxels may be rendered as projected images.
    Type: Grant
    Filed: April 18, 2014
    Date of Patent: May 29, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Charles T. Loop
  • Publication number: 20150022521
    Abstract: Processes and systems described herein enable a computing device to perform voxel-based three-dimensional (3D) reconstruction modeling using parallel graphics hardware. The computing device may generate an initial low resolution voxel list. The voxels of the voxel list may be represented as index triples corresponding to the 3D spatial location of a cell within a voxel grid (e.g., {ix, iy, iz}). Based on information of input images associated with an object, the computing device may remove certain voxels that do not intersect with a surface of the object. The remaining voxels may be subdivided one or more times into a certain number of sub-voxels in parallel to generate a new voxel list. The newly generated voxel list may be tested again to determine voxels that do not intersect with the object surface. This process may repeat in part. The output voxels may be rendered as projected images.
    Type: Application
    Filed: April 18, 2014
    Publication date: January 22, 2015
    Applicant: Microsoft Corporation
    Inventor: Charles T. Loop
  • Patent number: 8154546
    Abstract: A “Rational Z-Buffer” provides various techniques for reducing artifacts when rendering graphics using z-buffers. In particular, the Rational Z-Buffer reduces the likelihood of z-buffer collisions when using hardware or software z-buffer algorithms to render graphics by delaying homogenous division of pixels until after occlusion testing. Further, occlusion testing between any two pixels, p0 and p1, is accomplished by comparing rational depth values, r0={z0, w0} and r1={z1, w1}, for pixel p0 and p1 to determine which pixels are visible. Depth values are compared by determining whether the expression z0w1<z1w0 is true. If true, then pixel p0 occludes pixel p1 in clipping cube space relative to an image-plane defined by a particular viewpoint and the field of view.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: April 10, 2012
    Assignee: Microsoft Corporation
    Inventor: Charles T. Loop
  • Patent number: 7924278
    Abstract: Surfaces defined by Bézier tetrahedron are generated on programmable graphics hardware. Custom programmed vertex processing, performed by either the CPU or the GPU includes the computation of a symmetric tensor and the assignment of the unique elements of the computed symmetric tensor as vertex attribute data. The vertex attribute data is interpolated by the graphics hardware and output to custom programmed pixel processing. The pixel processing uses the interpolated vertex attribute data to reconstruct, at each pixel, the symmetric tensor which enables the determination of the roots of the polynomial defining the surface to be generated. If no real roots exist, the pixel processing can exit early. If the roots of the polynomial exist, the smallest root can be used as the basis for computing a normal to a point on the surface being rendered, enabling the determination of the color and depth of that pixel.
    Type: Grant
    Filed: July 28, 2006
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Charles T. Loop, James F. Blinn
  • Publication number: 20090322746
    Abstract: A “Rational Z-Buffer” provides various techniques for reducing artifacts when rendering graphics using z-buffers. In particular, the Rational Z-Buffer reduces the likelihood of z-buffer collisions when using hardware or software z-buffer algorithms to render graphics by delaying homogenous division of pixels until after occlusion testing. Further, occlusion testing between any two pixels, p0 and p1, is accomplished by comparing rational depth values, r0={z0, w0} and r1={z1, w1}, for pixel p0 and p1 to determine which pixels are visible. Depth values are compared by determining whether the expression z0w1<z1w0 is true. If true, then pixel p0 occludes pixel p1 in clipping cube space relative to an image-plane defined by a particular viewpoint and the field of view.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: Microsoft Corporation
    Inventor: Charles T. Loop
  • Patent number: 7564459
    Abstract: A shape defined partially be a Bézier curve is rendered through a GPU-implemented technique which determines for various screen points which side of the curve the points lie on. This is done in the particular case of cubic Bézier curves for shapes defined by the Bézier control points of the curves. The type of the curve is identified through an analysis of an inflection point polynomial based on the curve. The curve is then projected to a canonical implicit form in a canonical texture space, allowing computation to be efficiently performed on a simple canonical form of the curve.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: July 21, 2009
    Assignee: Microsoft Corporation
    Inventors: Charles T. Loop, James Frederick Blinn
  • Patent number: 7466314
    Abstract: Surfaces defined by a Bézier tetrahedron, and in particular quadric surfaces, are rendered on programmable graphics hardware. Pixels are rendered through triangular sides of the tetrahedra and locations on the shapes, as well as surface normals for lighting evaluations, are computed using pixel shader computations. Additionally, vertex shaders are used to aid interpolation over a small number of values as input to the pixel shaders. Through this, rendering of the surfaces is performed independently of viewing resolution, allowing for advanced level-of-detail management. By individually rendering tetrahedrally-defined surfaces which together form complex shapes, the complex shapes can be rendered in their entirety.
    Type: Grant
    Filed: October 27, 2005
    Date of Patent: December 16, 2008
    Assignee: Microsoft Corporation
    Inventors: Charles T. Loop, James Frederick Blinn
  • Publication number: 20080043023
    Abstract: Surface modeling systems and techniques are described which approximate Catmull-Clark subdivision surfaces. A quadrilateral mesh is analyzed by applying shape and tangent masks to faces on the quad-mesh. Through application of the shape masks, a shape patch is created which approximates the subdivision limit surface. This shape patch can be used for rendering surface shape. Through application of tangent masks, tangent patches are created which comprise tangent vectors which give rise to continuous normal vector fields, which can be used for shading of the surface.
    Type: Application
    Filed: August 15, 2006
    Publication date: February 21, 2008
    Applicant: Microsoft Corporation
    Inventors: Charles T. Loop, Scott David Schaefer
  • Publication number: 20080024490
    Abstract: Surfaces defined by Bézier tetrahedron are generated on programmable graphics hardware. Custom programmed vertex processing, performed by either the CPU or the GPU includes the computation of a symmetric tensor and the assignment of the unique elements of the computed symmetric tensor as vertex attribute data. The vertex attribute data is interpolated by the graphics hardware and output to custom programmed pixel processing. The pixel processing uses the interpolated vertex attribute data to reconstruct, at each pixel, the symmetric tensor which enables the determination of the roots of the polynomial defining the surface to be generated. If no real roots exist, the pixel processing can exit early. If the roots of the polynomial exist, the smallest root can be used as the basis for computing a normal to a point on the surface being rendered, enabling the determination of the color and depth of that pixel.
    Type: Application
    Filed: July 28, 2006
    Publication date: January 31, 2008
    Applicant: Microsoft Corporation
    Inventors: Charles T. Loop, James F. Blinn
  • Patent number: 7283133
    Abstract: Improved triangle management in triangular meshes uses a data structure having two fields to store data for each triangle in the triangular mesh. The first field is a set of three vertices for the triangle and the second field is a set of three edges, each edge corresponding to one of the three vertices. Each of the three edges is an identification of a next or subsequent edge that is encountered when performing a traversal (e.g., in a counterclockwise direction) about the corresponding vertex. According to one aspect, three operators are defined to assist in management of the triangular mesh. These operators are a make edge operator, a splice operator, and a swap operator, and are selectively invoked to both add triangles to the triangular mesh and remove triangles from the triangular mesh.
    Type: Grant
    Filed: March 31, 2006
    Date of Patent: October 16, 2007
    Assignee: Microsoft Corporation
    Inventor: Charles T. Loop
  • Patent number: 7136063
    Abstract: Improved triangle management in triangular meshes uses a data structure having two fields to store data for each triangle in the triangular mesh. The first field is a set of three vertices for the triangle and the second field is a set of three edges, each edge corresponding to one of the three vertices. Each of the three edges is an identification of a next or subsequent edge that is encountered when performing a traversal (e.g., in a counterclockwise direction) about the corresponding vertex. According to one aspect, three operators are defined to assist in management of the triangular mesh. These operators are a make edge operator, a splice operator, and a swap operator, and are selectively invoked to both add triangles to the triangular mesh and remove triangles from the triangular mesh.
    Type: Grant
    Filed: March 19, 2001
    Date of Patent: November 14, 2006
    Assignee: Microsoft Corporation
    Inventor: Charles T. Loop
  • Patent number: 6771810
    Abstract: The present invention is embodied in a system and method for estimating epipolar geometry, in terms of a fundamental matrix, between multiple images of an object for stereo vision processing. The fundamental matrix embodies the epipolar geometry between the images. In general, the present invention includes a method for estimating epipolar geometry between multiple images of an original space given an initial estimate of the fundamental matrix found using a standard linear estimation technique. Namely, the system and method of the present invention estimates the fundamental matrix by transforming image points of multiple images into projective space. After this transformation is performed, nonlinear optimization is used with one parameterization of the fundamental matrix. The images are then inverse transformed back to the original space with a final estimate of the fundamental matrix. In addition, the original noise information is preserved during the optimization in the projective space.
    Type: Grant
    Filed: June 16, 2000
    Date of Patent: August 3, 2004
    Assignee: Microsoft Corporation
    Inventors: Zhengyou Zhang, Charles T. Loop
  • Patent number: 6608923
    Abstract: The present invention is embodied in a system and method for rectifying two dimensional images of three dimensional (3D) objects for stereo vision processing. In general, the system and method of the present invention computes 2D projective transforms or homographies derived from specialized projective and affine transforms or components. The affine transform is comprised of a first transform and an optional second transform for image rectification. During image rectification of the present invention, optimization techniques are used for reducing the distortion.
    Type: Grant
    Filed: June 19, 1999
    Date of Patent: August 19, 2003
    Assignee: Microsoft Corporation
    Inventors: Zhengyou Zhang, Charles T. Loop
  • Patent number: 6606404
    Abstract: The present invention is embodied in a system and method for computing rectifying homographies for stereo vision processing of three dimensional (3D) objects. In general, the system and method of the present invention computes 2D projective transforms or homographies derived from specialized projective and affine transforms or components. The affine transform is comprised of a similarity transform and an optional shearing transform for image rectification. During image rectification of the present invention, optimization techniques are used for reducing the distortion.
    Type: Grant
    Filed: June 19, 1999
    Date of Patent: August 12, 2003
    Assignee: Microsoft Corporation
    Inventors: Zhengyou Zhang, Charles T. Loop
  • Publication number: 20020167516
    Abstract: Improved triangle management in triangular meshes uses a data structure having two fields to store data for each triangle in the triangular mesh. The first field is a set of three vertices for the triangle and the second field is a set of three edges, each edge corresponding to one of the three vertices. Each of the three edges is an identification of a next or subsequent edge that is encountered when performing a traversal (e.g., in a counterclockwise direction) about the corresponding vertex. According to one aspect, three operators are defined to assist in management of the triangular mesh. These operators are a make edge operator, a splice operator, and a swap operator, and are selectively invoked to both add triangles to the triangular mesh and remove triangles from the triangular mesh.
    Type: Application
    Filed: March 19, 2001
    Publication date: November 14, 2002
    Inventor: Charles T. Loop
  • Patent number: 6230318
    Abstract: An application program is constructed entirely from a collection of individual reusable tools arranged in a tree structure. Each tool provides resources for other tools in the tree, located by a hierarchical search. A configuration file read into the root tool of the structure as a resource provides a persistent specification of the placement of other tools in the tree, user interface elements, and other state information. The interfaces used by the tools can also be stored as resources in the tools themselves. Each tool is a class in an object-oriented language having inheritance. A base class, subclassed by all tools, provides a number of widely useful functions.
    Type: Grant
    Filed: February 24, 1998
    Date of Patent: May 8, 2001
    Assignee: Microsoft Corporation
    Inventors: Mark A. B. Halstead, Charles T. Loop
  • Patent number: 6157383
    Abstract: A user interface for a three-dimensional (3D) environment is comprised of a pointer and a control polyhedra. Movement of the pointer is controlled by a pointing device, such as a mouse or trackball. The control polyhedra has at least one visible face and each visible face is parallel to a plane of the three-dimensional environment. Selection of the visible face using the pointing device moves the control polyhedra in the plane parallel to the visible face.
    Type: Grant
    Filed: June 29, 1998
    Date of Patent: December 5, 2000
    Assignee: Microsoft Corporation
    Inventor: Charles T. Loop