Метка высокой производительности верна. Позвольте мне объяснить, почему.
Генераторы ландшафта, облачные генераторы и симуляторы океана используют математические волновые, случайные и шумовые функции для создания интересных и правдоподобных форм. Начальное значение в значительной степени не имеет значения ни для кого, кроме генератора. Это значение позволяет ему очень быстро получить воспроизводимые результаты. Компьютерные программы должны найти способы оптимизировать все возможное, и хранение информации о местности может содержать много данных! Таким образом, вместо того, чтобы сохранять все это, интеллектуальные системы будут пытаться регенерировать местность, когда это будет необходимо. Каждую точку на местности можно пересчитать, используя сложную математическую функцию, и ваше начальное значение играет важную роль в этом расчете.
В качестве примера, скажем, вы хотели нарисовать несколько 2D холмов. Вы можете использовать синусоида , чтобы описать высоту этих холмов.
for distanceAway = 0, 1, 0.1 do
local hillHeight = math.sin( distanceAway )
print( hillHeight )
end
Поскольку вы используете математическую функцию для описания холмов, на любом расстоянии вы можете мгновенно узнать, является ли она вершиной холма, низом долины или чем-то ещемежду. И он будет повторяться каждый раз, когда вы его тоже запускаете!
Но, может быть, эти холмы выглядят слишком похожими. Вы можете добавить некоторые вариации и дрожание к этим холмам, добавив к высоте случайное число.
for distanceAway = 0, 1, 0.1 do
local hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
end
И это может показаться приятным дополнением: холмы теперь имеют больше вариаций, они могут быть немного необычнымиколючие, но по крайней мере они не одни и те же холмы снова и снова ... но теперь у нас есть проблема. Когда мы снова просим тот же холм, он другой!
local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.random()
print( hillHeight )
Представьте, что вы идете по миру, и на вершине холма вы обнаруживаете действительно крутой камень или дерево. Итак, вы уходите, чтобы найти друга, но когда вы возвращаетесь, вершина холма становится долиной. И так было бы везде, где бы ты ни был. Не было бы постоянного мира, к которому можно было бы вернуться!
Так что вместо случайного числа давайте вместо этого используем псевдослучайное число из шумовой функции . На этот раз давайте также предоставим начальное значение!
local seedValue = 0.2357
local distanceAway = 10
local hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )
hillHeight = math.sin( distanceAway ) + math.noise( distanceAway, 0.5, seedValue )
print( hillHeight )
Прекрасно! Предоставление начального числа позволяет шумовой функции каждый раз воссоздавать одно и то же случайное число. Теперь у нас есть воспроизводимое рельефное рельефное изображение, и у него также есть несколько интересных вариаций!
Если вы хотите увидеть другие виды использования шума, есть фантастическое слайд-шоу , сделанное Техасским университетом это касается глубины случайных чисел и шума.
Надеюсь, это поможет понять, почему Roblox Terrain Editor позволяет вам указать значение "Seed". И, насколько я знаю, не существует мастер-списка, созданного из всех разных семян. Но если вы найдете хороший номер, обязательно поделитесь номером с друзьями, чтобы они тоже могли его опробовать!