BC/NW 2006, №1, (8) : 15.7
ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ВИЗУАЛИЗАЦИИ ТРЕХМЕРНЫХ СЦЕН
И.И. Дзегелёнок, Д.А. Орлов
(Москва, Московский энергетический
институт (технический университет), Россия)
Задача
динамической визуализации трёхмерных сцен – обеспечить построение реалистичного
изображения с частотой обновления не ниже заданной. Подобное требуется,
например, для авиатренажёров. Их применение в процессе обучения персонала
позволяет сэкономить средства, затрачиваемые на эксплуатацию реальных самолётов
и обеспечить большую безопасность. Для эффективной работы необходимо создать
иллюзию нахождения пилота за штурвалом реального самолёта. Это достигается
получением высоко реалистичного изображения вида, открывающегося из кабины
самолёта, и обеспечением быстрой смены кадров (для авиатренажёров рекомендовано
значение 60 кадров в секунду).
Решение подобной задачи выдвигает высокие требования к
аппаратуре, которым не удовлетворяют большинство широко доступных компьютеров,
даже при использовании оптимизированных алгоритмов визуализации. В таких
случаях необходимо применение параллельной визуализации. Для этого можно либо
использовать дорогостоящие аппаратные средства, либо распределённые системы
визуализации трёхмерных сцен на базе мультикомпьютерной сети, которые реализуются
на обычных компьютерах, что позволит сделать систему более дешёвой и доступной
для широкого пользователя [1,2]. В данной работе предлагается экспериментальная
реализация подобной системы. Для неё был разработан алгоритм параллельной
визуализации.
Программно данная система реализована в виде двух
приложений. Ведущее приложение (сервер) осуществляет хранение трёхмерной сцены
и передачу её подключившимся клиентам, приём координат от пользователя и выдачу
клиентам задания на визуализацию, то есть передачу сообщения с координатами и
номером части изображения, которую необходимо нарисовать. В данной работе
трёхмерная сцена представляет собой ландшафт с расположенными на нём объектами.
Для каждого подключившегося клиента создаётся нить, которая осуществляет обмен
данными с ним. Ведущее приложение запускается на одном компьютере. Ведомое
приложение (клиент) запускается на остальных компьютерах. Оно выполняет задание
сервера и отправляет ему визуализированную часть изображения.
Для визуализации своей
части изображения клиент использует библиотеку OpenGL, которая позволяет использовать возможности различных
видеоускорителей. Приём данных от сервера реализован в виде отдельной нити
клиентского приложения.
Проведена теоретическая
оценка зависимости времени визуализации одного кадра от параметров системы.
Установлено, что «слабым звеном» в данной системе является коммуникационная
среда. Экспериментально получена зависимость количества кадров в секунду от
количества клиентов в системе [3]. Максимальный коэффициент ускорения,
полученный в данном эксперименте, составил 1,66 при использовании четырёх
клиентов.
Таким образом, была
подтверждена работоспособность созданного алгоритма. Дальнейшее развитие
созданной системы позволит создать реалистичную модель полёта летательного
аппарата. Для этого необходимо усовершенствовать алгоритм визуализации (с целью
повышения реалистичности изображения) и разработать математическую модель
динамики полёта.
Литература
1. Steven
Molnar, John Eyles and John Poulton,
«PixelFlow: High-speed Rendering using Image
Composition», Computer Graphics (SIGGRAPH `92 Proceedings), vol. 26, 1992, pp.
231-240.
2. Кузнецов А.Ю. «Особенности
организации распределённой компьютерной системы визуализации трёхмерных сцен
авиатренажёра», электронный журнал «Вычислительные сети. Теория и практика»,
2003 №1(3).
3. Орлов Д.А. «Распараллеливание
процесса динамической визуализации трёхмерных сцен», Труды международной
технической конференции «Информационные средства и технологии». Москва,
МЭИ,18-20 октября 2005г.,в 3-х т.т. Т3.-М.:Янус-К, 2005.-с.116-119.