IP Library Granted Patent US 12,229,868
Granted Patent B2
US 12,229,868 · App. 17/004,294 · Granted Feb 18, 2025

Ray tracing in computer graphics using intersection testing at selective resolution

Inventors: Luke T. Peterson (San Francisco, CA); James A. McCombe (San Francisco, CA); Ryan R. Salsbury (Mountain View, CA); Stephen Purcell (Mountain View, CA)
Assignee: Imagination Technologies Limited
G06T15/06G06T15/005G06T15/50G06T15/80
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 12,229,868
App. No.
17/004,294
Granted
Feb 18, 2025
Kind
B2
Abstract

Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.

Claims (24)

1. A computer-implemented method of rendering a scene by performing ray tracing, said performing ray tracing comprising tracing primary rays through the scene to render the scene in an immersive virtual reality system, wherein the origin of each of the primary rays is based on a viewpoint from which the scene is to be rendered, the method of performing ray tracing comprising:

performing, at one or more processing units, intersection testing of primary rays against shapes to generate intersection test results, wherein said performing intersection testing comprises performing a first subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a single shape and subsequently performing a second subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a second single shape; and

using said intersection test results generated from intersection testing of primary rays to render the scene from said viewpoint in the immersive virtual reality system.

2. The computer-implemented method according to claim 1 wherein the scene is a real-world scene.

3. The computer-implemented method according to claim 1 wherein the scene comprises some physical objects of a real-world scene and some computer generated objects.

4. The computer-implemented method according to claim 1 wherein the scene is entirely computer generated.

5. The computer-implemented method according to claim 1 , wherein performing intersection testing comprises performing a first subset of intersection tests by testing, in each of the one or more processing units, a single ray with a respective different shape of a plurality of shapes.

6. The computer-implemented method according to claim 5 , wherein performing intersection testing comprises performing, subsequent to performing the first subset of intersection tests, a second subset of intersection tests by testing a different second ray with a respective different shape of the plurality of shapes.

7. The computer-implemented method according to claim 1 , wherein the method further comprises receiving, at the computing resource, ray data for a plurality of rays to be intersection tested and shape data for a plurality of shapes against which the rays are to be tested.

8. The computer-implemented method according to claim 7 , wherein receiving the ray data and the shape data comprises receiving a packet comprising the ray data and the shape data.

9. The computer-implemented method according to claim 7 , wherein the ray data comprises a plurality of ray identifiers that each identify a respective ray to be tested; and wherein the shape data comprises at least one of (i) an identifier for each shape of one or more shapes against which the rays are to be tested, and (ii) an identifier for a beginning of a strip of one or more shapes against which the rays are to be tested.

10. The computer-implemented method according to claim 1 , wherein the method further comprises forming at least one packet comprising intersection test results.

11. The computer-implemented method according to claim 10 , wherein forming at least one packet comprises formatting the intersection test results into a plurality of packets, wherein each packet comprises the intersection test results for a particular shape of a plurality of shapes.

12. The computer-implemented method according to claim 10 , wherein forming a packet comprises forming a packet comprising at least one separate bit indicating the result of a specific intersection test.

13. The computer-implemented method according to claim 7 , further comprising retrieving ray origin and ray direction data for the plurality of rays and storing the retrieved ray origin and ray direction data in local storage for accessing the one or more processing units.

14. The computer-implemented method of claim 1 wherein said performing ray tracing further comprises tracing secondary rays through the scene, wherein the origin of a secondary ray is based on an intersection point of an intersection involving a previously traced ray.

15. The computer-implemented method according to claim 1 wherein the one or more processing units comprise a plurality of single-instruction multiple data (SIMD) computation units for performing the intersection testing.

16. The computer-implemented method according to claim 1 wherein said intersection testing is performed in parallel to generate multiple intersection test results concurrently.

17. A ray tracing system for rendering a scene by performing ray tracing, said performing ray tracing comprising tracing primary rays through the scene to render the scene in an immersive virtual reality system, wherein the origin of each of the primary rays is based on a viewpoint from which the scene is to be rendered, the ray tracing system comprising one or more processing units, wherein the ray tracing system is configured to:

perform, at the one or more processing units, intersection testing of primary rays against shapes to generate intersection test results, wherein said intersection testing comprises performing a first subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a single shape and subsequently performing a second subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a second single shape; and

use said intersection test results generated from intersection testing of primary rays to render the scene from said viewpoint in the immersive virtual reality system.

18. An immersive virtual reality system comprising a ray tracing system configured to render a scene by performing ray tracing, wherein said performing ray tracing comprises tracing primary rays through the scene to render the scene in an immersive virtual reality system, wherein the origin of each of the primary rays is based on a viewpoint from which the scene is to be rendered, the ray tracing system comprising one or more processing units, wherein the ray tracing system is configured to:

perform, at the one or more processing units, intersection testing of primary rays against shapes to generate intersection test results, wherein said intersection testing comprises performing a first subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a single shape and subsequently performing a second subset of intersection tests by testing in parallel, in each respective processing unit, a respective different ray with a second single shape; and

use said intersection test results generated from intersection testing of primary rays to render the scene from the viewpoint in the immersive virtual reality system.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Continuity (12)
Continuation 16225273 · Dec 19, 2018
Continuation 15496494 · Apr 25, 2017
Continuation 14558493 · Dec 2, 2014
Continuation 13959552 · Aug 5, 2013
Continuation 13525300 · Jun 16, 2012
Continuation 12941884 · Nov 8, 2010
Continuation 12408478 · Mar 20, 2009
Continuation In Part 11856612 · Sep 17, 2007
Provisional Application 61095890 · Sep 10, 2008
Provisional Application 61038731 · Mar 21, 2008
Provisional Application 60826201 · Sep 19, 2006
Related Publication 20200394832A1 · Dec 17, 2020
References Cited (22)
US 5583975A · Naka et al. · 1996 [cited by applicant]
US 5933146A · Wrigley · 1999 [cited by applicant]
US 6191789B1 · Yamato et al. · 2001 [cited by applicant]
US 6556200B1 · Pfister et al. · 2003 [cited by applicant]
US 6597359B1 · Lathrop · 2003 [cited by applicant]
US 7012604B1 · Christie et al. · 2006 [cited by applicant]
US 7034825B2 · Stowe et al. · 2006 [cited by applicant]
US 7289118B2 · Schmittler et al. · 2007 [cited by applicant]
US 20050017971A1 · Ard · 2005 [cited by examiner]
US 20050179686A1 · Christensen · 2005 [cited by examiner]
US 20080122846A1 · Brown · 2008 [cited by examiner]
US 20080231633A1 · Keller · 2008 [cited by examiner]
US 20090096789A1 · Peterson et al. · 2009 [cited by applicant]
US 20090128552A1 · Fujiki · 2009 [cited by examiner]
Lim, M., Aylett, R., My Virtual Graffiti System, Jun. 2004, 2004 IEEE International Conference on Multimedia and Expo, pp. 1-4. ( Year: 2004). [cited by examiner]
Williams, N., Buxton, B., Buxton, H., Distriouted Ray Tracing Using an SIMD Processor Array, Jul. 1988, Theoretical Foundations of Computer Graphics and CAD, vol. 27, pp. 703-725. (Year: 1988). [cited by examiner]
Lim et al., “My Virtual Graffiti System,” 2004 IEEE International Conference on Multimedia and Expo (ICME), pp. 847-850 (2004). [cited by applicant]
Reinhard et al., “Rendering Large Scenes Using Parallel Ray Tracing,” Parallel Computing, vol. 23, pp. 873-885 (1997). [cited by applicant]
Williams et al., “Distributed Ray Tracing Using an SIMD Processor Array,” Computer Scient Dep't, Queen Mary College, London, NATO ASI Series, vol. F40, Theoretical Foundations of Computer Graphics and CAD, (1988). [cited by applicant]
Wald et al., “Interactive Rendering with Coherent Ray Tracing,” Eurographics 2001, vol. 20, Sep. 2001, pp. 1-12. [cited by applicant]
Woop et al., “RPU: A Programmable Ray Processing Unit for Realtime Ray Tracing,” ACM Transactions on Graphics, SIGGRAPH '05, vol. 24, No. 3, Jul. 2005, pp. 1-11. [cited by applicant]
(Note: copies of NPL in parent application). [cited by applicant]