Micro-meshes, a structured geometry for computer graphics
AssigneeNVIDIA Corporation
InventorsHenry Packard Moreton, Yury Uralsky, John Burgess
Life of this patent
Estimating the term…
Abstract
A μ-mesh (“micromesh”), which is a structured representation of geometry that exploits coherence for compactness and exploits its structure for efficient rendering with intrinsic level of detail is provided. The micromesh is a regular mesh having a power-of-two number of segments along its perimeters, and which can be overlaid on a surface of a geometric primitive. The micromesh is used for providing a visibility map and/or a displacement map that is accessible using barycentric coordinates of a point of interest on the micromesh.
Claims18
A non-transitory computer readable storage medium storing instructions that, when executed by a processor of a computer system comprising a memory, causes the computer system to perform operations comprising:
- identifying a microtriangle of interest in a grid of microtriangles overlaid on an area on a surface of an object;
- determining an index into an index data structure based only on barycentric coordinates of the microtriangle of interest within the grid of microtriangles without storing a mapping from the barycentric coordinates of the microtriangle of interest to an index into the index data structure;
- accessing by indexing, in the memory and based only on the determined index, a value stored in the index data structure,
- wherein the value represents a characteristic of the surface at a location corresponding to a position of the microtriangle of interest;
- and
- rendering, in accordance with the accessed value, a pixel corresponding to the location corresponding to the position of the microtriangle of interest.
A data structure comprising a plurality of sets of bits, each set of bits corresponding to a respective group of one or more microtriangles in a plurality of microtriangles contiguously arranged to spatially overlay an area on a surface of an object, the plurality of sets of bits arranged in accordance with a preconfigured traversal order of the plurality of microtriangles, and each set of bits configured to represent a characteristic of the area at a location corresponding to a position of the microtriangle of interest, wherein the data structure is configured such that a location in the data structure is determined based only on barycentric coordinates of the microtriangle of interest without storing a mapping from the barycentric coordinates of the microtriangle of interest to an index into the data structure.
A method of forming an index data structure configured to provide access to values representing one or more characteristics of a surface of an object at a location corresponding to a position of a microtriangle of interest, the method comprising:
- assigning a visibility status to each microtriangle in a grid of microtriangles spatially overlaid on an area on the surface, wherein the visibility status includes at least one of an opaque status and a transparent status;
- encoding the index data structure based on barycentric coordinates of said each microtriangle and a preconfigured traversal order of the grid of microtriangles, wherein each location in the index data structure is configured to be accessed by determining the location in the index data structure based only on barycentric coordinates of a respective microtriangle of the grid of microtriangles without storing a mapping from the barycentric coordinates of the respective microtriangle to an index into the index data structure;
- and
- storing the encoded index data structure in a memory.
A method of forming an index data structure configured to provide access to values representing one or more characteristics of a surface of an object at a location corresponding to a position of a microtriangle of interest, the method comprising:
- determining a displacement amount and a displacement direction for each microvertex of each microtriangle in a grid of microtriangles spatially overlaid on an area on the surface, wherein the displacement amount is specified in relation to a base triangle;
- encoding the index data structure based on barycentric coordinates of said each microtriangle and a preconfigured traversal order of the grid of microtriangles, wherein each location in the index data structure is configured to be accessed by determining the location in the index data structure based only on barycentric coordinates of a respective microtriangle of the grid of microtriangles without storing a mapping from the barycentric coordinates of the respective microtriangle to an index into the index data structure;
- and
- storing the encoded index data structure in a memory.
A method of forming a data structure representing geometry, comprising performing with at least one processor, operations comprising:
- defining regions of a planar or warped geometric primitive;
- assigning different visibility indicators to different regions;
- encoding the visibility indicators based on a predetermined sequence of the regions;
- and
- storing the data structure including the encoded visibility indicators in a memory,
- wherein the encoded visibility indicator of each region is configured to be accessed by determining a location in the data structure based only on barycentric coordinates of the each region without storing a mapping from the barycentric coordinates of the each region to an index into the data structure.
Dependencies are inferred from the claim text.