IP Library › Granted Patent US 7,167,181
Granted Patent B2
US 7,167,181 · App. 10/458,493 · Granted Jan 23, 2007

Deferred shading graphics pipeline processor having advanced features

Assignee: Apple Computer, Inc.
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,167,181
App. No.
10/458,493
Granted
Jan 23, 2007
Kind
B2
Abstract

A deferred shading graphics pipeline processor and method are provided encompassing numerous substructures. Embodiments of the processor and method may include one or more of deferred shading, a tiled frame buffer, and multiple?stage hidden surface removal processing. In the deferred shading graphics pipeline, hidden surface removal is completed before pixel coloring is done. The pipeline processor comprises a command fetch and decode unit, a geometry unit, a mode extraction unit, a sort unit, a setup unit, a cull unit, a mode injection unit, a fragment unit, a texture unit, a Phong lighting unit, a pixel unit, and a backend unit.

Claims (43)

1. A method for rendering a graphics image, said method comprising:

performing a fragment operation on a fragment on a per-pixel basis;

performing a fragment operation on said fragment on a per-sample basis;

determining if a pixel corresponding to the fragment is visible on a screen without updating a color buffer;

programmatically selecting whether to perform a stencil test on a per-pixel or a per-sample basis;

rendering the pixel in response to a positive determination; wherein

between said steps, the following step is performed: performing said stencil test on said selected basis.

2. The method of claim 1 , wherein said step of performing on a per-pixel basis comprises performing one of the following fragment operations on a per-pixel basis scissor test, stipple test, alpha test, color test.

3. The method of claim 1 , wherein said step of performing on a per-sample basis comprises performing one of the following fragment operations on a per-sample basis: Z test, blending, dithering.

4. A method for rendering a graphics image, said method comprising:

performing a fragment operation on a fragment on a per-pixel basis;

performing a fragment operation on said fragment on a per-sample basis;

determining if a pixel corresponding to the fragment is visible on a screen without updating a color buffer;

wherein said step of performing on a per-sample basis comprises programmatically selecting a set of subdivisions of a pixel as samples for use in said fragment operation on a per-sample basis, and wherein said method further comprises then programmatically selecting a different set of subdivisions of a pixel as samples for use in a second fragment operation on a per-sample basis; and then performing said second fragment operation on a fragment on a per-sample basis, using said programmatically selected samples.

5. A method for rendering a graphics image, said method comprising:

performing a fragment operation on a fragment on a per-pixel basis;

performing a fragment operation on said fragment on a per-sample basis;

determining if a pixel corresponding to the fragment is visible on a screen without updating a color buffer;

wherein said step of performing on a per-sample basis comprises programmatically selecting a set of subdivisions of a pixel as samples for use in said fragment operation on a per-sample basis; programmatically assigning different weights to two samples in said set; and performing said fragment operation on said fragment on a per-sample basis, using said programmatically selected and differently weighted samples.

6. A computer-readable medium for data storage wherein is located a computer program for causing a graphics-rendering system to render an image by the following method:

performing a fragment operation on a fragment on a per-pixel basis;

performing a fragment operation on said fragment on a per-sample basis;

determining if a pixel corresponding to the fragment is visible on a screen without updating a color buffer;

programmatically selecting whether to perform a stencil test on a per-pixel or a per-sample basis;

rendering the pixel in response to a positive determination; wherein

between said steps, the following step is performed: performing said stencil test on said selected basis.

7. A method for rendering a graphics image, said method comprising:

processing a first primitive;

for each sample touched by the first primitive, conservatively determining whether the sample is hidden, said determination at least partially based on a state variable;

delaying a color computation for said sample until after determining whether the sample is hidden;

rendering each non-hidden sample;

storing a z-coordinate for said sample;

storing primitive color information for said sample;

storing a sample state bit; wherein

said operation of conservatively determining whether the sample is hidden employs at least one of said z-coordinate, primitive color information, and sample state bit.

8. The method of claim 7 , wherein the state variable is the outcome of a depth test.

9. The method of claim 7 , wherein the sate variable is the outcome of an alpha test.

10. The method of claim 7 , further comprising:

processing a second primitive;

for each sample touched by the second primitive, conservatively determining whether the sample is hidden, said determination at least partially based on a state variable; and

delaying a color computation for said sample until after determining whether the sample is hidden;

displaying each sample not determined to be hidden; wherein

said first and second primitives are processed in time order.

Assignments (4)
CHANGE OF NAME Recorded Apr 24, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019204/0010 →
CORRECTIVE COVERSHEET TO CORRECT THE NAME OF THE ASSIGNOR PREVIOUSLY RECORDED ON REEL 016729, FRAME 0842. Recorded Feb 10, 2006
From: DULUK, JEROME F., JR.; HESSEL, RICHARD E.; ARNOLD, VAUGHN T.; BENKUAL, JACK; BRATT, JOSEPH P.; CUAN, GEORGE; DODGEN, STEPHEN L.; FANG, EMERSON S.; GONG, ZHAOYU; HO, THOMAS Y.; HSU, HENGWEL; LI, SIDONG; NG, SAM; REDGRAVE, JASON R.; TRIVEDI, SUSHMA S.; TUCK, NATHAN D.; GO, SHUN WAI; FUNG, LINDY; NGUYEN, TUAN D.; GRASS, JOSEPH P.; HONG, BO; MAMMEN, ABRAHAM; RASHID, ABBAS; TSAY, ALBERT SUAN-WEI
To: RAYCER, INC.
Reel/Frame 017255/0735 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2005
From: RAYCER, INC.
To: APPLE COMPUTER, INC.
Reel/Frame 016724/0595 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2005
From: DULUK, JR., JEROME F.; HESSEL, RICHARD E.; ARNOLD, VAUGHN T.; BENKUAL, JACK; BRATT, JOSEPH P.; CUAN, GEORGE; DODGEN, STEPHEN L.; FANG, EMERSON S.; GONG, ZHAOYU; HO, THOMAS Y.; HSU, HENGWEI; LI, SIDONG; NG, SAM; REDGRAVE, JASON R.; TRIVEDI, SUSHMA S.; TUCK, NATHAN D.; GO, SHUN WAI; FUNG, LINDY; NGUYAN, TUAN D.; GRASS, JOSEPH P.; HONG, BO; MAMMEN, ABRAHAM; RASHID, ABBAS; TSAY, ALBERT SUAN-WEI
To: RAYCER, INC.
Reel/Frame 016729/0842 →
Continuity (3)
Continuation 0937750300 · Aug 20, 1999
Provisional Application 6009733600 · Aug 20, 1998
Related Publication 20040130552A1 · Jul 8, 2004