如何以高效的方式将相同类型的块组合成立方体?

我正在制作一款基于方块的城市建造游戏,我想找出一种将多个相同类型的块合并成立方体的高效方法,以进行优化。假设有一面墙,它由 16x30x16 个砖块组成。我可以将它们绘制成一个巨大的平面矩形棱柱,然后使用重复纹理,这将更加高效。

我已经通过创建条带(strips)开始了这个过程,打算将其进一步组合成窗格(panes)。但似乎这种方法已经太慢了,因为它必须遍历地块(chunk)中的每个块,检查它是否可以合并到当前条带中,如果可以则合并。

先行感谢

local function Draw(plot)
    local blocks = plot.blocks
    local slabs = NewAutotable(3)
    local slabList = {}
    for y = 1, 32 do
        for x = 1, 16 do
            local currentSlab = NewSlab(x, y, 1, 1, 1, 1, blocks[x][y][1])
            slabs[x][y][1] = currentSlab
            slabList[#slabList + 1] = currentSlab
            for z = 2, 16 do
                if currentSlab[7] == blocks[x][y][z] then
                    GrowSlab(currentSlab, 0, 0, 1)
                else
                    currentSlab = NewSlab(x, y, z, 1, 1, 1, blocks[x][y][z + 1])
                    slabs[x][y][z] = currentSlab
                    slabList[#slabList + 1] = currentSlab
                end
            end
        end
    end
end
点赞