MALBRED

VVVV - Как проецировать на объемные поверхности

Рекомендованные сообщения


  • Проекция в трех измерениях
  • Проекция на здания и архитектурные сооружения
  • Видео мэппинг
  • Компенсация искажений
  • Дополненная реальность
  • Настройка и калиборовка камер
  • Распознавание объектов

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

  • Введение
  • Проекция на плоскую поверхность
  • Проекция на сложные объемные поверхности
      • Сведение виртуальной и реальной проекции вручную
      • Виртуальная копия реальной сцены
      • Привязываем плоскую текстуру к поверхности
      • Свет и тень
      • Иллюзия объема
      • Ось виртуальной камеры не совпадает с реальным положением проектора
        • Проекция на две стороны здания с одной перспективой
        • Панорамная проекция в 360°
Введение

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

В кино, основанном на компьютерных спецэффектах и графике, термины "совмещение" ("match moving") или "трекинг"("camera tracking") описывают проблему точного совмещения реально отснятых сцен с добавленной позже компьютерной графикой. Для решения таких задач, существует масса специальных программ, например, (boujou, 3d equalizer, ...), все они облегчают жизнь создателям визуальных эффектов.

Для создания дополненной реальности (совмещение транслируемой сцены с компьютерной графикой в реальном времени) используется, например, ARToolKit (в пакете vvvv есть встроенный плагин ARTK+Tracker?. А компании вроде domeprojection предлагают проектора с функцией автокалибровки. Но поскольку в vvvv нет нодов, позволяющих создать что-то вроде этого или даже этого, ручная настройка совмещения проекции со статичными объектами все еще остается актуальным решением.

 

Проекция на плоскую поверхность

Если вы проецируете на плоскую поверхность, например на стену, и проектор расположен под значительным углом относительно стены, вы видите искаженное изображение - трапецию. Используя нод Homography (Transform 2d) вы легко можете корректировать искажение картинки - в результате изображение на поверхности кажется правильным.

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

 

Проекция на сложные объемные поверхности

Сведение виртуальной и реальной проекции вручную.

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

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

projecteddesktop.jpg

Из этих фотографий видно, что ключ к воспирятию неискаженного изображения заключается в следующем:

Проекция на объемные поверхности выглядит правильно (не искаженно) только когда смотришь на нее из точки проекции.

По тому же принципу устроены Растянутая навигация и Объемное оформление интерьеров.

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

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

 

Виртуальная копия реальной сцены

Создание виртуальной копии реальной инсталляции состоит из 3х шагов:

  • определение системы координат для реальных объектов, чтобы совместить их с AxisAndGrid (EX9) в vvvv.
simplesetup.jpg
  • создание 3х мерной модели поверхности для проекции и размещение ее в сцене, в соответствии с выбранной системой координат: 3d модель может быть создана в специальных программах или составлена из примитивов, встроенных в vvvv. Для ручного совмещения 3d модели с реальным объектом лучше всего использовать модуль PointEditor (3D Persistent), который позволяет деформировать отдельные фрагменты моделей.
  • измерение расстояния, угла наклона и характеристик оптики проектора: задайте эти параметры в модуле Projector (EX9). В инструкциях к проекторам есть таблицы, аналогичные приведенной ниже, в которых описаны характеристики оптики: проекционные расстояния и углы смещения объектива.
projectorinfos.jpg

Сейчас у вас уже есть базовый проект для совмещения виртуальной сцены с реальной поверхностью. Потратьте время на настройку параметров модуля Projector (EX9) или вручную настраивайте 3d модель, используя модуль PointEditor (3D Persistent), до тех пор пока не получите подходящее совпадение изображения с реальной поверхностью.

ProjectionMapping_SimpleSetup.v4p

 

Привязываем плоскую текстуру к поверхности

Используя этот простой патч, вы можете повторить эффекты итальянской студии dotdotdot из их проекта Valcucine’s skyscraper. Цель подобных инсталляций - "привязать" проецируемое изображение к поверхности так, чтобы изображение полностью повторяло физические свойства объекта, так как если бы объект был покрыт движущимся изображением или текстурой. В таких случаях текстура смотрится одинаково, независимо от места с которого вы смотрите на объект/скульптуру/поверхность, и независимо от того как установлен проектор.

flattextures.jpg

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

 

Свет и тень

Восприятие любых эффектов света или тени, которые вы применяете к виртуальной модели, напрямую зависит от особенностей того объекта, на который проецируется изображение. Свет и тень в данном случае ведут себя точно так же, как плоские текстуры. Вы можете легко повторить эффекты из инсталляций Lightstrive или Pablo Valbuena Augmented Sculpture Series.

 

Иллюзия объема

Всем нам нравятся инсталляции с иллюзией объема, такие как проекция на The Hague City Hall, AntiVJs проекция на Nuit Blanche Bruxelles или проекции easyweb. Эффекты с иллюзией объема имеют одно важное ограничение, которое вы должны учитывать.

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

3dillusion.jpg

Но это не проблема, в большинстве случаев наши мозги, испорченные кино и телевизором, легко справляются с такими условностями, поскольку мы смотрим на проекцию с довольно большого расстояния, которое компенсирует отклонения от оси проектора. Получается тот же эффект, что и с работами John Beever.

 

Ось виртуальной камеры не совпадает с реальным положением проектора

По ряду причин бывает невозможно совместить положение проектора с положением виртуальной камеры:

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

В таких случаях вам придется дважды обработать картинку (сделать 2 рендера):

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

Примеры:

Проекция на две стороны здания с одной перспективой

Одной из задач этой инсталляции было создать иллюзию объема на фасаде FH Schwäbisch Gmünd.

advancedsetup.jpg

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

Примерно вот так выглядит патч для такой проекции:
ProjectionMapping_2ProjectorSetup.zip

advancedsetup3dillusion.jpg

Иллюстрация показывает, что иллюзия объема работает только при определенном положении зрителей. Другие примеры, рассмотреные на пятидневном семинаре в Schwäbisch Gmünd, можно найти здесь.

Панорамная проекция в 360°

При создании панорамной проекции в 360°, виртуальные камеры должны находиться в одной точке, с разным углом поворота. Вы можете сделать это в виртуальной сцене, но физически не сможете разместить несколько проекторов в одной точке.

Подробный патч для создания панорамной проекции 360°, включая мягкие шторки на проекторах в аттаче

small 360 degree setup.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.