На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Синтез фотореалистичных трехмерных изображений в современных системах презентаций

Статья опубликована в выпуске журнала № 3 за 2007 год.
Аннотация:
Abstract:
Авторы: Андреев С.В. (esa@gin.keldysh.ru) - Институт прикладной математики им. М.В. Келдыша РАН (научный сотрудник), Москва, Россия, Галактионов В.А. (voloboy@gin.keldysh.ru) - Институт прикладной математики им. М.В. Келдыша РАН, доктор физико-математических наук, Денисов Е.Ю. () - , Кирилов Н.Е. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 11424
Версия для печати
Выпуск в формате PDF (2.31Мб)

Размер шрифта:       Шрифт:

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

Одним из примеров презентационной системы является комплекс Terminal V, находящийся в Австрии (см.: http://www.terminalv.at). Различные компании арендуют комплекс для проведения своих презентаций, конференций, демонстраций собственных разработок. Комплекс представляет собой демонстрационный зал со зрительными местами, обращенными к трем соединенным экранам, стоящим под углом в 120 градусов – фронтальному, левому и правому (см. рис.).

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

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

По заказу одной из австрийских компаний разрабатывалось программное обеспечение, предназначенное для проведения демонстраций продукции в режиме реального времени в демонстрационном зале Terminal V. При разработке программного обеспечения возникли специфические проблемы: разделение стереокадра на три составляющие и синхронизация вывода изображения. Решение первой проблемы очевидно, рассмотрим специфику второй.

Известно, что при генерации кадра системами, работающими в режиме реального времени, используется система с двойной буферизацией, когда расчет и отображение каждого последующего кадра происходит в так называемом «заднем буфере», не видимом на экране. Таким образом, зритель не наблюдает промежуточных состояний неоконченного расчета и отображения кадра. И только когда кадр полностью рассчитан, происходит практически мгновенный обмен буферов и содержимое заднего буфера выдается на экран, тем временем система начинает расчет следующего кадра и так далее.

Подпись:  
Техническая схема трех экранов Terminal V
(вид сверху)
 В случае расчета частей одного и того же кадра несколькими компьютерами возникает проблема синхронизации процесса обмена буферов. Время расчета части кадра напрямую зависит от сложности участка сцены, попавшего в эту часть. Естественно, какому-то из компьютеров достанется более сложный для расчетов участок, и он потратит на расчет своего участка большее время, чем другие. В общем случае все компьютеры закончат расчет своих участков кадра в разное время. И если не производить контроль обмена буферов для всей системы, получится хаотически рассогласованная картина смены кадров правого, фронтального и левого экранов, причем несогласованность возрастет, учитывая наличие стереоканалов (правый/левый на каждый экран).

Существуют два пути решения проблемы генерации результирующего стереокадра в комплексе Terminal V – аппаратный и программный.

Аппаратное решение. Компанией nVidia разработано семейство видеокарт Quadro G-Sync (см.: http:// www.  nvidia.ru/page/quadrofx_gsync.html).

NVIDIA Quadro G-Sync является дополнительной видеокартой, которая предоставляет функциональность Framelock/Genlock, синхронизацию вывода изображения из буфера кадров с частотой обновления, обеспечивая высокие уровни реалистичности, визуализации и совместных возможностей.

Однако есть довольно существенный недостаток такого решения – высокая стоимость продуктов линии G-Sync. Например, стоимость только одной видеокарты G-Sync достигает в среднем 4-5 тысяч долларов, а их в данной системе необходимо семь.

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

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

Как только мастер-компьютер получит сигнал, что все части кадра рассчитаны, он выдает команду всем серверам об обмене буферов, результирующий стереокадр появляется без рассогласования сразу на трех экранах.

Весь обмен информацией (данные, синхронизация) происходит через локальную сеть по стандартным протоколам обмена.

Такой подход удешевляет систему, позволяя отказаться от дорогостоящего дополнительного оборудования класса high-end, и, соответственно, увеличивает области применения данного решения.

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

В нашем случае в качестве такой основы был взят разработанный в отделе машинной графики института прикладной математики им. М.В. Келдыша РАН программный комплекс FLY (см.: A. Ignatenko, B. Barladian, K. Dmitriev, S. Ershov, V. Galaktionov, I. Valiev, A. Voloboy. A Real-Time 3D Rendering System with BRDF Materials and Natural Lighting. Proc. GraphiCon-2004. Moscow. 2004), позволяющий отображать сцены со сложной геометрией, оптически сложными материалами и разнообразными источниками освещения, включая дневной свет. Комплекс FLY поддерживает специфические для OpenGL атрибуты материалов сцены, необходимые для интерактивного показа в режиме реального времени (используя аппаратное ускорение), кроме того, он оснащен модулем трассировки лучей для генерации фотореалистичных изображений.

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

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

Особенности решения проблемы таковы:

-    поскольку в общем случае серверы могут быть оснащены различными видеокартами, необходим механизм адаптации мастер-компьютера к возможным различиям видеосистем серверных компьютеров (разрешение, частота, глубина цвета и т.д.) для обеспечения работоспособности системы в целом;

-    мастер-компьютер должен обеспечить отображение полного набора элементов управления, позволяющих оператору производить манипуляции как с объектами сцены, так и с камерой, что необходимо для интерактивности процесса презентации; серверы, напротив, должны показывать только результирующее изображение без элементов управления, которые в этом случае являются лишними;

-    необходимо обеспечить самовосстановление системы визуализации после сбоев сети и/или серверов без полного ее перезапуска.

После загрузки сцены мастер-компьютер передает каждому серверу эту сцену со всеми атрибутами (текстура, свойства поверхностей, источники освещения и т.д.), так что каждый сервер имеет полную копию сцены и способен ее обсчитывать независимо от других. Передача сцены новому серверу происходит после изменения списка серверов (в случае добавления сервера).

Затем для визуализации каждого кадра выполняются три основных этапа.

1. Мастер-компьютер передает каждому серверу новые параметры камеры – ее координаты, координаты точки назначения, угол поля зрения. Эти параметры могут быть либо рассчитаны мастер-компьютером как результат воздействия оператора на координатное устройство ввода, или вычислены автоматически как результат движения камеры по заранее заданной траектории.

2. Каждый сервер рассчитывает следующий кадр, соответствующий индивидуальным параметрам камеры, в заднем буфере и по окончании расчета информирует мастера о готовности кадра.

3. По получении сигнала готовности от всех серверов мастер выдает им всем синхронную команду на отображение готового кадра.

При тестировании выяснилось, что при использовании стандартного для Windows протокола обмена RPC, используемого в 100-мегабитной сети TCP/IP, слишком велики задержки в передаче команд и данных, обусловленные стандартом и особенностями протокола TCP/IP. Так, максимальная скорость для двух серверов (то есть при использовании только стереорежима) составила 10 кадров в секунду, что недопустимо мало для обеспечения гладкого воспроизведения. Кроме того, эта скорость падает еще больше с увеличением числа серверов. Проблему можно было бы решить, перейдя на более скоростную версию протокола TCP/IP (1 гигабайт в секунду), однако был выбран другой путь – организация обмена командами для высокоскоростной синхронизации серверов на основе протокола UDP, используемого в той же 100-мегабитной сети TCP/IP. Недостатками UDP по сравнению с TCP/IP (отсутствие подтверждения приема данных, то есть возможная потеря пакетов) можно пренебречь при условии работы в локальной сети, где потери пакетов минимальны.

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

На втором этапе выбираются параметры стереоизображения.

Пользователь (оператор) указывает соответствие серверов каналам (то есть какой сервер будет производить расчет кадра для левого глаза, а какой для правого). Задается разрешение и частота обновления экрана для каждого сервера (предварительно мастер-компьютер запрашивает серверы обо всех возможных разрешениях и частотах, и указанные параметры выбираются пользователем из списка, что позволяет исключить проблемы, связанные с указанием заведомо не поддерживаемого разрешения). Здесь же указывается величина стереобазы, иначе говоря, расстояние между виртуальными глазами, в качестве которых выступают камеры. После завершения процесса настройки серверов все изменения в сцене, производимые на мастер-компьютере, синхронно рассчитываются и отображаются на экранах, связанных с серверными компьютерами.

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

Для достижения этой цели было разработано и воплощено программное решение, позволяющее осуществить требуемую демонстрацию на оборудовании, штатно входящем в комплект презентационного комплекса.

Система была успешно опробована на оборудовании комплекса Terminal V.

Работа была частично поддержана компанией INTEGRA Inc. (Япония).


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=333
Версия для печати
Выпуск в формате PDF (2.31Мб)
Статья опубликована в выпуске журнала № 3 за 2007 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: