СПОСОБ ПРОЕЦИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ПОВЕРХНОСТИ РЕАЛЬНЫХ ОБЪЕКТОВ
METHOD OF PROJECTING IMAGE ON SURFACES OF REAL OBJECTS

Изобретение относится к способам проецирования изображений на поверхности реальных объектов (зданий, сооружений, архитектурных форм, предметов интерьера и т.д.) и может быть использовано для художественных, демонстрационных, рекламных целей или с целью обучения.
Визуальная информация составляет большую долю всей информации о внешнем мире, которую получает человек. Наблюдение за окружающими объектами (ландшафтом, строениями, механизмами, другими людьми), их размерами и видимыми свойствами, расстоянием до них, их поведением (передвижением, изменением формы, цвета и размера и т.д.) позволяет человеку ориентироваться в среде и совершать необходимые поступки.
Одна из основных целей искусства и художественной деятельности человека - создание новых впечатлений о внешнем мире, как реальном, так и иллюзорном (существующим только в воображении человека). В частности, это включает в себя изменение существующих представлений об окружающих объектах и их свойствах. Визуальная информация и здесь играет ключевую роль - оформление предметов (машин, зданий, приборов, элементов интерьера) с помощью их окраски или придания им сложной формы является неотъемлемой частью практически любой промышленной деятельности.
Один из самых распространенных и эффективных методов для создания визуального изображения на любой поверхности - видеопроекция. Обычные видеопроекции применяются для демонстрации изображений, никак не связанных со средой проецирования: кинофильмы в кинотеатре, декоративная подсветка интерьера и пр. Изображение при этом вписывается в необходимый размер посредством регулировки видеопроектора (весьма ограниченных по количеству и варьируемости параметров). Некоторые модели проекторов (например, Christie, Barco) и специальное ПО (Catalyst, Watchout) предусматривают возможность искажения проецируемого изображения для более точного наложения его на поверхность, служащую экраном. Однако во всех этих случаях речь идет о двумерной деформации поверхности проекции, в то время как для корректного наложения с учетом перспективы требуется манипулирование тремя координатами.
Например, требуется спроецировать фронтальное изображение на здание под углом. Очевидно, что у ближней к проектору части стены угловой размер будет больше, чем у дальней, то есть на дальней стороне изображение выйдет за пределы стены. На первый взгляд, компенсировать такое искажение можно обычной настройкой трапеции (keystone), имеющейся почти в каждом проекторе, сдвигая координаты дальних углов по осям Х и Y, лежащим в плоскости проекции (фиг.1). Однако на самом деле для корректного построения картины теней от расположенных в пространстве источников света нужно сдвигать эти точки по оси Z (удаление от проектора, фиг 2.), что невозможно в рамках вышеописанного подхода.
Из уровня техники известен способ проецирования изображения на поверхности реальных объектов, включающий расстановку проекторов и перенос изображения из проекторов на поверхность реального объекта, при этом осуществляют корректировку проецируемых изображений с учетом расположения проекторов и неровностей поверхности реального объекта (DE 102005034990 А1, 28.09.2006). Недостатком такого способа является недостаточная реалистичность получаемого изображения.
Задачей заявленного изобретения является создание способа проецирования изображений на поверхности реальных объектов с привязкой изображения к деталям и элементам этих поверхностей в реальном времени и с возможностью интерактивного управления изображением.
Технический результат заявленного изобретения заключается в создании реалистичного изображения трехмерных объектов с корректной перспективой и картиной теней, а также в возможности корректного визуального совмещения проецируемого изображения и реальных объектов, на поверхности которых это изображение проецируется, учитывая положение зрителей и проекторов.
Технический результат достигается за счет того, что способ проецирования изображения на поверхности реальных объектов включает измерение и/или съемку и/или лазерное сканирование реальных объектов, на которые будет осуществляться проецирование изображения, расчет положения проекторов, источников света и зрителей относительно реальных объектов, создание и текстурирование 3D-моделей реальных и виртуальных объектов, построение виртуальной сцены, включающей виртуальные источники света, виртуальные проекторы, 3D-модели реальных объектов, расположение которых идентично расположению реальных объектов, источников света и проекторов, и 3D-модели виртуальных объектов, программирование визуализации виртуальной сцены с точки зрения расположения зрителя в реальном времени, программирование отображения полученного изображения на поверхность моделей реальных объектов в реальном времени, программирование визуализации получившейся сцены с точки зрения расположения проекторов в реальном времени, программирование интерактивной части и сценария поведения моделей, расстановку проекторов в реальной обстановке идентично виртуальной сцене, финальное отображение полученного изображения посредством реальных проекторов на поверхность реальных объектов.
Кроме того, технический результат достигается за счет того, что:
- после текстурирования 3D-моделей создают дополнительные двухмерные текстуры;
- после расстановки проекторов в реальной обстановке дополнительно осуществляют корректировку проецируемого изображения с учетом расстановки проекторов путем редактирования 3D-моделей реальных объектов.
Предлагаемый способ позволяет изменить впечатление об объекте путем добавления визуальной информации о нем, не соответствующей действительности. Например, зритель видит освещенную стену здания с выступающими из нее блоками (колоннами, барельефами, карнизами). Зритель догадывается о форме этой стены по неравномерности освещенности ее поверхности и теням, отбрасываемым выступающими элементами на те, что находятся в большей глубине относительно источников света (фиг.3). Если же приглушить имеющееся освещение и корректно спроецировать на эту стену тени и рисунок поверхности стены, в которой блоки расположены по-другому, человеческий глаз и мозг воспримет эту информацию как реальную и мы увидим стену совсем другой формы (фиг.4). Главное условие правдоподобности этих впечатлений - соответствие иллюзорных (проецируемых) элементов реальным (на которые идет проекция). Подобным образом можно комбинировать изображения для создания и более сложных иллюзий - что колонны выдвигаются из стены или перед стеной проезжает машина.
Для достижения этого используется точное наложение специально созданного видеоизображения на поверхность проекции (например, стена здания) с учетом ее положения в пространстве, размера, формы, освещенности и рисунка поверхности (текстуры) (фиг.5). Эта задача состоит из двух принципиальных частей - собственно, создание проецируемого изображения в реальном времени и наложение его на реальный объект.
Задача заметно усложняется в случае, когда предполагаемое местонахождение зрителя не совпадает с расположением проектора. В этом случае для каждого объекта требуется первичная визуализация его вида с точки зрения зрителя (viewport renderpass), наложение этого вида как текстуры на модель объекта, после этого вторичная визуализация (final renderpass) с точки зрения проектора для передачи на реальный проектор. На фиг.6 показаны эти два вида - сначала мы получаем вид стены с точки зрения зрителя (правая картинка), затем финальный вид с точки зрения проектора (левая картинка). Этот подход применяется также и в случае, когда в проекции задействованы несколько проекторов и каждый транслирует свою часть общей картины.
Разработка проецируемого видеоряда, воссоздающего реалистичную картину с присутствием несуществующих в данной реальности объектов, может быть решена с помощью современных программных средств 3D-моделирования (например, 3D Studio MAX, Maya, Blender и т.п.)
Заявленный способ позволяет реализовать корректное наложение видеоизображения трехмерной сцены, включающей реальные объекты, на эти реальные объекты с учетом и соблюдением перспективы реального пространства. Кроме того, способ позволяет осуществлять сведение в единую картину изображений с нескольких проекторов и создание изображения в реальном времени, позволяющее интерактивное взаимодействие с изображением (в том числе корректное отображение картины теней и перспективы для зрителя, движущегося произвольным образом), а также интеграцию иных видеоисточников (например, телетрансляцию в реальном времени).
Способ осуществляют следующим образом.
Предварительно проводят измерение, съемку или лазерное сканирование реальных объектов, на которые планируется проекция (строений, объектов интерьера и пр.). Это необходимо для правильного построения трехмерных моделей реальных объектов, а также виртуальной сцены. В случае простых объектов (например, прямоугольных зданий), которые могут быть в последствие представлены как набор трехмерных примитивов (параллелепипед, сфера, цилиндр, конус и пр.), проводят простое измерение этих объектов. В случае объектов простой формы, но с множеством деталей (например, старинные здания) проводят фотосъемку объектов. Объекты сложной формы (статуи, автомобили) подвергают лазерному сканированию. Погрешности в определении размеров или углов приведут впоследствии к несовпадению проецируемой картины и реальных деталей.
Также проводят расчет положения проектора и зрителей относительно реальных объектов.
После этого создают 3D-модели реальных объектов, а также виртуальных, изображение которых будет проецироваться. Далее проводят текстурирование 3D-моделей, подразумевающее построение специализированной координатной сетки текстур (UV mapping) для всех плоскостей, выпуклостей и прочих особенностей объекта. Полученная координатная сетка (UV map) позволяет преобразовать трехмерный объект в элементы двумерной плоскости, используемой в дальнейшем для построения проекционного видеоряда (видеоизображения, подающегося на проектор). После этого модель должна быть разрезана на части и преобразована в соответствии с особенностями сценария; преобразования включают изменение порядка текстур и картины теней. Данную обработку проходят модели всех объектов, задействованных в финальной проекции, - как реальных, так и виртуальных.
После этого, в случае необходимости, создаются дополнительные графические элементы для сценарной художественной части, такие как двумерные текстуры для «раскрашивания» поверхностей реальных объектов (например, изображение фактуры стены, отличающейся от реальной, или иные художественные изображения).
На следующем этапе проводят построение виртуальной трехмерной сцены, включающей источники света, проекторы и все объекты с расположением, идентичным реальному прообразу. На выходе данного этапа должна присутствовать полная модель сцены.
В сцену добавляются как смоделированные реальные объекты, так и виртуальные, не существующие в реальном прообразе сцены (например, выдвигающиеся из стены здания кирпичи или скатывающиеся с крыши шарики). После создания в нужных форматах всех необходимых материалов (3D-модели, текстуры и пр.) из них собирается виртуальная сцена, включающая все эти элементы. Обязательное условие и особенность данного метода - возможность управления сценой в реальном времени. Управление подразумевает согласованное перемещение, масштабирование и воспроизведение анимации элементов сцены, а также изменение условий освещения.
Например, для реализации виртуальной сцены с помощью программного обеспечения на основе Windows с технологией DirectX для каждого виртуального объекта собирается следующий блок:
- соответствующая модель (например, в формате DirectX или Collada file) загружается в модуль расчета 3D-картины в реальном времени (типа Vertex Shader);
- к данному модулю подключаются источники света и позиционируются согласно сценарию и реальной сцене.
Все подобные блоки собираются в группу, на выходе которой будет полная виртуальная сцена, соответствующая реальному прообразу.
На следующем этапе проводят программирование визуализации сцены с точек расположения зрителей и проекторов. Это ключевой этап получения финальных изображений, транслируемых на проекторы. В данном алгоритме виртуальная сцена сначала визуализируется с точки зрения предполагаемого зрителя (viewport). Например, в ПО VVVV для этого она загружается в модуль визуализации Renderer, к которому подключается модуль Projector, настроенный на местоположение и ориентацию зрителя. Отметим, что эти настройки могут динамически меняться в реальном времени, позволяя получать корректное изображение для произвольно движущегося зрителя. На выходе из модуля мы получаем двумерное изображение сцены с точки зрения зрителя.
Полученное изображение отображается на полную модель сцены, включающую все реальные объекты, как текстура (в VVVV это делается с помощью модуля ProjectedTexture). Данный вид сцены визуализируется, в свою очередь, с точек зрения проекторов. В VVVV для этого сцена загружается в модули визуализации Renderer, количество которых равно количеству проекторов. К каждому такому модулю подключается модуль Projector, настроенный на положение в пространстве, ориентацию и оптические свойства (фокусное расстояние, сдвиг линзы и т.п.) соответствующего реального проектора. На выходах модулей Renderer мы получаем финальные изображения. Полученные изображения транслируются на реальные проекторы. Следует отметить, что описанный алгоритм выполняется в реальном времени.
Далее проводят программирование сценария и интерактивной части. На данном этапе задаются последовательности и алгоритмы выполняемых действий с помощью базовых циклических сигналов типа LFO, хронологического модуля, например, типа TimeLiner, определения последовательностей типа Sequencer, управляющих сигналов от внешних физических устройств (датчики, камеры) и описанной в сценарии логики выполнения.
После этого осуществляют расстановку проекторов в реальной обстановке. В случае возникновения сложностей с наложением финального видеоизображения на реальные объекты из-за неточностей в изначальных измерениях или в калибровке проекторов проводят подстройку проекторов в реальной обстановке путем корректировки проецируемого изображения с помощью средства редактирования трехмерных моделей (в ПО VVVV для этого служит модуль PointEditor3D). Данный модуль позволяет смещать ключевые точки 3D-моделей, деформируя модели в 3D-пространстве, для корректного наложения проецируемых моделей на реальные объекты. Точность и плавность деформации зависят от плотности расположения этих точек на модели, а также от величины требуемой деформации. Манипулирование этими точками сдвига идет по трем пространственным осям в системе координат 3D-модели, в отличие от упомянутых во введении методов двумерной деформации в плоскости изображения.
Завершающим этапом в заявленном способе является перенос изображения посредством проекторов на поверхность реальных объектов.
Таким образом, заявленный способ позволяет визуально совмещать изображения виртуальных объектов и реальные объекты, создавая иллюзию присутствия несуществующих трехмерных объектов.