Оригинал статьи под авторством Dr. Michael S. Brown.

Обзор

Этот проект обеспечивает вас инструментами и техниками которые требуются для создания доступного и гибкого собственного масштабного мультипроекторного дисплея. Он показывает шаги которые надо предпринять и моменты которые стоит учитывать для достижения геометрической центровки,  цветовой целостности и еще систему рендеринга используя РС кластеры. Он также обеспечивает необходимые коды для простого распределения калибровки и система рендеринга дисплея для изображений/3D-моделей.

Кому следует использовать этот код

Новичкам, кто хочет построить свою собственную систему дисплея для камеры-проектора; они могут использовать этот код как начальную отправную точку
Ученым которые заинтересованы в системе дисплея для камеры-проектора; они могут использовать этот код в качестве cсылки.

Архитектура системы

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

Изображение Архитектуры Системы
Схема 1. архитектура системы нашего мультипроекторного дисплея созданного на основе PC кластера.

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

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

Вы можете найти больше информации о геометрической центровке из Главы 3 ссылки [1], про цветовую целостность из Главы 4 ссылки [1], про рендеринг на основе PC-Кластера из Главы 5 ссылки [1]. Очень рекомендуем вам тщательно изучить всю книгу перед началом работы над своим мультипроекторным дисплеем. 

Требования к аппаратуре и программному обеспечению 

Для того чтобы использовать указанные коды вам надо обеспечить такие требования к аппаратуре и программному обеспечению:

Требования к аппаратуре:

Один PC с мониторами, в качестве главного PC;
два или больше PC с соответствующими графическими картами (мы используем NVIDIA GeForce 8800GTS), в качестве рендеринговых PC;
Два или более проектора (один на каждый рендеринговый PC);
Один хаб или роутер и сетевые кабели;
Одна OpenCV-совместимая камера с подходящими линзами  (смотрите see FAQ для более подробной информации о том как выбрать камеру и линзы.);

Требования к программному обеспечению:

Windows XP установленный на всех PC;

(Ниже указаны дополнительные программы которые надо установить в случае если вы хотите скомпилировать исходные коды сами)
Microsoft Visual Studio 2005 или версия новее;
OpenCV library 1.0 (из ссылки [2]) installed;
GLUT library 3.7 (из ссылки [3]) installed;
FreeImage Algorithms (из ссылки [4]) installed;

Ссылки

[1] «практический мультипроектный Дизайн Дисплея», Majumder/Brown, AK Peters, США, 2007
[2] Open Computer Vision Library, 1.0: http://sourceforge.net/projects/opencvlibrary/
[3] GLUT — The OpenGL Utility Toolkit, 3.7: http://www.opengl.org/resources/libraries/glut/
[4] FreeImage Algorithms Library: https://code.launchpad.net/~glennpierce/+junk/main