IP Library Granted Patent US 7,009,608
Granted Patent B2
US 7,009,608 · App. 10/164,691 · Granted Mar 7, 2006

System and method of using multiple representations per object in computer graphics

Assignee: NVIDIA Corporation
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,009,608
App. No.
10/164,691
Granted
Mar 7, 2006
Kind
B2
Abstract

The present invention is related to rendering computer animated video and/or images generally, and to efficiently intersecting rays with an object scene while shading complex object representations. The present invention, generally, includes creating a plurality of representations for the object. After creating the plurality of representations, a plurality of primary positions are established on one of the representations. Shading positions on one or more other representations included in the plurality of representations are then established by reference to the primary positions. These shading positions correspond to the plurality of primary positions and each of these representations has a coarser resolution than the representation with the primary positions. Shading values for the shading positions are the computed and applied to the plurality of primary positions.

Claims (105)

1. A method of rendering an object scene, the method including:

creating a representation of a first object in the object scene;

creating a first representation of a second object in the object scene;

creating a second representation of the second object in the object scene, said second representation of the second object having a coarser resolution than the first representation of the second object;

determining whether the second representation of the second object overlaps the representation of the first object;

using the first representation of the second object to compute shading values for the first object when the second representation of the second object does overlap the representation of the first object; and

using the second representation of the second object to compute shading values for the first object when said second representation of the second object does not overlap the representation of the first object.

2. The method of claim 1 , wherein the step of determining whether the second representation of the second object overlaps the representation of the first object includes

creating a first bounding box for the representation of the first object in the object scene;

creating a second bounding box for the second representation of the second object in the object scene; and

determining whether the second bounding box overlaps the first bounding box.

3. The method of claim 1 , wherein the computing shading values for the first object includes

tracing a ray from a position on the representation of the first object to a position on a representation of the second object.

4. The method of claim 1 , further comprising

triggering the creation of the first representation of the second object while computing visibility of said second object.

5. The method of claim 1 , further comprising

triggering the creation of the first representation of the second object while computing shading values for the first object.

6. The method of claim 1 , further comprising

triggering the creation of the second representation of the second object while computing shading values for the first object.

7. The method of claim 1 , further comprising

triggering the creation of the representation of the first object while computing visibility of said first object.

8. A method of rendering an object scene, the method including:

creating a representation of a first object in the object scene;

creating a first representation of a second object in the object scene;

creating a second representation of the second object, said second representation of the second object having a coarser resolution than the first representation of the second object;

determining whether the second representation of the second object overlaps the representation of the first object;

using the first representation of the second object to reference the representation of the first object while computing shading values for the second object when the second

representation of the second object does overlap said representation of the first object; and

using the second representation of the second object to reference the representation of the first object while computing shading values for the second object when said second representation of the second object does not overlap said representation of the first object.

9. The method of claim 8 , wherein the step of determining whether the second representation of the second object overlaps the representation of the first object includes

creating a first bounding box for the representation of the first object in the object scene;

creating a second bounding box for the second representation of the second object in the object scene; and

determining whether the second bounding box overlaps the first bounding box.

10. The method of claim 8 , wherein the computing shading values for the second object includes

tracing a ray from a position on a representation of the second object to a position on the representation of the first object.

11. The method of claim 8 , further comprising

triggering the creation of the first representation of the second object while computing visibility of said second object.

12. The method of claim 11 , further comprising

triggering the creation of the second representation of the second object when computing shading values for said second object.

13. The method of claim 12 , further comprising

culling the first representation of the second object after computing visibility of said second object.

14. The method of claim 13 , further comprising

culling the second representation of the second object after computing visibility of said second object if said second representation is not used compute a shading value applied to a representation of another object.

15. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable medium and a computer program mechanism embedded therein, the computer program mechanism comprising:

a data structure for storing object scene data, said object scene data describing a plurality of objects included in an object scene; and

a program including

instructions for creating a representation of a first object in the object scene;

instructions for creating a first representation of a second object in the object scene;

instructions for creating a second representation of the second object in the object scene, said second representation of the second object having a coarser resolution than the first representation of the second object;

instructions for determining whether the second representation of the second object overlaps the representation of the first object;

instructions for using the first representation of the second object to compute shading values for the first object when the second representation of the second object does overlap the representation of the first object; and

instructions for using the second representation of the second object to compute shading values for the first object when said second representation of the second object does not overlap the representation of the first object.

16. The computer program product of claim 15 , the program further comprising

instructions for creating a first bounding box for the representation of the first object in the object scene;

instructions for creating a second bounding box for the second representation of the second object in the object scene; and

instructions for determining whether the second bounding box overlaps the first bounding box, whereby

said instructions determining whether the second representation of the second object overlaps the representation of the first object.

17. The computer program product of claim 15 , the program further comprising

instructions for tracing a ray from a position on the representation of the first object to a position on a representation of the second object to compute shading values for the first object.

18. The computer program product of claim 15 , further comprising

instructions for triggering the creation of the first representation of the second object while computing visibility of said second object.

19. The computer program product of claim 15 , further comprising

instructions for triggering the creation of the first representation of the second object while computing shading values for the first object.

20. The computer program product of claim 15 , further comprising

instructions for triggering the creation of the second representation of the second object while computing shading values for the first object.

21. The computer program product of claim 15 , further comprising

instructions for triggering the creation of the representation of the first object while computing visibility of said first object.

22. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable medium and a computer program mechanism embedded therein, the computer program mechanism comprising:

a data structure for storing object scene data, said object scene data describing a plurality of objects included in an object scene; and

a program including

instructions for creating a representation of a first object in the object scene;

instructions for creating a first representation of a second object in the object scene;

instructions for creating a second representation of the second object, said second representation of the second object having a coarser resolution than the first representation of the second object;

instructions for determining whether the second representation of the second object overlaps the representation of the first object;

instructions for using the first representation of the second object to reference the representation of the first object while computing shading values for the second object when the second representation of the second object does overlap said representation of the first object; and

instructions for using the second representation of the second object to reference the representation of the first object while computing shading values for the second object when said second representation of the second object does not overlap said representation of the first object.

23. The computer program product of claim 22 , the program further comprising

instructions for creating a first bounding box for the representation of the first object in the object scene;

instructions for creating a second bounding box for the second representation of the second object in the object scene; and

instructions for determining whether the second bounding box overlaps the first bounding box, whereby.

the program determines whether the second representation of the second object overlaps the representation of the first object.

24. The computer program product of claim 22 , the program further comprising

instructions for tracing a ray from a position on a representation of the second object to a position on the representation of the first object to compute shading values for the second object.

25. The computer program product of claim 22 , further comprising

instructions for triggering the creation of the first representation of the second object while computing visibility of said second object.

26. The computer program product of claim 25 , further comprising

instructions for triggering the creation of the second representation of the second object when computing shading values for said second object.

27. The computer program product of claim 26 , further comprising

instructions for culling the first representation of the second object after computing visibility of said second object.

28. The computer program product of claim 27 , further comprising

instructions for culling the second representation of the second object after computing visibility of said second object if said second representation is not used compute a shading value applied to a representation of another object.

29. A method of rendering an object scene, the method including:

creating a representation of a first object in the object scene;

creating a first representation of a second object in the object scene, said first representation having a resolution suitable for a visibility calculation;

creating a second representation of the second object in the object scene, said second representation having a resolution suitable for a shading calculation;

determining whether the second representation of the second object overlaps the representation of the first object;

using the first representation of the second object to compute shading values for the first object when the second representation of the second object does overlap the representation of the first object; and

using the second representation of the second object to compute shading values for the first object when said second representation of the second object does not overlap the representation of the first object.

30. A method of rendering an object scene, the method including:

creating a representation of a first object in the object scene;

creating a first representation of a second object in the object scene, said first representation having a resolution suitable for a visibility calculation;

creating a second representation of the second object, second representation having a resolution suitable for a shading calculation;

determining whether the second representation of the second object overlaps the representation of the first object;

using the first representation of the second object to reference the representation of the first object while computing shading values for the second object when the second representation of the second object does overlap said representation of the first object; and

using the second representation of the second object to reference the representation of the first object while computing shading values for the second object when said second representation of the second object does not overlap said representation of the first object.

Assignments (3)
CORRECTIVE TO CORRECT TWO ERRONEOUS SERIAL NUMBERS PREVIOUSLY RECORDED AT REEL 013125 FRAME 0727. (ASSIGNMENT OF ASSIGNOR'S INTEREST) Recorded Apr 14, 2003
From: EXLUNA, INC.
To: NVIDIA CORPORATION
Reel/Frame 013942/0342 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2002
From: VEACH, ERIC
To: EXLUNA INC.
Reel/Frame 013129/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2002
From: PHARR, MATTHEW MILTON; VEACH, ERIC
To: EXLUNA INC.
Reel/Frame 012993/0441 →
Continuity (1)
Related Publication 20030227457A1 · Dec 11, 2003