Интернет магазин китайских планшетных компьютеров



Компьютеры - VirtualGL - Решения VirtualGL

10 июня 2011


Оглавление:
1. VirtualGL
2. Решения VirtualGL
3. Коммерческие продукты использующие VirtualGL



VirtualGL использует «GLX forking», чтобы вынести OpenGL рендеринг на сервер приложений. Unix и Linux OpenGL приложения, как правило, отправляют оба типа команд GLX X11 и простые команды на X дисплей. GLX команды используются для связывания контекста рендеринга OpenGL с контекстм для конкретного X Window, получения списка цветовых форматов, которые поддерживает X дисплей и т. д. VirtualGL использует расширенные функции в Unix и Linux, что позволяет подгрузить «предварительные» библиотеки в приложение для эффективного перехвата определенных функций, которое требует приложение, и как правило, вынесено в разделяемые библиотеки, с которым она связана. После того как VirtualGL подключается к Unix или Linux OpenGL приложению, он перехватывает вызовы функции GLX от приложений и переписывает их таким образом, что соответствующие GLX команды отправляются X дисплеем на сервер приложений, который предположительно имеет аппаратный 3D ускоритель. Таким образом, VirtualGL предотвращает отправку GLX команд по сети к пользователю X дисплея или на виртуальный X дисплей, как, например, VNC, которые не поддерживают GLX. В процессе переписывания GLX запроса, VirtualGL также перенаправляет OpenGL рендеринг во вне экранные буфера пикселов Между тем, остальные функции вызываемые из приложений, в том числе обычные X11 команды использующиеся для разработки пользовательского интерфейса приложений, проходят через VirtualGL без изменений.

Встроенный внутрь VirtualGL движок также поддерживает карты окна для Pbuffers, связку визуальных атрибутов между назначенным X дисплеем и X дисплеем на котором будет происходить 3D-рендеринг, а также выполняет ряд других функций хэширования чтобы обеспечить ровные GLX перенаправления. Но по существу, после того как OpenGL контекст устанавливается в X дисплей и на сервер приложений, VirtualGL получает способ который позволяет обеспечить беспрепятственный проход всех последующих команд OpenGL с сервера приложений в 3D оборудование. Таким образом, приложение может автоматически использовать любые функции OpenGL и расширений поддерживающиеся оборудованием сервера и драйверами.

Помимо marshaling GLX команд и управления ими Pbuffers, VirtualGL также читает назад созданные пикселы в соответствующее время или glFinish), а затем занимается отрисовкой пикселов в приложения X Window с использованием стандартных команд отрисовки X изображения. С помощью VirtualGL осуществляется перенаправление GLX команд от назначенного Х дисплея, он может быть использован, чтобы добавить поддержку 3D ускорения для X прокси, а также для предотвращения косвенного OpenGL рендеринга при использовании удаленного X дисплея.


Использование VirtualGL во взаимодействии с VNC или иной X-прокси позволяет нескольким пользователям одновременно запускать 3D приложения на одном сервере приложений и многочисленными клиентами для обмена каждой сессии. Вместе с тем, VNC и подобные программы для обработки 2D приложений с большим областям сплошного цвета, несколькими цветами, и небольшим областях, а 3D приложения, с другой стороны, генерируют изображения с высоким разрешением, сложными цветовыми моделями и гораздо с меньшей корреляцией между последующими кадрами. Работа в основном с той же рабочей нагрузкой, используя вынесение изображений с OpenGL приложений в среде X Window, таких как видеоплеер, с помощью готовых программных тонких клиентов, как правило, тоже не хватает достаточно быстрого изображения кодеком чтобы иметь возможность обрабатывать интерактивные кадры.

VirtualGL решает эти проблемы двумя способами:

  1. TurboVNC
  2. Транспорт для VGL изображений

TurboVNC

TurboVNC — ответвление TightVNC, который ускоряет Tight и JPEG кодирование путей последнего, частично используя в своих интересах надстроенные мультимедиа примитивы от Intel и Sun microsystems. На 100 Мбит/с Ethernet сети, TurboVNC способен отображать полноэкранное изображения с перцепционно качеством изображения без потерь со скоростью более чем 20 кадров/секунд. TurboVNC включает дальнейшую оптимизацию, которая позволяет ему отображать полноэкранные изображения в 7-10 кадрах/секундах по каналам широкополосной передаче, со значимой но пригодной для использования потерей качества изображения. TurboVNC также расширяет TightVNC, чтобы включать сторону клиента двойная буферизация и оптимизированные наборы из двух предметов для Solaris. TurboVNC и VirtualGL используются Texas Академический Вычислительный центр в UT, чтобы позволить пользователям TeraGrid дистанционно обращаться к трехмерным возможностям рендеринга Maverick terascale суперкомпьютер визуализации.

VGL Image Transport)

Используя VGL Image Transport, VirtualGL сжимает выполненные трехмерные изображения в процессе, используя оптимизированный кодер-декодер того же самого JPEG это использование TurboVNC. VirtualGL тогда посылает сжатые изображения по специализированному протоколу TCP к Приложению-клиенту VirtualGL, работающему на клиентской машине. Клиент VirtualGL ответственен за то, что распаковал изображения и вовлек пиксели в соответствующее X окон. Тем временем, элементы неспецификации OpenGL дисплея приложения посылают по сети, используя стандартный отдаленный протокол X11 и выполнены на клиентской машине.

Этот подход требует, чтобы X дисплеев присутствовали на клиентской машине, и уверенность относительно отдаленного протокола X11 для того, чтобы выполнить 2-ой рендеринг означает, что много приложений выступят плохо, используя VGL Image Transport на сетях высокого времени ожидания. Дополнительно, VGL Image Transport неотъемлемо не поддерживает сотрудничество, так как изображения помещаются в машин пользователей вместо того, чтобы быть перемещенным. Но использование VGL Image Transport действительно обеспечивает прикладной опыт полностью без шва, посредством чего каждое окно приложения соответствует единственному настольному окну. Транспорт Изображения VGL также уменьшает сервер центральный процессор загрузка, так как 2-й рендеринг происходит на клиенте, и VGL Image Transport позволяет использовать продвинутые особенности спецификации OpenGL, такие как буферизированный quad-buffered стерео.

Разработчики VirtualGL представляют первичных пользователей VGL Image Transport как пользователей ноутбука с 802.11 г беспроводным или быстрым подключением к сети стандарта Ethernet с сервером приложений.



Просмотров: 2931


<<< OpenGL ES
WebGL >>>