Loading color scheme

Looking Glass безочковый 3D монитор

Автор: Dmitry Shatunov

3d artist 1

Внешний вид устройства Looking Glass (www.lookingglassfactory.com)

LookingGlass (www.lookingglassfactory.com) – устройство вывода 3d контента. В основе технологии – монитор высокого разрешения с наклеенным поверх линзовым растром. Линзовый растр очень давно применяется для формирования стерео изображений (предложен Г. Липпманом еще в 1908 году). Основная идея заключается в том, что за счет напечатанного кодированного изображения и оптических свойств цилиндрических линз в левый и правый глаз попадают изображения с разных ракурсов, что дает стереоэффект.

543px Linsovo rastrovaya reshotka

Принцип сепарации стереоизображения линзовым растром (Линзовый Растр)

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

LookingGlass – это монитор с матрицей 2560*1600 с наклеенным поверх линзовым растром. Основной отличительной чертой устройства является то, что склейка эта накрыта сверху толстым (10 см) отполированным стеклом, что дает как минимум два эффекта:

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


Эффект Второй – растр имеет конечный угол обзора и при выходе за это угол наблюдается дублирование изображения нарушающее стереоэффект – это классическое ограничение для растровых систем. Размещая растр за куском толстого стекла – производители автоматически ограничивают зону видения, просто не позволяя комфортно видеть зону дублированных изображений. Эта особенность (по крайней мере, на 9 дюймовом варианте) приводит к тому, что монитор фактически работает только на одного зрителя. 

52887037 2265218336878757 1420462993228955648 n

 Структура слоев устройства  Looking Glass  (www.lookingglassfactory.com)

В этой статье мы не ставим своей целью подробно описывать комплектацию и процесс подключения монитора LookingGlass, тем более что это процесс ни чем не отличается от подключения обычного внешнего HDMI монитора. Не будем мы подробно останавливаться и на описании оболочки с демонстрационными приложениями «The Looking Glass Library», которая доступна на https://lookingglassfactory.com/devtools Собственно эта оболочка нужна пользователю, чтобы после распаковки и подключения зритель мог оценить все возможности устройства и насладиться стерео эффектами в загруженных играх и приложениях.

Монитор LookingGlass нужен был нам для нескольких направлений, одно из которых - работа над голографическим принтером. С помощью данного устройства мы хотели оценивать объемность и композицию моделированной 3d сцены до того как будет произведен полный и очень затратный рендер изображения, который в среднем составляет 192*192 (36864) ракурса для полного параллакса. И то-же самое мы хотели сделать для сцен, созданных  из набора фотографий ракурсов реальных объектов.

 

getImage

Принцип записи голографического принтера для которого используется предпросмотр в Looking Glass (OSA)


Задача перед нами стояла следующая: Разобраться, как из набора ракурсов полученных с помощью 3dsMax вывести объемное изображение на монитор LookingGlass. Среда Unity в которой мы начали «общаться» с монитором была нам очень хорошо известна, т.к. имелся богатый опыт работы, в том числе над программой «Holopixel» - расчет холопискелей для голографического принтера.  Для вывода объемной картинки нужно из набора ракурсов  создать полотно m*n (Quilt) поместить его в проект Unity, принять его как 2d текстуру и назначить эту текстуру на Override Quilt свойство объекта HoloPlay.

example quilt 1

Стандартный Quilt в проекте Unity и oкно настроек объекта Holoplay.

В качестве теста в Unity проекте уже было сформированное Quilt изображение, которое при вставке отлично показало объем и качественную картинку для 45 ракурсов. Для эксперимента мы взяли последовательность ракурсов 1 – 45 для нашего тестового 3d изображения «Крокодил Гена». С помощью утилиты ImageMagick было склеено полотно 5*9 ракурсов и размещено в Unity. В результате вывода - полученное нами объемное изображение имело несколько дефектов.

Во-первых - изображение было ортоскопичным т.е. «вывернутым». С этим эффектом мы сталкивались довольно часто, поэтому эта проблема решилась очень просто – мы инвертировали последовательность с 1-45 ракурс в 45-1.

Во вторых - при перемещении по полю шли какие-то резкие рывки, особенно заметные на заднем фоне. На тестовом Quilt изображении от производителя, никаких рывков не наблюдалось. Нам пришлось подробнее изучить документацию по Quilt и мы выяснили, что ракурсы в Quilt склейке не должны идти в порядке 1-45 (или например 45 – 1), они должны идти по особому алгоритму, который показан в инструкции (https://docs.lookingglassfactory.com/Appendix/how-it-works) в котором кадры перескакивают с одной строки на другую.

quilt

Рабочий алгоритм размещения последовательности кадров для кодировки Quilt  (www.lookingglassfactory.com)

Мы провели полуавтоматическое переименование номеров ракурсов в соответствии с этим требованием и получили отличное 3d изображение нашей сцены. Однако перспектива постоянного переименования последовательности ракурсов, которые мы получаем после 3d рендера, нас не устраивала. И если для 3dsMax теоретически можно было сделать некий скрипт, который обходит объект по некой сложной траектории, то как быть с последовательностью реальных фотографий которые (вероятней всего) будут взяты из снятого видео – разбитого на изображения в последовательный ряд.

Посмотрев, что на эту тему предлагали приложения в «The Looking Glass Library», мы поняли, что решения готового сейчас нет. Мы решили сделать на Unity утилиту, которая из набора загруженных последовательных ракурсов сформирует Quilts полотно в соответствии с требованием Looking Glass. При этом количество ракурсов для вывода можно бы было выбирать вручную, как и начальный и конечный ракурс блока. Предусматривалась кнопка инверсии ряда для коррекции ортоскопии и возможность использовать пропуска ракурсов (скажем активный каждый второй ракурс).

 

Данная утилита была сделана и оказалась достаточно полезной для работы. Фактически она представляет собой небольшой редактор, с помощью которого из набора ракурсов (3d рендера или видео съемки) можно сформировать объемное изображение с регулировкой как зоны обзора так и глубины параллакса.

Leave your comments

Comments

  • No comments found