6

前几天,我正在阅读有关kd-trees 的信息。我一直在寻找这样一种数据结构可能有用的具体而简单的情况。有人有这样的例子吗?

4

5 回答 5

9

我使用 kd-tree 来模拟通过波浪产生的喷雾的光传输。这使得渲染不仅被灯照亮的喷雾液滴成为可能,而且还可以渲染来自其他液滴的间接照明。

我将喷雾点存储在 kd-tree 中,然后使用 kd-tree 快速查找哪些点彼此靠近,从而确定哪些水滴相互照射。(实际上,它稍微复杂一点,但结构仍然是一个 kd-tree。)这使得通过喷雾渲染出漂亮的光芒成为可能。

这是正在使用的方法的图片。

模拟光传输

注意灯周围的喷雾是如何用散射光发光的。

于 2012-02-28T23:18:08.083 回答
7

我已将它们用作查找给定点的最近邻居以进行机器学习的有效方法。

于 2012-02-28T19:42:42.870 回答
4

它们用于光线追踪,将场景分解为几个盒子。它加速了碰撞,因为如果光线不与边界框碰撞,它肯定不会与其内容发生碰撞。

于 2012-02-28T19:57:48.330 回答
1

VTK 有一个: 例如http://www.vtk.org/doc/nightly/html/classvtkKdTree.html

看看像FindClosestPoint. 给定大量输入点,该类需要相对较长的时间来构建。但是在构建树之后,像这样的函数运行得非常快。

于 2012-02-28T20:23:57.110 回答
1

我在定价项目中使用它们。目的是找到符合多个标准的最佳价格。

于 2012-02-28T20:46:28.853 回答