一千萬個為什麽

搜索

用於三角交叉加速結構的簡單C/C ++庫

我是光線追蹤,並希望通過一些加速結構(kd-tree,BVH,無論如何)來加速它。我不想自己編寫代碼。到目前為止我嘗試了什麽:

  • 從pbrt中取出kd樹。如果沒有將所有pbrt都放入我的代碼中,那麽我就無法成功實現內部依賴性。

  • CGAL的AABB樹。令人沮喪的是,這似乎只回到了交叉點。在不知道該點來自哪個三角形的情況下,我無法在三角形上有效地插入顏色。我喜歡用顏色擴展“Point”的概念,但如果不從頭開始編寫大量的模板代碼,這似乎是不可能的。

  • 寫我自己的。好的,所以我編寫了自己的網格加速類,它可以工作,但是它很討厭且效率低下。

所以,如果有人可以建議我可以用於此目的的簡單庫,我真的很感激!我只需要一個三角形湯和射線,找到最近的交叉點並返回該三角形的索引。

最佳答案

Jaco Bikker wrote this series of tutorials: http://www.devmaster.net/articles/raytracing_series/part7.php

它們非常有用,並且最後包含使用kd樹的光線跟蹤器的代碼。

你也許可以使用它。

轉載註明原文: 用於三角交叉加速結構的簡單C/C ++庫