射线追踪使用k-d树为斯坦福兔子模型

时间:2011-09-24 15:35:42

标签: rendering raytracing kdtree

我正在尝试射线扫描斯坦福兔子模型,这是PLY格式。我有一个解析器,它解析PLY文件,并给我三角形坐标的值以及它们的顶点。现在我对如何继续前进感到困惑。我应该将这些三角形顶点放在一个向量中,然后传递它们来构建一个k-d树吗?还有人有一个教程或一个示例源代码,其中一个层模型传递给k-d树,然后遍历k-d树光线跟踪场景?如果有人有他们可以分享的示例代码,请告诉我。感谢。

1 个答案:

答案 0 :(得分:3)

PLY是描述为多边形集合的对象的文件格式。 KD树是一种优化结构,旨在通过消除不必要的交叉测试来加快渲染时间。

所以你需要:

  1. 定义您自己的数据结构,将对象表示为点集合和多边形集合(指向点)。
  2. 编写一个使用解析器读取PLY格式对象的加载器,并构造一个多边形类型的实例。
  3. 定义KD树数据结构。
  4. 编写一个KD树构建器,它迭代构成对象的多边形并构造一个KD树。
  5. 扩展光线追踪器以使用KD树。
  6. 使用谷歌查找KD树的更多信息和示例代码。标准论文由Vlastimil Havran提供,可在线获取。