Я пытаюсь сделать четырехугольную сферу на основе статьи , которая показывает результаты, подобные этим:
Я могу сгенерировать куб правильно:
Но когда я конвертирую все точки по этой формуле (со страницы, указанной выше):
x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0));
y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0));
z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0));
Моя сфера выглядит так:
Как вы можете видеть, края куба все еще высовываются слишком далеко. Куб варьируется от -1
до +1
по всем осям, как говорится в статье.
Есть идеи, что не так?
1
Ваша реализация также содержит проблему "x = x ..." или это только здесь?
—
snake5
Фантастические наглядные пособия. Спасибо за включение тех.
—
Doppelgreener
Чтобы ответить на вопрос в заголовке, вы можете просто нормализовать вершины куба, чтобы сделать его сферой. Распределение вершин, вероятно, будет отличаться от связанного метода.
—
msell
Связанные: gamedev.stackexchange.com/questions/7189/…
—
MichaelHouse