Проблемы отображения кубических карт на сфере - PullRequest
1 голос
/ 03 ноября 2010

Я сейчас пытаюсь создать процедурный инструмент для генерации планет.Я начал с отображения куба на сферу примерно так:

alt text

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

Я пытался получить значение perlin для координат до того, как они были сопоставлены с сферой и после, но я не могу привести ребра в соответствие:

alt text

В данный момент я создаю геометрию в диапазоне от -0,8 до +0,8, а затем добавляю 0,2 * процент карты высот.

Либо я неправильно использую данные карты высот, либо карты высот не правильно ориентированы (подозреваю,немного и того и другого).

1 Ответ

2 голосов
/ 05 ноября 2010

Я нашел проблему.Нарисуйте куб от -1 до 1, отобразите его на сферу, а затем, когда она станет сферой, умножьте каждую координату на 1 + (процент * значение карты высот), например, если вы хотите, чтобы карта высот добавлялась или убиралась до20% сферы:

x *= 1 + ( 0.2 * heightmapValue);
y *= 1 + ( 0.2 * heightmapValue);
z *= 1 + ( 0.2 * heightmapValue);

выглядит примерно так:

cube

...