等距地形

时间:2015-07-20 09:07:08

标签: terrain isometric

我正在尝试制作等距地形编辑器。我的问题与制作等距图形或渲染它们无关,而是与瓷砖索引有关。

让我们说我在瓦片(10,5)上筑山。这意味着tile(10,5)将是type_1类型,tile(11,5)将是corner_2,tile(10,6)将是corner_3,而tile(11,6)将是corner_4。这将在四个瓷砖的中间创建一个峰值。

一开始似乎很简单,但有很多可能性。如果我们有两个相互交叉的山丘,我们需要倒角砖。如果我们有一个斜山,周围的瓷砖需要变成对角线倒角砖。我已经为贴图http://opengameart.org/content/simple-iso-city-work-in-progress创建了的图片。我的问题是,是否已有一套规则"我可以关注地形如何在周围地形周围进行修改?或者我是否必须自己弄清楚每个瓷砖的组合?

1 个答案:

答案 0 :(得分:0)

如果您想知道组合的数量,您必须考虑相关领域的邻域以及那里潜在的不同元素。

假设您有4个邻居和两个磁贴类型(0和1),则组合数为16:每个相邻单元格可以具有与中心单元格(类型1)相同的字段类型或其他类型( 0)。

Center type | north | east | west | east
     1      |   0   |  0   |  0   |  0
     1      |   1   |  0   |  0   |  0
     1      |   0   |  1   |  0   |  0
     1      |   1   |  1   |  0   |  0
     1      |   0   |  0   |  1   |  0
(...)
     1      |   0   |  0   |  1   |  1
     1      |   1   |  0   |  1   |  1
     1      |   0   |  1   |  1   |  1
     1      |   1   |  1   |  1   |  1

您现在可能会看到这实际上是二进制计数。 如果您有8个邻居,您可能已经猜过,您将拥有256种不同的组合。这当然很多......你可以通过镜像案例来减少这个数字,但是在链接所指的阴影环境中,这通常看起来不那么好。

如果你有更多的瓦片类型要组合(沙漠/草地/石头),那么组合的数量是(类型的数量)^(邻居数量),所以对于3种瓦片类型和四个相邻的单元格,你是'将有3 * 3 * 3 * 3 = 81个案例。如果你有不同的身高(例如2),你的类型数量基本上会增加一倍,所以它会是6 * 6 * 6 * 6 = 1296.

你可能不想这样做(手动)。您可以考虑在3d中对图块进行建模和纹理处理,并在图集上进行渲染,并为您的游戏风格进行一些后期效果过滤(调色板)。对于像这样的像素化游戏来说,数据量并不是那么糟糕。纹理会非常庞大​​,但我相信〜2000年的游戏实际上有时会做到这一点。 (如果您的磁贴大小为32x24,并且您有1296个磁贴,则您需要大约一百万像素的空间,这大约可以容纳1024x1024纹理。)