如何在3D矩阵中合并AABB长方体

问题描述

我正在一个项目中,我需要将多维数据集合并为较大的长方体。然后,这些长方体需要检查它们是否可以合并在一起,然后才能拆分它们。我正在用LUA编写

local grid = {}                            -- 3D Matrix
for x=-64,64,1 do
    grid[x] = {}                           -- x-axis
    for y=-64,1 do
        grid[x][y] = {}                    -- y-axis
        for z=-64,1 do
            grid[x][y][z] = nil            -- z-axiz
        end
    end
end

每个网格值都包含一个ID和一个AABB。一次只放置一个块,然后一次只破坏一个块。我无法在线找到有关如何正确进行多轴立方体合并/断开的任何文档。

当块合并时,它们将具有相同的ID;当块合并时,它们将为新的长方体获得新的ID。此网格中只能有长方体,最有可能将递归用于中断。

我试图做的是: 我试图在触摸的长方体的组合AABB中循环所有值,然后检查网格中的每个值是新ID还是我要与之组合的块的ID。如果它是nil或另一个ID,我将不允许它合并,我会为所有方面这样做。

尽管我不知道自己做错了什么,但每次尝试都会使我陷入困境。 我可以使用伪代码作为答案。

如果您知道用于此特定目的的任何方法或算法,请告诉我。

如果您想了解更多信息,请询问 预先感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...