# US 8,786,600 B1 · System and method for constructing a displacement-mapped surface representation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,786,600 B1
- Document ID: US8786600B1
- Status: Granted
- Kind: B1
- Application number: 12/539,360
- Filed: 2009-08-11
- Granted: 2014-07-22
- Earliest claimed: 2009-08-11
- Assignees: NVIDIA Corporation
- Applicants: Iain Cantlay
- Inventors: Iain Cantlay
- Web page: https://patentgrep.com/patent/US8786600B1

## CPC

- G06T 17/20: Finite element generation, e.g. wire-frame surface description, {tesselation}
- G06T 15/04: Texture mapping
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A system and method for constructing a displacement-mapped surface representation are presented. An exemplary method includes defining a plurality of local vectors emanating from the displacement-mapped surface, each local vector extending at a local angle from a local position disposed on the displacement-mapped surface. The method further includes determining first and second global vectors for respective first and second subsets of the local vectors, the first global vector determined as a function of the first subset vectors' local positions and local angles, and the second global vector determined as a function of the second subset vectors' local positions and local angles. The first and second global vectors are utilized to form a representation of the displacement-mapped surface.

## Claims

### Claim 1

A method for constructing a displacement-mapped surface representation, the method comprising:
defining, by a processor, a plurality of local vectors emanating from the displacement-mapped surface, each local vector extending from a local position disposed on the displacement-mapped surface at an local angle relative to the displacement-mapped surface at said local position;
determining, for a first subset of the plurality of the local vectors, a first global vector, the first global vector determined as a function of the local positions and the local angles of the first subset of local vectors, wherein said first subset maintains an initial distribution of local vectors comprising said first subset;
determining, for a second subset of the plurality of the local vectors, a second global vector, the second global vector determined as a function of the local positions and the local angles of the second subset of local vectors, wherein said second subset maintains an initial distribution of local vectors comprising said second subset; and
utilizing the first and second global vectors to form a representation of the displacement-mapped surface.

### Claim 2 (depends on 1)

The method of claim 1, further comprising determining, for a third subset of the plurality of the local vectors, a third global vector, the third global vector defined as a function of the local positions and the local angles of the first subset of local vectors,
wherein utilizing comprises utilizing each of the first, second and third global vectors to form a representation of the displacement-mapped surface.

### Claim 3 (depends on 1)

The method of claim 1, wherein each of the local angles comprises a normal angle.

### Claim 4 (depends on 1)

The method of claim 1, wherein the displacement-mapped surface comprises a plurality of tessellated polygons, and wherein a respective one of the plurality of local vectors perpendicularly extends from a center position of a respective one of the tessellated polygons.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining a first global vector comprises computing (i) a first global position based upon the local positions of the first subset of local vectors, and (ii) a first global angle based upon the local angles of the first subset of local vectors; and
wherein determining a second global vector comprises computing (i) a second global position based upon the local position of the second subset of local vectors, and (ii) a second global angle based upon the local angle of the second subset of local vectors.

### Claim 6 (depends on 5)

The method of claim 5, wherein utilizing the first and second global vectors comprises utilizing the first global position, the first global angle, the second global position and the second global angle to form a representation of the displacement-mapped surface.

### Claim 7

A processor operable to construct a displacement-mapped surface representation, the processor comprising:
processor circuitry operable to define a plurality of local vectors emanating from the displacement-mapped surface, each local vector extending from a local position disposed on the displacement-mapped surface at an local angle relative to the displacement-mapped surface at said local position;
processor circuitry operable to determine, for a first subset of the plurality of the local vectors, a first global vector, the first global vector determined as a function of the local positions and the local angles of the first subset of local vectors, wherein said first subset maintains an initial distribution of local vectors comprising said first subset;
processor circuitry operable to determine, for a second subset of the plurality of the local vectors, a second global vector, the second global vector determined as a function of the local positions and the local angles of the second subset of local vectors, wherein said second subset maintains an initial distribution of local vectors comprising said second subset; and
processor circuitry operable to form a representation of the displacement-mapped surface utilizing the first and second global vectors.

### Claim 8 (depends on 7)

The processor of claim 7,
wherein the processor circuitry operable to determine a first global vector comprises processor circuitry operable to compute (i) a first global position based upon the local positions of the first subset of local vectors, and (ii) a first global angle based upon the local angles of the first subset of local vectors; and
wherein the processor circuitry operable to determine a second global vector comprises processor circuitry operable to compute (i) a second global position based upon the local positions of the second subset of local vectors, and (ii) a second global angle based upon the local angles of the second subset of local vectors.

### Claim 9 (depends on 7)

The processor of claim 7, wherein the processor comprises a graphics processor implemented within a graphics processing sub-system.

### Claim 10

A computer program product, resident on a non-transitory computer-readable medium, for providing instructions to construct a representation a displacement-mapped surface, the computer program product comprising:
instruction code for defining a plurality of local vectors emanating from the displacement-mapped surface, each local vector extending from a local position disposed on the displacement-mapped surface at an local angle relative to the displacement-mapped surface at said local position;
instruction code for determining, for a first subset of the plurality of the local vectors, a first global vector, the first global vector determined as a function of the local positions and the local angles of the first subset of local vectors, wherein said first subset maintains an initial distribution of local vectors comprising said first subset;
instruction code for determining, for a second subset of the plurality of the local vectors, a second global vector, the second global vector determined as a function of the local positions and the local angles of the second subset of local vectors, wherein said second subset maintains an initial distribution of local vectors comprising said second subset; and
instruction code for forming a representation of the displacement-mapped surface utilizing the first and second global vectors.

### Claim 11 (depends on 10)

The computer program product of claim 10,
wherein the instruction code for determining a first global vector comprises instruction code for computing (i) a first global position based upon the local positions of the first subset of local vectors, and (ii) a first global angle based upon the local angles of the first subset of local vectors; and
wherein the instruction code for determining a second global vector comprises instruction code for computing (i) a second global position based upon the local positions of the second subset of local vectors, and (ii) a second global angle based upon the local angles of the second subset of local vectors.
