IP Library Granted Patent US 7,388,582
Granted Patent B2
US 7,388,582 · App. 11/790,648 · Granted Jun 17, 2008

System and method for graphics culling

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,388,582
App. No.
11/790,648
Granted
Jun 17, 2008
Kind
B2
Abstract

A method is disclosed for culling an object database in a graphics processing system. In one embodiment, the method comprises encoding per-object parameters and culling parameters. The per-object parameters are encoded in texture format thereby creating at least one per-object texture containing the encoded per-object parameters. Next, a fragment program used in a fragment processor of the GPU is optionally updated. The updated fragment program embodies a culling operation. A polygon is then rendered, wherein the rendering step includes per-fragment operations. During the per-fragment operations, the updated fragment program is executed. The culling operation embodied therein (i) accesses the culling parameter, (ii) samples the per-object textures, and (iii) produces cull results for a set of database objects. In this fashion, the fragment processor in the GPU is leveraged to perform computationally intensive culling operations.

Claims (24)

1. A method for using a graphics processing unit (GPU) to cull an object database, comprising:

programming a fragment program on the GPU to perform a culling operation;

for each object in the database, encoding a per-object parameter in a format compatible with the fragment program;

encoding a culling parameter in a format compatible with the fragment program;

rendering a polygon represented by a plurality of fragments, wherein each encoded per-object parameter is associated with a corresponding one of the plurality of fragments, and wherein the fragment program accesses the culling parameter and executes on each fragment of the polygon, thereby producing a cull result for the objects in the database.

2. The method of claim 1 , further comprising encoding the per-object parameters and the culling parameter in texture format.

3. The method of claim 2 , wherein the rendering step associates the encoded per-object parameters with the plurality of fragments by mapping the texture encoded per-object parameters to the corresponding fragments.

4. The method of claim 1 , wherein each per object parameter is a bounding sphere that represents the size and position of an object in the object database.

5. The method of claim 1 , wherein the culling parameter is a clip plane.

6. The method of claim 1 , wherein the culling parameter is a set of planes representing a view frustum, and the culling operation performs view frustum culling.

7. The method of claim 1 , wherein the culling parameter is a set of planes representing an occluded volume, and the culling operation performs occlusion culling.

8. The method of claim 1 , wherein the culling parameter is a view position, and the culling operation performs level of detail evaluations.

9. The method of claim 8 , wherein additional per-object parameters representing switching distances are encoded in texture format, and the culling operation uses the additional per-object parameters in performance of the level of detail evaluations.

10. The method of claim 8 , wherein said culling operation performs small feature culling.

11. The method of claim 1 , wherein said per-object parameter is an average normal vector for a group of primitives, the group of primitives making up part of an object in the object database, wherein the culling parameter is a view vector, and wherein the culling operation performs backface culling by evaluating an angular difference between the average normal vector for the group of primitives and the view vector.

12. The method of claim 1 , wherein the per-object parameter and the culling parameter are encoded in floating point format.

13. The method of claim 1 , further comprising encoding a plurality of culling parameters.

14. The method of claim 1 , further comprising encoding a plurality of per-object parameters.

15. A graphics processing system for culling a geometry database, comprising:

an encoder for encoding per-object parameters and culling parameters; and

a rendering pipeline for rendering a polygon having plurality of fragments, wherein the rendering pipeline includes a programmable fragment processor that (i) uses the polygon fragments as proxies to uniquely access the encoded per-object parameters, and (ii) executes a programmed culling operation using the encoded culling parameters, to produce a cull result for the geometry database.

16. The system of claim 15 , wherein the encoder encodes the per-object parameters and the culling parameters in texture format.

17. The system of claim 16 , wherein the rendering pipeline maps the texture encoded per-object parameters to corresponding polygon fragments.

18. The system of claim 15 , wherein the per-object parameters and the culling parameters are encoded in floating point format.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2013
From: GRAPHICS PROPERTIES HOLDINGS, INC.
To: RPX CORPORATION
Reel/Frame 029564/0799 →
CHANGE OF NAME Recorded Apr 18, 2012
From: SILICON GRAPHICS, INC.
To: GRAPHICS PROPERTIES HOLDINGS, INC.
Reel/Frame 028066/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2007
From: FARINELLI, PAOLO
To: SILICON GRAPHICS, INC.
Reel/Frame 019292/0226 →