我正在使用k-d树在光线跟踪器中进行空间分区。我想将near-by原语组合成固定大小的组,以便可以使用SIMD指令对每组中的数据进行解交织和同时处理。什么是一个很好的快速算法来找到(近似)最小的固定大小的组?
理想情况下,它会增加kd树构建算法,而不是添加单独的传递,但由于基元通常非常靠近以至于大多数基元将属于多个叶节点并且我不能具有重复项的组,因为浮点精度错误会使阴影和反射混乱。
我认为我远非第一个尝试这个的人,因此已经存在一个解决方案,但是我在搜索互联网时找到的最相关的解决方案是处理点数据和可变大小的组。
答案 0 :(得分:0)
一种流行的方法是将对象分组以选择一个随机对象,然后添加"最接近的" k 与对象组成对象。 "最近的"通常定义为给出组合边界框的最小表面积。您还可以使用Hilbert curve距离;或者是物体之间的3D曲线上的距离'中心,或在边界框成为点的6D空间中:
(x_min, y_min, z_min, x_max, y_max, z_max)