US 12,475,631 B2
Accelerating triangle visibility tests for real-time ray tracing
Gregory Muthler, Chapel Hill, NC (US); John Burgess, Austin, TX (US); Henry Packard Moreton, Woodside, CA (US); Yury Uralsky, Los Gatos, CA (US); Levi Oliver, Webster, NY (US); Magnus Andersson, Lund (SE); and Johannes Deligiannis, Stockholm (SE)
Assigned to NVIDIA Corporation, Santa Clara, CA (US)
Filed by NVIDIA CORPORATION, Santa Clara, CA (US)
Filed on Sep. 16, 2022, as Appl. No. 17/946,221.
Claims priority of provisional application 63/245,155, filed on Sep. 16, 2021.
Prior Publication US 2023/0084570 A1, Mar. 16, 2023
Int. Cl. G06T 15/06 (2011.01); G06T 1/60 (2006.01); G06T 9/00 (2006.01); G06T 15/00 (2011.01); G06T 15/40 (2011.01); G06T 15/50 (2011.01); G06T 17/10 (2006.01); G06T 17/20 (2006.01); G06T 19/20 (2011.01)
CPC G06T 15/06 (2013.01) [G06T 1/60 (2013.01); G06T 9/001 (2013.01); G06T 15/005 (2013.01); G06T 15/40 (2013.01); G06T 15/50 (2013.01); G06T 17/10 (2013.01); G06T 17/20 (2013.01); G06T 17/205 (2013.01); G06T 19/20 (2013.01); G06T 2210/08 (2013.01); G06T 2210/12 (2013.01); G06T 2210/21 (2013.01); G06T 2210/36 (2013.01); G06T 2219/2016 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A ray tracing acceleration hardware device, comprising:
a memory access circuit configured to read a plurality of nodes of an acceleration structure (AS) including a node comprising a polygon mesh primitive defining plural regions in the node, and a visibility mask (VM) corresponding to the node, wherein the VM comprises a respective visibility state for each of the plural regions of the polygon mesh;
ray storage configured to store data representing a ray; and
acceleration circuitry configured to perform operations comprising:
detecting an intersection of the node by the ray at an intersection point;
obtaining, from the VM, a visibility state of a region corresponding to the intersection point, wherein the region is one of the plural regions in the mesh; and
determining, based on the visibility state, how to process the intersection,
wherein the obtaining, from the VM, a visibility state of a region in the polygon mesh, comprises:
determining, based on the intersection point, an index into the VM; and
obtaining, by accessing the VM using the index, the visibility state of the region,
wherein the polygon mesh is a mesh of micro-triangles overlaid on a triangle geometric primitive, and where the determining an index into the VM comprises:
calculating, based on coordinates of the intersection point, a barycentric coordinate of the region; and
calculating the index based on the barycentric coordinate.