Самодельный фмс

Pa5ha

Короче. Проблема с физикой такого плана. Хочу понять, как летает самолет. Как расчитывать профиля и что значат все эти умные слова во всем этом топике. А сам вопрос заключается в том, что почитать?

toxa
Pa5ha:

Хочу понять, как летает самолет. Как расчитывать профиля и что значат все эти умные слова во всем этом топике. А сам вопрос заключается в том, что почитать?

Для начала учебник по физике и учебник по аэродинамике.

NailMan

Как я и говорил Валентину в приватной беседе, проблема физики заключается не в том как записать известные формулы в виде кода Дельфи, а в том как описать механизм коллизий для виртуальной модели ЛА, точнее как преобразовать воздействующие внешние силы(ветер, тепловые потоки и т.д.), а также всевозможные внутренние силы(подъемная, сопротивления и т.д.) в 6 ускорений(должно быть понятным что в инерциальной системе движения перемещения и вращения должны задаваться не конечными координатами и углами, а ускорениями).

В играх обычно есть только внешние факторы, и как правило это воздействиия при соударениях. Здесь самые сложные и энергоемкие вычисления, так как грубая сферическая модель коллизий(описанная сфера) не даст никакой точности, хотя и очень быстрая по своей проверке и вычисления вектора реакции. Я лично в своем космосиме пробовал усложнить эту модель, описывая сложную форму объектов набором сфер небольшого диаметра, общая форма описывалась довольно точно. Но заткнулся на том как описать механизм точного приложения сил к отдельным сферами и соотвественно получить набор из 6 ускорений(3 линеных и 3 уголовых) чтобы я мог применить их к объекту.
Если в качетве коллизионной модели использовать упрощенную полигональную модель объекта, то усложнится еще на много процесс обсчета.

Пример: у нас есть самолет, он расположен произвольно в небе, но пузом все таки вниз. Скажем делает правый вираж. Ветер каждую секунду немного меняет свой вектор и силу. Нужно вычислить какие ускорения он даст на каждую часть самолета(крыло, фюз, оперение) и по какому вектору, далее на основе полученных точных данных, нужно вычислить результирующие ускорения, кторые мы и применяем к объекту самолета.

Вобщем формулы из книжек дело десятое, нужно продумать процес вычисления и приведения всего этого к понятным OpenGL или DirectX входным данным, а именно линейным и угловым ускорениям в локальной системе координат.

toxa
NailMan:

Пример: у нас есть самолет, он расположен произвольно в небе, но пузом все таки вниз. Скажем делает правый вираж. Ветер каждую секунду немного меняет свой вектор и силу. Нужно вычислить какие ускорения он даст на каждую часть самолета(крыло, фюз, оперение) и по какому вектору, далее на основе полученных точных данных, нужно вычислить результирующие ускорения, кторые мы и применяем к объекту самолета.
Вобщем формулы из книжек дело десятое, нужно продумать процес вычисления и приведения всего этого к понятным OpenGL или DirectX входным данным, а именно линейным и угловым ускорениям в локальной системе координат.

NailMan, ваш подход годится для игры, но не подходит для реализации симулятора. Вы мешаете все в кучу. Коллизии - это своя песня, физическая модель - своя. Грубо говоря, вам не надо считать “столкновение” модели с ветром.

Для начала нужно решить физическую задачу о силах действующих на самолет в полете. Составить систему уравнений с N входными параметрами, которые будут задавать тягу двигателя, крен, тангаж, угол атаки крыла, всевозможные площади… Это будет математическая модель. Далее, в процессе работы симулятора, эта система уравнений постоянно решается, а промужутки времени через которые происходит вычисление замеряются. Знаем силы, знаем массу, знаем сколько прошло времени… Находим расстояние, которое пролетела модель по всем направлениям, а так же на сколько она при этом повернулась по всем осям. Метры переводим в локальные координаты.

После этого вычисляем коллизии с объектами, находящимися в игровом пространстве.

Что такое ветер? Ветер - это движение среды, в которой находится самолет. Точно так же, описание ветра вводится в физическую и математическую модель.

9 months later
Pa5ha

Решил поднять тему ибо решил попотеть над физикой немного. Ибо тему взял, как крусовую. В крайнем случае самолет будет летать “по рельсам”, но хотелось бы…

Начал обдумывать аккумулятор сил. В общем седня сидели на паре с преподавателем и пытались решить следующую задачу:
Допустим у нас в пространстве имеется некое тело. О нем известно: масса, момент инерции, тело в невесомости в вакууме. На тело действует сила. Точка приложения, вектор и величина известны. Требуется найти ускорение центра масс тела и угловое ускорение. С закрепленным телом понятно, а вот со свободным что-то не очень. Кто даст идею - буду очень очень благодарен -)

Pa5ha

Примерное решение нашел.

Интересно, поляры профилей включают все 360 градусов или только какой-то промежуток?

vovic
Pa5ha:

Кто даст идею - буду очень очень благодарен -)

Берете любой учебник по аэродинамике самолета, можно Мхитаряна, можно Остославского - последний даже лучше, ибо написан во времена отсутствия в природе компьютеров. Там приведены готовые уравнения движения тела по поставленной задаче.
Зачем изобретать велосипед?

Pa5ha

Балин, амеры не думают об остальном мире, я понимаю, что у них анлим… Мат модель 7 метров (!). Но все равно спасибо. Завтра из универа скачаю -)

Ну я бы рад такую книжку почитать, но кто мне её даст? Уверен, что не продается в нашей дыре в книжных магазинах, а заказывать как-то зеленый зверь душит -) Вряд ли стоит 100 рублей. Но все равно спасибо -)

13 days later
Pa5ha

Гм, скачал, но матлаба нету и я не знаю что это такое -)

Давеча посмотрел редактор физики Аерофлая делюкс. Что-то не очень там, мне не кажется, что разговоры про точность в полградуса и про то, что если в симуляторе фигуру выучил, то в реале не повторить - не актуальны.

Собсна, есть вопрос. Как работать с полярой профиля? Где взять? Профиль продувается для всех 360 градусов? Как ведет себя при боковом потоке? Ну т.е. если самолет летит боком (или ветер боковой). И вообще как дальше жить?

Pa5ha

Ну я смотрю что-то никому не интересно. Вот скрины хоть посмотрите.

Самолет пока что из rc plane master, площадка из mafia, машина corpse из gta3. На самолете со вчерашнего дня стали отклоняться рули. Скоро будет крутица винт и мотор будет пускать дым -) Собственно, иерархия самолета написана, теперь дело за физикой. Потом коллизийный движок. Графика пока что не очень. После переделки сцены было лень заново задавать материалы, поэтому забор непрозрачный, на машине гипертрофировано отражение ибо надо сделать регулятор отражения или затемнить текстуру (т.к. тип наложения add). Кривая текстура на колесе. Освещение из глаз. Руки ещё не дошли до него. На втором скрине видно солнце и мои опыты с хало, правда на фоне неба они не очень правильно воспринимаются.

Планируется создание моделей с овт. Текущая иерархия это позволяет. Ну и чтоб летать было не скучно различные контесты. Типа бомбометания, прохождение контрольных точек. Воздушный бой. А то скоро соревнование, а тренироваться не на чем. Самолет достраивается а в симуляторах такого нету.

С физикой более менее разобрался. Посчитать все силы могу. Но с аэродинамикой пока есть некоторые затруднения. Прошу помощи.

Если кто-то может выделить пару минут в день отвечать на мои вопросы по аське относительно аэродинамики, то буду премного благодарен. Впишу Ваше имя в кредитс -)

17 days later
Pa5ha

В RCFSim601 есть поляры только формат файла не понятен. Может кто подмогнет? Исходников бы этого симулятора. Физика в нем мне очень нравится. С автором пытался связаться, но он не часто видима почта проверяет.