» Как проецировать на объемные поверхности
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

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

English | French | Italian

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.
Эта страница посвящена решению проблем, связанных с проекцией на объемные поверхности, самым простым способом. Ключевые моменты:

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ProjectionMapping_SimpleSetup.v4p (27.74 Kb)

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

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

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

Свет и тень

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

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

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

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

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

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

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

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

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

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

Примеры:

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

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

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

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

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

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

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

Подробный патч для создания панорамной проекции 360°, включая мягкие шторки на проекторах, качайте здесь:
small 360 degree setup.zip (35.95 Kb)

anonymous user login

Shoutbox

~11h ago

tonfilm: to whom it may concern: 64-bit #vvvv #alpha builds are up an running again: downloads/alphas

~2d ago

StiX: @synth you sauin something about 420? if mangosh gets confirmed i am coming with him as we are in one ... package

~2d ago

synth: @evvvvil here only to do lasers, they don't let me near the screens after last time ...

~2d ago

evvvvil: hahaha yes, please sir, can I have some more sir? Hopefully me and you be battling for visual space soon, GTFOH with your lasers.

~2d ago

synth: BTW - Got 4 20w Kvant lasers here thinking of testing the ILDA nodes live :)

~2d ago

synth: @evvvvil Hell yeah! Couldn't get Vux drunk but your going to get it :D

~2d ago

evvvvil: @synth: hopefully I should be going to GEM FEST soon, not confirmed yet, but if so, beer is on you why not ;) (and me ok)

~3d ago

synth: BTW any vvvv guy coming to Georgia for GEM Festival shout out I am here for the entire thing alone. Some beer on me ;)