篇名 | A Fast Calculation Method for Multiple Scattering of Rays Based on KD-Tree |
---|---|
卷期 | 31:6 |
作者 | Pei-Lei Zhang 、 Fu-Bing Li 、 Wen-Jian Chen |
頁次 | 305-318 |
關鍵字 | KD tree 、 multiple scattering 、 ray-triangle intersection algorithm 、 shooting-bouncing rays 、 EI 、 MEDLINE 、 Scopus |
出刊日期 | 202012 |
DOI | 10.3966/199115992020123106024 |
In this paper, a single-ended open rectangular parallelepiped cavity model is used as an example to calculate the multiple scattering propagation path of incident rays in the target. In order to improve the efficiency of ray tracing, a multi-layer KD tree structure of the target is constructed and the ray-triangle intersection is determined based on KD tree structure. To construct a KD tree, several steps are performed. First, the degree of triangle centroid dispersion of the target is separately calculated for three coordinate axes. The axis with the maximum dispersion is selected as splitting axis. Second, the 3D bounding box that containing the whole target (i.e., the root node) is divided into two sub-bounding boxes (i.e., the child nodes) along the splitting axis, each containing about half of target triangles. The above procedure is then repeated for each new-generated bounding box until the number of triangles in these boxes (i.e., the leaf nodes) satisfies the preset condition, and a KD tree is finally constructed. To calculate the ray-triangle intersection, the KD tree is firstly searched from the root node layer by layer to find the leaf node that intersects with the incident ray, and the ray-triangle intersection coordinate as well as the reflected ray can be calculated in the leaf box. Multiple scattering of the ray can be determined similarly by the steps above. Result indicates that under the parameter settings in this article, multiple scattering calculation based on KD tree can achieves a speedup of about 10 compared with the traditional method that calculates the ray-triangle intersection one surface by one surface. It also indicates that as the height of the KD tree increases, computation time gradually decreases and finally tends to stabilize.