我有一大堆要在2D中渲染的对象,我从下到上排序。我目前正在使用R树来获取当前视口中的子集。但是,在将它们从空间索引中取出后,我必须按它们的Z顺序对它们进行重新排序。这种排序比在空间索引中查找它们的列表长了大约6倍(其中有几百个项目与我的查询匹配)。
是否存在一种2D空间索引,它通过矩形边界框快速查找,它将按排序顺序返回元素?
答案 0 :(得分:0)
您可以直接在Z顺序上构建R树。
通常,Hilbert顺序是首选,这被称为Hilbert-R树。
但你也可以对Z顺序做同样的事情。
但是,您也可以考虑立即以Z顺序存储数据;例如,在B + -tree中。
不是使用矩形查询,而是将查询转换为Z顺序区间,并查询Z索引。这是一种早于R树的非常经典方法:
Morton,G。M.(1966)
面向计算机的大地测量数据库;和文件排序的新技术
技术报告,加拿大渥太华:IBM有限公司