IP Library Granted Patent US 7,414,623
Granted Patent B2
US 7,414,623 · App. 11/171,954 · Granted Aug 19, 2008

Adaptive sampling for procedural graphics

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,414,623
App. No.
11/171,954
Granted
Aug 19, 2008
Kind
B2
Abstract

Techniques and tools for rendering procedural graphics are described. For example, an architecture is provided which allows evaluation of geometric, transform, texture, and shading procedures locally for a given set of procedure parameter values. This evaluation is performed in parallel for different parameter values on a single-instruction, multiple-data array to allow parallel processing of a procedure set. In another example, a sampling controller is described which selects sets of parameter points for evaluation based on information in tag maps, rate maps, and parameter maps.

Claims (43)

1. A method for generating a set of adaptively sampled parameter points to be used in rendering one or more procedural graphics routines, the method comprising:

evaluating the one or more procedural graphics routines for parameter points in a sparse set of parameter points in a parameter domain; and

analyzing results of the evaluating to determine information to be used in selecting the set of adaptively sampled parameter points;

wherein:

the one or more procedural graphics routines represent one or more objects;

the evaluating of the one or more procedural graphics routines renders points in an image space comprising one or more tiles; and

results of the evaluating are analyzed at least in part with respect to each of the one or more tiles.

2. The method of claim 1 , wherein the analyzing the results of the evaluating comprises, at least in part, recording, for each object of the one or more objects, a set of tiles to which the one or more procedural graphics routines render.

3. The method of claim 1 , wherein the analyzing the results of the evaluating comprises, at least in part, recording, for each object of the one or more objects and each tile of the one or more tiles, a set of parameter points in the parameter domain for which the one or more procedural graphics routines render points in the tile.

4. The method of claim 1 , wherein the analyzing the results of the evaluating comprises, at least in part, determining a local sampling rate for the sparse set of parameter points.

5. The method of claim 4 , wherein the determining the local sampling rate comprises:

for each parameter point in the sparse set:

evaluating the one or more procedural graphics routines at neighboring parameter points; and

computing a radius of a local neighborhood in image space.

6. The method of claim 4 , wherein the local sampling rate is recorded in a texture map.

7. The method of claim 1 , wherein:

the one or more procedural graphics routines represent one or more objects;

the evaluating the one or more procedural graphics routines renders points in an image space comprising one or more tiles; and

the method further comprises selecting the adaptively sampled parameter points according to:

local sampling rate information;

for each object, information describing tiles into which the one or more procedural graphic routines map the points; and

for each object of the one or more objects and each tile of the one or more tiles, information describing which of the parameter points in the sparse set map to the tile.

8. A system, comprising a sampling controller for adaptively sampling graphics procedures, the sampling controller configured to:

select a first set of parameter tuples to be used as input in a first pass of evaluating one of the graphics procedures; and

upon receiving results of evaluation of the first set, generating a second set of parameter tuples based upon the received results;

wherein:

the graphics procedures map into an image space comprising tiles;

the graphics procedures describe one or more objects; and

the results comprise an indication for each object of the one or more objects of which tiles are mapped to by tuples in the first set of parameter tuples.

9. The system of claim 8 , wherein:

the results comprise an indication for each object of the one or more objects and for each tile of the one or more tiles of which of the parameter tuples in the first set of parameter tuples map to that tile.

10. The system of claim 8 , wherein the sampling controller is programmable and is configured at least in part by installing executable code on the sampling controller.

11. The system of claim 8 , wherein:

at least some of the graphics procedures take points in an image space as input; and

the sampling controller is further configured to select a set of sampled points in an image space to be used as input for at least some of the graphics procedures.

12. A graphics processing unit configured to render an image defined by a series of one or more graphics procedures taking parameters as input, comprising:

a processing module;

a sampling controller configured to:

instruct the processing module to compute according to a graphics procedure from the series of one or more graphics procedures on a sparse set of parameters; and

generate a rendering set of parameters based at least in part upon output of the processing module.

13. The graphics processing unit of claim 12 , wherein the output of the processing module comprises one or more tag maps, one or more parameter maps, and one or more local sampling rate maps.

14. The graphics processing unit of claim 12 , wherein the sampling controller is configured such that the generated rendering set of parameters contains only parameters which are indicated by a tag map and a parameter map to map to image space when used as input into the graphics procedure from the series of one or more graphics procedures.

15. The graphics processing unit of claim 12 , wherein the sampling controller is configured such that the generated rendering set of parameters contains more parameters where a local sampling rate map indicates that a smaller step size between parameters is preferable.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2005
From: WHITTED, J. TURNER; KAJIYA, JAMES T.
To: MICROSOFT CORPORATION
Reel/Frame 016324/0765 →