Поворот кривой под прямым углом

#opengl #graphics #3d #line #perspective

#opengl #графика #3D #линия #перспектива

Вопрос:

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

Ответ №1:

Если ваш код ведет себя по-разному, когда вы ближе к нему, чем дальше, это указывает на ошибку кода. Возможно, вы просто думаете, что это «прямой угол», но это не так. Скорее всего, это просто излом, который вы замечаете скорее вблизи, чем издалека. В любом случае это все еще там. Это похоже на любое линейное приближение кривой: издалека это выглядит хорошо. Но вблизи это выглядит так, как есть: приближение.

Если вы хотите плавную интерполяцию, вы должны использовать какую-то кривую сплайна. Или, что еще лучше, планеты должны следовать фактическому эллипсу.

Комментарии:

1. К сожалению, проблема заключается в использовании сплайна catmull roll для генерации точек между контрольными точками, которые точно отображаются с помощью универсальных констант. Кроме того, точки орбиты не пересчитываются каждый кадр, поскольку время не движется.

2. @batterj2: Я полагаю, вы имеете в виду «catmull-rom». С этими сплайнами может быть сложно работать. В них могут быть перегибы, в зависимости от выбранного вами значения для параметров «альфа». Единственное, что я могу предложить, это понизить альфа-значение и посмотреть, поможет ли это.