Настоящая загадка здесь состоит в том, как изменить базисные функции шума Перлина (называемые октавами?), Которые определяются с использованием частоты и амплитуды, так что они находятся над сферой, а не n-мерной плоскостью.
Таким образом, нам нужно иметь набор базовых функций (заданных направления, частоты и амплитуды), определенных по сфере.Направление - это точка, скажем, с нулевым значением.Для любой точки сферы вы измеряете угловое расстояние до вектора направления.Вы делите угловое расстояние на частоту и вычисляете грех этого угла.Наконец, вы масштабируете по амплитуде.
Вы можете сделать что-то более изящное, если вы хотите, чтобы ваши базовые функции по-разному изменялись в двух измерениях, но вам понадобится второй параметр направления, чтобы ориентировать проекцию.Вам также нужно будет рассчитать два угловых расстояния.Это может быть излишним, хотя.Если у вас есть набор базовых функций, круговые схемы алгоритма, приведенного выше, могут полностью размыть друг друга, поэтому я сначала попробую простое решение.
Используя эти базовые функции шума Перлина, вы теперь можете оценить своиШум Перлина над сферой как сумма таких.Решите ли вы провести тесселяцию сферы и оценить углы вершин, решать только вам.Вот что я сделаю.