# US 12,223,586 B2 · 3-D graphics rendering with implicit geometry

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,586 B2
- Document ID: US12223586B2
- Status: Granted
- Kind: B2
- Application number: 18/401,452
- Filed: 2023-12-30
- Published: 2024-07-04
- Granted: 2025-02-11
- Earliest claimed: 2013-03-14
- Assignees: Imagination Technologies Limited
- Applicants: Imagination Technologies Limited
- Inventors: Cuneyt Ozdas; Luke Tilman Peterson; Steven Blackmon; Steven John Clohset
- Web page: https://patentgrep.com/patent/US12223586B2

## CPC

- G06T 15/06: Ray-tracing
- G06T 15/506: {Illumination models}
- G06T 2210/12: Bounding box
- G06T 2210/21: Collision detection, intersection
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Aspects relate to tracing rays in 3-D scenes that comprise objects that are defined by or with implicit geometry. In an example, a trapping element defines a portion of 3-D space in which implicit geometry exist. When a ray is found to intersect a trapping element, a trapping element procedure is executed. The trapping element procedure may comprise marching a ray through a 3-D volume and evaluating a function that defines the implicit geometry for each current 3-D position of the ray. An intersection detected with the implicit geometry may be found concurrently with intersections for the same ray with explicitly-defined geometry, and data describing these intersections may be stored with the ray and resolved.

## Claims

### Claim 1

A method of rendering an image of a 3-D scene using ray tracing, comprising:
receiving explicitly-defined geometry, associated with procedural information that when executed defines an extent of implicitly-defined geometry;
executing the procedural information to produce finalised implicit geometry;
defining a bounding box element for the finalised implicit geometry;
producing an acceleration structure that comprises the defined bounding box element, which places the defined bounding box element in a 3-D scene;
storing the acceleration structure on a machine readable medium; and
traversing the acceleration structure, during rendering, with a ray in order to identify a closest intersection for the ray with either implicitly-defined geometry or explicitly-defined geometry located in the 3-D scene; and
using the closest intersection for the ray to render an image of the scene.

### Claim 2 (depends on 1)

The method of claim 1, further comprising defining a volume exclusion element, located within the defined bounding box element, and outside of the extent of the finalised implicit geometry, and storing the volume exclusion element with the acceleration structure.

### Claim 3 (depends on 1)

The method of claim 1, further comprising defining a plurality of volume exclusion elements, the volume exclusion elements being of the same shape as the bounding box element, positioned and having sizes selected to fill 3-D space between the defined bounding box element and the extent of the finalised implicit geometry.

### Claim 4 (depends on 1)

The method of claim 1, further comprising storing information identifying a referenced coordinate system associated with the defined bounding box element.

### Claim 5 (depends on 4)

The method of claim 4, wherein the traversing comprises transforming the ray into the referenced coordinate system and testing the ray for intersection with the implicitly-defined geometry.

### Claim 6 (depends on 5)

The method of claim 5, further comprising storing a result of the testing of the ray for intersection with the implicitly-defined geometry in a data structure defining a new ray that has the same origin and direction as the ray, and the traversal further comprises traversing the new ray in the acceleration structure.

### Claim 7 (depends on 6)

The method of claim 6, further comprising storing inverse transformation data in the data structure defining the new ray, and performing the inverse transformation to express the new ray in a global coordinate system for the 3-D scene.

### Claim 8 (depends on 7)

The method of claim 7, where the inverse transformation is performed in order to select a closest interaction from a plurality of available interactions for the ray.

### Claim 9

A ray tracing system for rendering an image of a 3-D scene, the system comprising:
one or more computational cores configured to:
receive explicitly-defined geometry, associated with procedural information that when executed defines an extent of implicitly-defined geometry,
execute the procedural information to produce finalised implicit geometry,
define a bounding box element for the finalised implicit geometry,
produce an acceleration structure that comprises the defined bounding box element, which places the defined bounding box element in a 3-D scene,
store the acceleration structure on a machine readable medium, and
one or more test cells configured to traverse the acceleration structure, during rendering, with a ray in order to identify a closest intersection for the ray with either implicitly-defined geometry or explicitly-defined geometry located in the 3-D scene;
wherein the ray tracing system is configured to use the identified closest intersection for the ray for rendering an image of the scene.

### Claim 10 (depends on 9)

The ray tracing system of claim 9, the system further configured to define a volume exclusion element, located within the defined bounding box element, and outside of the extent of the finalised implicit geometry, and to store the volume exclusion element with the acceleration structure.

### Claim 11 (depends on 9)

The ray tracing system of claim 9, further comprising defining a plurality of volume exclusion elements, the volume exclusion elements being of the same shape as the bounding box element, positioned and having sizes selected to fill 3-D space between the defined bounding box element and the extent of the finalised implicit geometry.

### Claim 12 (depends on 9)

The ray tracing system of claim 9, wherein the system is further configured to store information identifying a referenced coordinate system associated with the defined bounding box element.

### Claim 13 (depends on 12)

The ray tracing system of claim 12, wherein the traversing comprises transforming the ray into the referenced coordinate system and testing the ray for intersection with the implicitly-defined geometry.

### Claim 14 (depends on 13)

The ray tracing system of claim 13, wherein the system is further configured to store a result of the testing of the ray for intersection with the implicitly-defined geometry in a data structure defining a new ray that has the same origin and direction as the ray, and the traversal further comprises traversing the new ray in the acceleration structure.

### Claim 15 (depends on 14)

The ray tracing system of claim 14, wherein the system is further configured to store inverse transformation data in the data structure defining the new ray, and performing the inverse transformation to express the new ray in a global coordinate system for the 3-D scene.

### Claim 16 (depends on 15)

The ray tracing system of claim 15, where the inverse transformation is performed in order to select a closest interaction from a plurality of available interactions for the ray.

### Claim 17

A non-transitory computer-readable storage medium comprising instructions which, when executed by a processor, cause the processor to perform a method of preparing to produce a rendering of a 3-D scene, comprising:
receiving explicitly-defined geometry, associated with procedural information that when executed defines an extent of implicitly-defined geometry;
executing the procedural information to produce finalised implicit geometry;
defining a bounding box element for the finalised implicit geometry;
producing an acceleration structure that comprises the defined bounding box element, which places the defined bounding box element in a 3-D scene;
storing the acceleration structure on a machine readable medium; and
traversing the acceleration structure, during rendering, with a ray in order to identify a closest intersection for the ray with either implicitly-defined geometry or explicitly-defined geometry located in the 3-D scene.
