10

因此,在看到来自Godus的图像时, 我想知道如何为不同的高度或高度层生成一个简单的、非交互式的、具有不同颜色的 2D 图像,如下图所示。

我只是想在没有房屋、树木对象和单元的情况下为地形生成基本的颜色层。我并没有考虑创建一个可以解决这个问题的图形引擎,而是一种在屏幕上生成平面图像的简单方法。

问题有两个方面:

1,什么样的数据可以用于这种生成?我在想也许 ASCII 艺术很容易创建和修改以快速改变地形,但很难提供高度信息。

2、有哪些现有的框架、类、方法或方法论可以用来解决数据准备好后的生成。

神: 像这个

ASCII 艺术(北欧 ! 代表挪威,# 代表瑞典,$ 代表芬兰,% 代表俄罗斯: 在此处输入图像描述

(取自 MapBox 文档:http ://mapbox.com/developers/utfgrid/#map_data_as_ascii_art )

4

1 回答 1

5

如果您想创建一个简单的 2D 轮廓图像,我会尝试以下操作:

  • 创建一些高度数据。我只是为此使用灰度图像,而不是 ascii。您可以在 MS Paint 或任何类似的东西中创作基本的高度图。
  • 平滑数据。例如,应用模糊,或使用平滑滤镜增加分辨率。
  • 考虑将所有高度数据钳制在某个点以下 - 如果需要,这表示水位。
  • 量化数据。量化的越多,轮廓越少但越明显。
  • 通过调色板查找应用假着色。例如:低洼地区蓝色代表水,然后黄色代表沙子,绿色代表草,棕色代表泥土,灰色代表岩石,白色代表雪。

重要的部分是放大/平滑过滤器,它为您的轮廓创建更有趣的形状,以及实际创建轮廓本身的量化。

你可以玩这个阶段。例如,如果您的源数据非常干净,您可以在地形中引入一些噪声,使其看起来更自然。或者,如果您希望所有内容都非常圆润,则可以增加平滑度。

如果你想使用 ascii,你可以直接从中生成一个位图,这并不难。您作为示例使用的 ascii 是按国家而不是按地形划分的,因此错误着色和轮廓可能会做错事。您可能可以将其用作简单地形生成器的输入,可能只需要几个字符来表示您想要陆地、海洋、山脉等的位置。

这是我敲出的一个非常基本的示例,它只是我建议的技术的应用。我没有使用任何框架或库,只是一些简单的图像处理功能,以及我发现的欧洲高度图:

在此处输入图像描述

于 2012-12-24T15:01:30.927 回答