СЕТЕВАЯ
МОДЕЛЬ ВОСПРОИЗВЕДЕНИЯ ГРУППОВОГО ПОЛЁТА НАД МЕСТНОСТЬЮ
В. Ю. Харитонов
(Москва, Московский энергетический институт (ТУ),
Российская Федерация)
В
последнее время всё более актуальной становится проблема разработки
компьютерных систем подготовки пилотов. Создание таких систем позволит
сэкономить огромные средства, затрачиваемые на эксплуатацию реальной
авиатехники. При этом системы должны полностью имитировать процесс полёта,
создавая у пилота полную иллюзию того, что он находится за штурвалом настоящего
самолёта.
Интерес
исследователей к таким системам постоянно растёт. С ростом возможностей
современной вычислительной техники появляется большое количество новых
разработок и решений [1 – 2], в которых достигается все больший уровень
реализма в процессе имитации полёта.
Важной
проблемой в настоящее время является создание программного обеспечения,
позволяющего нескольким пилотам проводить групповой полёт, взаимодействуя друг
с другом в реальном масштабе времени (т.е. синхронно получать информацию о
взаимоположении в пространстве и т.п.). При этом сами пилоты могут находиться
географически в разных местах. Такое программное обеспечение позволит
достигнуть ещё большего реализма, предоставив пилотам возможность
отрабатывать совместные воздушные манёвры. В данной статье предлагается
один из возможных подходов к решению проблемы реализации
группового полёта.
В процессе
организации совместного полёта нескольких пилотов необходимо
решить множество проблем,
связанных как с реализацией самого процесса воспроизведения полёта над местностью, так и с обеспечением
взаимодействия нескольких пилотов во время группового полёта. Все эти проблемы должны решаться в режиме реального времени.
Для
реализации воспроизведения полёта
над местностью, в первую очередь, должна быть построена модель реального мира с
определённой степенью детализации,
включающая такие основные элементы как рельеф местности, наземные сооружения, модели летательных аппаратов и
другие объекты. Также должно быть реализовано виртуальное управление летательным
аппаратом пилота и его движение в моделируемом мире.
Для
обеспечения взаимодействия пилотов между ними необходимо организовать обмен
данными. Обмен данными должен осуществляться по сети. При этом между пилотами
должно быть установлено надежное соединение с гарантированной доставкой данных.
В
разработанной сетевой модели воспроизведения группового полёта над
местностью реализована архитектура «клиент-сервер», которая включает
один сервер и множество клиентов. Обмен данными между сервером и
клиентами ведётся по протоколу TCP с применением механизма
сокетов, что обеспечивает надёжную доставку данных.
Приложение-сервер не несет каких-либо функций по обработке трехмерной графики, а обеспечивает сетевое взаимодействие и синхронизацию нескольких клиентов.
Функции приложения-сервера:
·
приём от всех клиентов текущих координат их летательных аппаратов;
·
хранение координат всех клиентов;
·
рассылка принятых от каждого клиента координат другим клиентам;
·
динамическое подключение и отсоединение клиентов в
процессе их взаимодействия.
Под словом «координаты»
понимаются не только данные, характеризующие положение объекта в пространстве,
но также его скорость и направление движения.
На рисунке
1 приведена схема взаимодействия многих клиентов с сервером. При подключении
нового клиента сервер создаёт независимую программную нить (thread) для его обслуживания, что
позволяет работать с новым клиентом независимо от остальных клиентов. Каждая
независимая нить осуществляет прием координат от назначенного ей
клиента (фаза AB), обрабатывает их (фаза BC) и ретранслирует другим клиентам (фаза CD).
Приложение-клиент
выполняет как графические, так и сетевые задачи.
Функции приложения-клиента:
·
подготовка и визуализация
модели виртуального мира: создание трёхмерного ландшафта на основе карт высот,
загрузка моделей наземных сооружений и летательных аппаратов, текстурирование
всех объектов и расчет освещения, отображение небосвода;
·
ускорение процесса
визуализации за счёт применения технологий Rottger ROAM и Frustum Culling [3], которые
позволяют сокращать
общее число отображаемых треугольников (полигонов) в сцене, без заметного
проигрыша в качестве;
·
поддержка функции
управления летательным аппаратом в процессе движения в виртуальном мире (регулировка
скорости, высоты полёта, осуществление поворотов в различных плоскостях);
·
установка соединения с
сервером по протоколу TCP с использованием механизма сокетов;
·
передача серверу координат
летательного аппарата (на рисунке 1 моменты отправки координат обозначены tКЛ1, …, tКЛN), управляемого данных клиентом, приём
от сервера такой же информации о летательных аппаратах, управляемых удалёнными
клиентами;
·
по принятым координатам
отображение в реальном масштабе времени летательных аппаратов, управляемых
удалёнными клиентами, с учётом любых изменений их
местоположений.
В процессе визуализации
приложение-клиент формирует последовательность изображений (кадров) (с частотой не
ниже чем 60 кадров в секунду), отражающих текущее состояние виртуального мира, при
этом заново
пересчитываются положения всех объектов. Визуализация полностью
ведётся аппаратными средствами клиента.
Трёхмерный ландшафт моделируется на основе карт высот, где каждой точке с координатами xi,yi соответствует высота zi ландшафта в этой точке. В качестве карт высот используются 8-битные графические файлы.
Загрузка
моделей наземных сооружений и летательных аппаратов осуществляется из файлов
формата 3DS, который
является одним из наиболее распространённых форматов для хранения трёхмерных
моделей объектов.
В разработанной сетевой модели важным показателем является синхронность процесса обмена координатами между клиентами. В качестве показателя синхронности можно использовать время tкл-кл прохождения первой посылки от одного клиента к другому через сервер: чем быстрее координаты от одного пилота доходят до другого, тем выше реакция этого пилота на действия другого. Оценка времени tкл-кл может быть произведена по формуле (каждый клиент имеет собственный дуплексный канал):
, (1)
где V/C — время передачи посылки клиента объёмом V (в
байтах) со скоростью C (в байт/с), tЛ — латентность (задержка при
передаче по физической среде), n∙tОбр.С. — суммарное время обработки сервером посылок от n
клиентов (в наихудшем случае, когда все посылки обрабатываются последовательно).
Для того чтобы пилот, управляющий своим летательным аппаратом, мог оперативно реагировать на действия других пилотов, время tкл-кл не должно превышать определённого максимального значения. Отсюда из (1) можно найти максимальное число клиентов, которое может быть одновременно подключено к серверу.
В предложенной сетевой модели заложены базовые механизмы, необходимые для реализации воспроизведения группового полёта над местностью. Были разработаны как графический «движок» (engine), отвечающий непосредственно за имитацию полёта отдельного пилота, так и принципы взаимодействия нескольких пилотов в процессе их группового полёта.
Проведённые эксперименты подтверждают работоспособность
разработанной программной модели. На рисунке 2 показан экран с видом «из
кабины пилота».
Созданная модель обладает хорошей масштабируемостью. Существует возможность совершенствовать как графическую, так и сетевую её части, повышая реализм полёта. Например, в модель можно добавить анализ столкновений, которые могут возникать между пилотами, также можно улучшить физические параметры модели, усложнив и ещё более приблизив к реальному управление и поведение летательных аппаратов.
ЛИТЕРАТУРА
1. Михайлюк М.В., Решетников В.Н. Визуализация ландшафтов большой протяженности в системах виртуальной реальности. — М., 1999.
2. Кузнецов А.Ю. Особенности организации распределённой компьютерной системы визуализации трёхмерных сцен авиатренажёра. Электронный журнал ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ. Теория и практика. 2003 г, номер 1(3), раздел 16. http://network-journal.mpei.ac.ru.
3. Яценко Б. Рендеринг ландшафта с использованием Rottger ROAM технологии. /Пер. с англ.: статья, источник в Интернете — http://gamemaker.webservis.ru, 2003.