IP Library Granted Patent US 12700166
Granted Patent B2
US 12700166 · App. 18/644,347 · Granted Aug 4, 2026

Graphics processing using bounding volumes for ray tracing

Inventors: Richard Edward Bruce (Great Shelford, GB); Alexander James Westby (Cambridge, GB)
Assignee: Arm Limited
G06T15/06
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 12700166
App. No.
18/644,347
Granted
Aug 4, 2026
Kind
B2
Abstract

When performing ray tracing in a graphics processing system a ray tracing acceleration data structure comprising nodes having associated bounding volumes is provided for use when determining a sub-triangle of a displacement micromapped triangular primitive that may be intersected by a ray. The bounding volumes of the nodes of the ray tracing acceleration data structure comprise volumes having triangular ends and are formed by the triangular ends and planes joining corresponding sides of the triangular ends of the volume. When a ray intersects the triangular primitive having the associated displacement micromap, the ray tracing acceleration data structure for the primitive is traversed for the ray.

Claims (47)

1 . A method of operating a graphics processing system that is operable to generate a render output by performing a ray tracing process in which rays are traced for a scene to be rendered;

the method comprising:

for a triangular primitive for a scene being rendered that has an associated displacement micromap that stores displacement information for respective vertices of a plurality of sub-triangles that the triangular primitive is to be divided into, providing a ray tracing acceleration data structure comprising nodes having associated bounding volumes for use when determining a sub-triangle of the triangular primitive that may be intersected by a ray, wherein the bounding volumes of the nodes of the ray tracing acceleration data structure comprise volumes having triangular ends and formed by the triangular ends and planes joining corresponding sides of the triangular ends of the volume, wherein one triangular end of the bounding volume for a node comprises the sub-triangle at the micromap sub-division level that the node represents without any displacement of its vertices, and the other end of the bounding volume is the sub-triangle formed by the displaced positions of the vertices of the sub-triangle;

the method further comprising:

when a ray intersects the triangular primitive having the associated displacement micromap:

traversing the ray tracing acceleration data structure for the primitive for the ray; and

performing further processing based on the traversing the ray tracing acceleration data structure for the primitive for the ray.

2 . The method of claim 1 , wherein the ray tracing acceleration data structure is arranged as a hierarchy of nodes representing a hierarchy of bounding volumes.

3 . The method of claim 1 , wherein each node of the ray-tracing acceleration data structure represents a particular set of one or more sub-triangles of the triangular primitive.

4 . The method of claim 1 , wherein the ray tracing acceleration data structure does not represent one or more of the lowest levels of the micromap sub-division.

5 . The method of claim 1 , wherein the triangular ends of the bounding volume for a node of the ray tracing acceleration data structure for the displacement micromapped triangle are based on the sub-triangle at the micromap sub-division level that the node represents.

6 . The method of claim 1 , comprising generating the ray tracing acceleration data structure that is provided for the displacement micromapped triangular primitive in response to determining that a ray for a scene being rendered potentially intersects the triangular primitive.

7 . The method of claim 1 , comprising:

in response to determining that a ray potentially intersects a triangle having an associated displacement micromap:

generating a first part of a ray tracing acceleration data structure for the displacement micromapped triangle;

traversing that first generated part of the ray tracing acceleration data structure for a ray; and

generating further parts of the ray tracing acceleration data structure for the displacement micromapped triangular primitive based on the traversal of the parts of the ray tracing acceleration data structure that have been generated.

8 . The method of claim 7 , wherein the part of a ray tracing acceleration data structure that is generated at any one time comprises only some but not all of the sub-division levels of the displacement micromapped triangle.

9 . A method of generating a ray-tracing acceleration data structure for use for a ray-tracing process, the method comprising:

generating for a triangular primitive for a scene to be rendered that has an associated displacement micromap that stores displacement information for respective vertices of a plurality of sub-triangles that the triangular primitive is to be divided into:

a ray tracing acceleration data structure comprising nodes having associated bounding volumes for use when determining a sub-triangle of the triangular primitive that may be intersected by a ray;

wherein the bounding volumes of the nodes of the ray tracing acceleration data structure comprise volumes having triangular ends and formed by the triangular ends and planes joining corresponding sides of the triangular ends of the volume, wherein one triangular end of the bounding volume for a node comprises the sub-triangle at the micromap sub-division level that the node represents without any displacement of its vertices, and the other end of the bounding volume is the sub-triangle formed by the displaced positions of the vertices of the sub-triangle.

10 . A graphics processing system that is operable to generate a render output by performing a ray tracing process in which rays are traced for a scene to be rendered;

the graphics processing system comprising:

a ray-tracing acceleration data structure providing circuit configured to provide for a triangular primitive for a scene being rendered that has an associated displacement micromap that stores displacement information for respective vertices of a plurality of sub-triangles that the triangular primitive is to be divided into, a ray tracing acceleration data structure comprising nodes having associated bounding volumes for use when determining a sub-triangle of the triangular primitive that may be intersected by a ray, wherein the bounding volumes of the nodes of the ray tracing acceleration data structure comprise volumes having triangular ends and formed by the triangular ends and planes joining corresponding sides of the triangular ends of the volume, wherein one triangular end of the bounding volume for a node comprises the sub-triangle at the micromap sub-division level that the node represents without any displacement of its vertices, and the other end of the bounding volume is the sub-triangle formed by the displaced positions of the vertices of the sub-triangle;

and

a ray tracing acceleration data structure traversal circuit configured to, when a ray intersects a triangular primitive having an associated displacement micromap:

traverse a ray tracing acceleration data structure for the primitive for a ray; and

perform further processing based on the traversing the ray tracing acceleration data structure for the primitive for the ray.

11 . The system of claim 10 , wherein the ray tracing acceleration data structure is arranged as a hierarchy of nodes representing a hierarchy of bounding volumes.

12 . The system of claim 10 , wherein each node of the ray-tracing acceleration data structure represents a particular set of one or more sub-triangles of the triangular primitive.

13 . The system of claim 10 , wherein the ray tracing acceleration data structure does not represent one or more of the lowest levels of the micromap sub-division.

14 . The system of claim 10 , wherein the triangular ends of the bounding volume for a node of the ray tracing acceleration data structure for the displacement micromapped triangle are based on the sub-triangle at the micromap sub-division level that the node represents.

15 . The system of claim 10 , configured to:

generate the ray tracing acceleration data structure that is provided for the displacement micromapped triangular primitive in response to determining that a ray for a scene being rendered potentially intersects the triangular primitive.

16 . The system of claim 10 , configured to:

in response to determining that a ray potentially intersects a triangle having an associated displacement micromap:

generate a first part of a ray tracing acceleration data structure for the displacement micromapped triangle;

traverse that first generated part of the ray tracing acceleration data structure for a ray; and

generate further parts of the ray tracing acceleration data structure for the displacement micromapped triangular primitive based on the traversal of the parts of the ray tracing acceleration data structure that have been generated.

17 . The system of claim 16 , wherein the part of a ray tracing acceleration data structure that is generated at any one time comprises only some but not all of the sub-division levels of the displacement micromapped triangle.

18 . A graphics processor that is operable to generate a render output by performing a ray tracing process in which rays are traced for a scene to be rendered;

the graphics processor comprising:

a ray tracing acceleration data structure traversal circuit configured to, when a ray intersects a triangular primitive for a scene being rendered that has an associated displacement micromap that stores displacement information for respective vertices of a plurality of sub-triangles that the triangular primitive is to be divided into:

traverse a ray tracing acceleration data structure for the primitive for a ray, the ray tracing acceleration data structure comprising nodes having associated bounding volumes for use when determining a sub-triangle of the triangular primitive that may be intersected by a ray, wherein the bounding volumes of the nodes of the ray tracing acceleration data structure comprise volumes having triangular ends and formed by the triangular ends and planes joining corresponding sides of the triangular ends of the volume, wherein one triangular end of the bounding volume for a node comprises the sub-triangle at the micromap sub-division level that the node represents without any displacement of its vertices, and the other end of the bounding volume is the sub-triangle formed by the displaced positions of the vertices of the sub-triangle;

and

a processing circuit or circuits configured to perform further processing based on the traversing the ray tracing acceleration data structure for the primitive for the ray.