Я пытаюсь узнать о Perlin Noise и процедурном поколении.Я читаю онлайн-учебник о создании ландшафтов с шумом, но я не понимаю часть объяснения автора о создании областей с более высоким возвышением.
На этой веб-странице под "островами"В разделе есть текст
Создайте фигуру, которая соответствует вашим желаниям с островов.Используйте нижнюю форму, чтобы подтолкнуть карту вверх, и верхнюю форму, чтобы подтолкнуть карту вниз.Эти формы являются функциями от расстояния d до высоты 0-1.Установите e = нижний (d) + e * (верхний (d) - нижний (d)).
Я хочу это сделать, но я не уверен, что автор имеет в виду, когда они 'Вы говорите о верхних и нижних фигурах.
Что мог бы иметь в виду автор под «Использовать нижнюю фигуру, чтобы подтолкнуть карту вверх, и верхнюю, чтобы подтолкнуть карту вниз»?
Пример кода:
from __future__ import division
import numpy as np
import math
import noise
def __noise(noise_x, noise_y, octaves=1, persistence=0.5, lacunarity=2):
"""
Generates and returns a noise value.
:param noise_x: The noise value of x
:param noise_y: The noise value of y
:return: numpy.float32
"""
value = noise.pnoise2(noise_x, noise_y,
octaves, persistence, lacunarity)
return np.float32(value)
def __elevation_map():
elevation_map = np.zeros([900, 1600], np.float32)
for y in range(900):
for x in range(1600):
noise_x = x / 1600 - 0.5
noise_y = y / 900 - 0.5
# find distance from center of map
distance = math.sqrt((x - 800)**2 + (y - 450)**2)
distance = distance / 450
value = __noise(noise_x, noise_y, 8, 0.9, 2)
value = (1 + value - distance) / 2
elevation_map[y][x] = value
return elevation_map