给定一个 3D 立方体网格,我如何将 3D 网格坐标映射到 1D 坐标,以便每个单元格的最近邻居可以由相应的 1D 值的连续范围表示?
3D 到 1D 映射之一可能是 Z 索引,但我不知道如何以我上面描述的方式访问邻居。
为什么我需要这个:我正在编写一个处理粒子的 OpenCL 内核函数。在网格的每个单元格中,可以是任意(非负:)数量的粒子。粒子存储在内存中,按由一维坐标给出的单元格 ID 排序。并且为了在读取邻居时获得最佳 GPU 性能,我需要相邻粒子在内存中接近(即在空间中彼此接近的网格单元的 1D 坐标也接近)。
如果你想要更多的上下文,你可以在不同的 SE 网站上看到我的问题: