Как я могу сгенерировать шум Перлина на сферической поверхности?

Я пытаюсь создать ландшафт, используя шум Перлина. Я понимаю, как сгенерировать его с использованием декартовых координат, но не могу полностью понять, как это будет работать на сфере. Я знаю, что вы можете проецировать 2D-поверхности на сферы, но разве искажение не испортит распределение шума? Лучшая идея, которую я могу придумать для создания однородного шума на поверхности сферы, - это сопоставить точку на сфере с трехмерной декартовой координатой и использовать функцию трехмерного шума. (По сути, для создания куба шума и «сбривания» углов, чтобы сделать его круглым.) Есть ли лучший метод, который мне не хватает?

25
задан dlras2 2 July 2011 в 04:14
поделиться

1 ответ

Я полагаю, что подход заключается в том, чтобы фактически использовать трехмерное поле шума (каждая точка в трехмерном пространстве имеет скалярное значение шума), а не двумерное поле (каждая точка на 2D-плоскости имеет значение шума).

При использовании 2D-шумовой функции для генерации карты высот вы смещаете значение z в соответствии со значением шума.

При использовании трехмерного поля вы производите выборку шума в точках на поверхности сферы, а затем используете значение шума для радиального смещения каждой точки от или к центру сферы.

Очевидно, что трехмерный шум труднее и медленнее производить, но вам не приходится сталкиваться со сложностями обтекания поверхности вокруг сферы, а поскольку функция шума непрерывна, швов нет.

Это, очевидно, может быть применено к любой произвольной форме.

8
ответ дан 28 November 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: