【发布时间】:2014-04-30 15:14:46
【问题描述】:
我假设这是一个相当普遍的问题,并要求一个可能在本质上更具学术性的解决方案或用于此类一般问题的一般方程,就像我破解看起来非常大的意大利面条一样乱七八糟的。
我想生成我的平铺世界的边缘。我有一个基本的 8 条边。我有一个代表我的瓷砖的整数数组。 0 是水,1 是草。我想添加在水和草之间过渡的边缘。我的边是从 10 到 17。
int edges[3][3] =
{
{10, 11, 12},
{13, 0, 14},
{15, 16, 17}
};
我认为的第一件事是这类似于矩阵。我知道我的图形库中有一个 3 x 3 矩阵对象。是否有任何使用矩阵或蒙版的标准操作来巧妙地将我的边缘应用于我的图块?
是否有合并边缘的标准公式?例如,如果右下角与草瓦重叠,也许我不会改变它的值,但是如果右下角与左上角重叠,我想将该瓦片更改为草(0)。有更多单独的场景,问题变得复杂。
由于在生成草瓦时需要前瞻功能来添加边缘,因此我将边缘生成为对瓦阵列的附加解析。所以我正在寻找一种解决方案,我可以将边缘添加到我的草地边缘。
这也让我想起了抗锯齿,不知道那个领域有没有相关的公式。
理想情况下,解决方案将是最佳的。例如,我将有某种类似上面的遮罩,然后通过将其添加到数组中的每个草块上,我将获得角和边的唯一值,以便我可以将它们转换为边缘图像。
【问题讨论】:
标签: c++ game-engine tile procedural-generation