发明名称 |
FINE-GRAINED PARALLEL TRAVERSAL FOR RAY TRACING |
摘要 |
Techniques are disclosed for tracing a ray within a parallel processing unit. A first thread receives a ray or a ray segment for tracing and identifies a first node within an acceleration structure associated with the ray, where the first node is associated with a volume of space traversed by the ray. The thread identifies the child nodes of the first node, where each child node is associated with a different sub-volume of space, and each sub-volume is associated with a corresponding ray segment. The thread determines that two or more nodes are associated with sub-volumes of space that intersect the ray segment. The thread selects one of these nodes for processing by the first thread and another for processing by a second thread. One advantage of the disclosed technique is that the threads in a thread group perform ray tracing more efficiently in that idle time is reduced. |
申请公布号 |
US2014168238(A1) |
申请公布日期 |
2014.06.19 |
申请号 |
US201213714284 |
申请日期 |
2012.12.13 |
申请人 |
NVIDIA CORPORATION |
发明人 |
LUEBKE David;AILA Timo;PANTALEONI Jacopo;TARJAN David |
分类号 |
G06T15/06 |
主分类号 |
G06T15/06 |
代理机构 |
|
代理人 |
|
主权项 |
1. A method for tracing a ray within a parallel processing unit, the method comprising:
receiving, at a first thread, at least a portion of a first ray for tracing; identifying a first node within an acceleration structure associated with the at least a portion of the ray, wherein the first node is associated with a volume of space traversed by the ray; identifying a plurality of nodes that comprise child nodes of the first node, wherein each node within the plurality of nodes is associated with a different sub-volume of space within the volume of space, and wherein each sub-volume of space is associated with a corresponding ray segment within the at least a portion of the ray; determining that two or more nodes within the plurality of nodes are associated with sub-volumes of space that intersect the at least a portion of the ray; selecting a second node that comprises one node of the two or more nodes for processing by the first thread; selecting a third node that comprises another node of the two or more nodes for processing by a second thread; determining that the second thread is processing at least a portion of a second ray; placing an entry associated with the third node into a first data structure; and causing the second thread to retrieve the entry associated with the third node from the first data structure when the second thread has completed processing at least a portion of the second ray.
|
地址 |
Santa Clara CA US |