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