2011-09-24 26 views
1

我想光线跟踪是PLY格式的斯坦福兔子模型。我有一个解析PLY文件的解析器,并给出了三​​角形的坐标值及其顶点的值。现在我很困惑如何继续前进。我应该将这些三角形顶点放在一个矢量中,然后传递它们来构建一棵K-D树?还有人有一个教程或样本源代码,其中一个层模型被传递给k-d树,然后k-d树被遍历以对该场景进行光线追踪?如果有人有他们可以分享的示例代码,请告诉我。谢谢。光线跟踪使用k-d树斯坦福兔子模型

回答

3

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

所以,你需要:

  1. 定义自己的数据结构来表示对象为点的集合和多边形(其参考点)的集合。
  2. 编写一个加载器,它使用解析器以PLY格式读取对象,并构造一个多边形类型的实例。
  3. 定义KD树数据结构。
  4. 编写一个KD树构建器,它遍历构成对象的多边形并构建KD树。
  5. 将光线跟踪器扩展为使用KD树。

使用谷歌查看KD Trees的更多信息和样本代码。标准论文由Vlastimil Havran提供,可在线获取。