发明名称 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