Создание трехмерных (анаглифических) изображений

О себе. Я живу в одном из красивейших городов России городе Стерлитамаке республики Башкортостан, мне 28 лет, профессия моя не как не связана с компьютерной графикой, это мое хобби. Графикой занялся почти сразу как появился компьютер, начал с CorelDRAW, затем, нужно признаться, не без большого труда освоил 3ds max, а вот Photoshop как-то не дается, я понимаю что он совсем не сложный, ну как-то не лежит у меня к нему душа.

Прошу вас не относится к уроку слишком серьезно, возможно он вам покажется не очень последовательным, дело в том что я писал его с большими перерывами, при этом терялась мысль, возможно я что-то пропустил, ктому-же во время написания я сам делал какие-то открытия. У меня просто появилась хорошая идея, в рунете по ней я ничего не нашел и я решил донести до широкой общественности, решать что получилось вам. Мой e-mail min-almaz@Mail.ru

Создание трехмерных изображений

Если вы смотрели "Дети шпионов 3", у вас наверняка завалялись 3D-очки после просмотра, не приходила лимысль самому сделать фильм или хотя бы картинку, если есть желание, то это не так уж сложно. Урок рассчитан на пользователей с минимальными знаниями в компьютерной графике.

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

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

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

Через голубой светофильтр, для спектра от зеленого до синего не происходит цветового искажения, но эти цвета, к несчастью, через красный светофильтр видны как черный. В этом смысле интерес могут представлять спектр от оранжевого до желтого (через красный не видны, через голубой "кажутся" оттенками зеленого) и от пурпурного до малиново("кажутся" оттенками синего). Эта информация может понадобится для тех кто захочет что-нибудь сделать в 2D-редакторе. А так не нужно заморачиватся, после обработки фотографий и отрендеренных цветных изображений, весе пройдет автоматически(см. окончание).

Ну ладно с теорией закончили, займемся созданием трехмерных изображений. Попробуем сделать все как в реальном мире. Желательно работать в метрической системе: на основной панели Customize - Units Setup - Metric, там метры, сантиметры, миллиметры - неважно.

Займемся глазами, в виде Font создаем камеру Target с стандартными параметрами назовем ее "Camera RED" ее цель располагаем в нулевых координатах.

Выделяем камеру инструментом Select and Move и нажав на кнопку Shift и переместив камеру создаем ее клон типа Instance(образец), это позволит легче управлять камерами, назовем новую камеру "Camera BLUE".

Цель новой камеры находится в тех же координатах, что и у первой, опять же для удобства управления сгруппируем цели: выделим обе и выберем команду на основной панели Group - Group

Расстояние между камерами(глазами) возьмем реальное, вы легко его измерите подойдя к зеркалу, но прошу будьте аккуратней глаз у нас только два, лучше воспользуйтесь моими:

Если подойти к измерению точно, то можно сказать что расстояние между моими "зрачками" 67,5 мм, но это не так уж важно, учтите что это расстояние немного меняется в зависимости от того куда сфокусирован взгляд(где находится цель), я смотрю в объектив фотоаппарата, который находится в 70-90 см.

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

Сцена1

Управление камерами происходит так если вам нужно изменить расстояние до объекта или угол выделите обе камеры в виде Font и переместите, изменение поля зрения(Field-of-View), у камер происходит синхронно т. к. они клоны, расстояние между камерами меняется удаляя камеру "Camera BLUE" относительно другой. Вы можете заметить что если так раздвигать камеры, расстояние до объекта у них будет все сильнее различаться. Это можно исправить расположив камеры на одинаковом расстоянии относительно оси X, при этом расстояние можно изменять инструментом Select and Uniform Scale ,

но лучше собрать вот такую систему

Сцена 2

Здесь для обоих камер назначен контроллер позиции Path Constraint, а путём выбрана сплайновая окружность, созданные по умолчанию ключи анимации удалены.

Радиус окружности сплайна "равен" расстоянию от камеры до цели по оси Х. Цели, камера "Camera RED" и сплайн сгруппированы. Для изменения угла камер можно просто масштабировать, эту систему в виде Font(или Left) относительно оси Y, а чтоб удалить или приблизить камеры к центру нужно масштабировать в виде Top относительно всех осей или только X и Y, следите чтоб окружность не деформировалась.

"Camera BLUE".свободно двигается по сплайну, единственный недостаток стало труднее контролировать расстояние между камерами(Побольшому счету это расстояние не такуж важно, наблюдатель может быть дальше или ближе, следите только за тем чтоб не казалось что вы смотрите на комнату из-под потолка или эта комната кажется кукольным домиком и тп.).

С камерами закончили, займемся получением изображений.

Сначала, зададим материал цилиндру, для большей наглядности, пусть он будет с картой Checker

Затем, изменим фон на белый, Rendering - Environment - Background (клавиша 8)

Финальная Сцена

Ну вот все готова к рендеренгу, дальнейшие наши действия, получить изображения, обработать и соединить их в Фотошопе. Часть обработки можно произвести в 3d max, это может облегчить работу если вы делаете анимацию. В уже открытом нами окне Environment and Effects переходим на вкладку Effects, там жмем на Add... и выбираем эффект Color Balance. Вот настройки для красной и голубой камеры

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

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

И так визуализируем, рендер может быть любым, названия для файлов должно быть с обозначением цвета, чтоб легче было ориентироваться, формат файла лучше без потерь качества, BMP, TIF, PNG, последний самый хороший, мало весит и в его альфа-канале 3d max сохраняет маску прозрачности(фона).

Переходим к соединению двух картинок, я пользуюсь русской версией Adobe Photoshop CS2, хотя подойдет любая (с 5 версии точно). Результат вы можете увидеть выше.

Объяснения я продолжу на более сложном примере примитивного интерьера.

Необходимые материалы

Вот схема наших последующих действий:

Открываем результаты трудов в фотошопе, Задаем основной цвет для рисования на панели инструментов:

Красный в системе RGB имеет код (255,000,000), голубой(000,255,255), затем выполняем заливку выбранным цветом всего изображения, Редактирование - Выполнить заливку... ( Edit - Fill...), в появившемся окне выбираем режим наложения Осветление (Screen).

Затем, "берем" красную картинку и перекидываем ее на голубую, располагаем ее там так чтоб она полностью перекрывала слой голубого изображения, при этом, создается новый слой, его прозрачность(Непрозр.) устанавливаем на уровне 40-60%.

Мы получили "трехмерное изображение", но оно бледное и плохо различимо, ну в photoshop можно сделать все что угодно. Обедняем оба наших слоя: Слой - Обеднить видимые или Выполнить сведение(Layer - Megre Visible(Flatten Image)), при этом видимых изменений с картинкой не произойдет, затем заходим в меню Изображение - Коррекция - Автоматическая Тоновая Коррекция(Image - Adjustments - Auto Levels), если результат вас неустаивает, можно попытаться в ручную настроить параметры: Цветовой тон/Насыщенность..., Цветовой баланс..., Яркость/Контрастность...

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

Более быстрым способом, может быть способ замены красного канала. Так же открываем изображения в Photoshop. Начнем с картинки красной камеры, на панели каналов выделяем красный канал.

Выбираем инструмент выделения Инструмент "Прямоугольная область" (Rectangular Marquee Tool) , затем выделяем всю картинку, можно в ручную, но надежней сочетанием клавиш Ctrl + A, потом просто жмем Delete. После этого, таким же способом выделяем красный канал с голубой камеры, копируем его Редактирование - Скопировать (Edit - Copy), затем возвращаемся к красному изображению, и вставляем (Редактирование - Вклеить (Edit - Paste)) скопированное на место удаленного канала, сохраняем резултат. Вот и все, результат тот же.

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

602 0 850 22
25
2006-11-14
А по-моему довольно оригинально...
2006-11-14
Было время, и я баловался такими приколами. Даже из игр трёхмерные скриншоты снимал :) Но тут есть проблемка, очки найти сложно. Выкручивался прозрачным пластиком, стеклом цветным.
2006-11-14
Блин! Опередил ты меня я как раз хотел урок на эту тему начать писать! Но урок хороший, только надо бы поподробней про анимацию.
2006-11-14
Андрей Пидвирный - "Дети шпионов 3D" и фильм пикольный, и очки в комплекте. Или книжки про динозавров всяких. Книжку - детям, очки - себе :)
2006-11-15
Ко мне на мой e-mail поступили несколько откликов. Оказывается, такие изображения называются анаглифическими, может стоит изменить название урока.(Не удивительно, что я не чего не нашел, просто использовал не те ключевые слова) И ещё, технология соединения изображений, может быть упршена. Нужно просто в картинке с камеры "Camera RED" заменить красный канал, красным каналом с камеры "Camera BLUE"(при вырезании каналов, следите, чтоб он был выделен на панели каналов). Результат получается тот же, но быстрее. Честно говоря, не понимаю, почему мой тутор оказался по фотошопу, я ведь сразу признался, что не лежит у меня к нему душа. _3DMAN_-извени что опередил, но думаю, у тебя нет зависти, как видишь, мой материал оказался сыроват. А про анимацию, я думаю все понятно: созданную в 3D max анимацию (лучше сделать с расчетом на 9-12 кадров в секунду), отрендерить ее с обеих камер, затем совместить картинки одного кадра, и соединить затем все кадры в ImageReady или более приспособленных для анимации 2D-редакторах (типа Macromedia Flash или CorelRAVE). BorisK- видел я такую книжку, думаю, что если б динозавры там были сделаны в 3D-редакторе, они смотрелись бы более реалистичнее :)
2006-11-15
интересный урок, дает представление о процессе но этот метод, мне кажется, не совсем удобен и технологичен. существует много программ справляющихся с подобными задачами в два клика, а вот программа делающая стереоизображения из одной картинки и ZDepth: http://www.3dmix.com/eng/barelief.php пример: http://img260.imageshack.us/my.php?image=h18bk4.gif
2006-11-15
зато после такого урока становится ясно, что я не одинок в своих увлечениях. И тоже хочу добавить свою лепту: Картинки с каждой камеры можно рендерить в чистом виде,без применения эффектов. Переводить каждое изображение в нужный канал можно и в фотошопе. под "красную камеру" применяем ИЗОБРАЖЕНИЕ - РЕГУЛИРОВКИ - МИКШЕР КАНАЛОВ, в его настройках выставляем ЗЕЛЕНЫЙ канал и отодвигаем бегунки зелёного и синего каналов источников до упора влево (-200), тоже самое с СИНИМ выходным каналом. Таким образом мы получим красный канал в чистом виде. С изображением полученым с "голубой камеры" проделываем теже опирации ИЗОБРАЖЕНИЕ - РЕГУЛИРОВКИ - МИКШЕР КАНАЛОВ, но теперь выходной канал оставляем КРАСНЫМ и в нём двигаем бигунок зелёного канала источника до упора влево(-200) и жмём ОК. Это будет второе изображение которое впоследствии и накладываем поверх первого (красного) с применением смешивания слоёв осветление (Screen) как упомяналось в уроке. Если всё зделать правильно, дальнейшие постобработки не требуются. Ещё можно регулировать глубину объемного изображения, путём смещения вправо или влево одного из слоёв. Таким образом можно отрегулировать на свой вкус,на какое растояние изображение погрузится в глубь экрана монитора, место где изображение находится в "фокусе" будет являтся точкой пересечения плоскости монитова с объемной картинкой. Это действительно увлекательный процесс. особенно результат.
2006-11-15
Кстате, Mryas не пробовал создавать стереограммы (это изображения с повторяющимеся ритмами,где увидеть объемную картинку можно скосив глаза в определённой точки.) при помощи фотошоп и 3D MAX?
2006-11-15
А есть плагин XidMary6 для Макса который делает всё сам, нужно нажать только F9. Но то что автор пошел таким сложным и неудобным путем говорит о том что писал он урок сам, это заслуживает похвалы. 2 Mryas Стереофотки надо было использовать более эффектные (с большей глубиной) , тогда бы большее количество людей поняло что Стерео это круто. P.S. рад что не один я занимаюсь стереофотками, согласитесь это абсолютно другой уровень восприятия изображении. А про игры в шутеры в стереорежиме - без комментариев, попробуйте сами.
2006-11-16
Для тех, кто не знаком с этой темой - отличный, полезный материал, дающий хорошее представление о предмете. Автору успехов!
2006-11-16
А можно и не рубить цвета, а поставить рядом две картинки снятые с небольшим сдвигом и смотреть со скошенными глазами. Эфект много лучше, и все цвета сохраняются. Правда после 20 минут впячивания в монитор глаза начинают уставать, но можно сделать призматические очки. Но как то руки до них у меня не дошли.
2006-11-16
мне нравиться урок. я в этом не силен, но люблю интересные способы применения макса. Поставил пятерки за обширную способность мышления автора и (что не мало важно!) умение применить, описать донести свои оригинальные идеи. Спасибо
2006-11-16
Всем спасибо за хорошие отзывы P.S. – думаю, что сами слова “стереоизображения из одной картинки”, уже говорят об отсутствии у этой картинки объема, ну только какие-то плоскости в пространстве, 3D-редактор(3Ds max в частности) позволяет смоделировать то, как мы видим в реальном мире, мы же видим с разных углов (с разных сторон, если хочешь), наш мозг соединяет две разные картинки и дает нам представление об объеме. Максим – о твоем способе, по сути это тоже что и у меня в уроке, интересно, что у тебя цвет сохраняется в голубом изображении, но все-таки быстрее просто заменить красный канал, как я описывал в комментариях здесь ниже. Стереограммы делать не побывал. _3DMAN_ - спасибо за похвалу. Камера плагина XidMary6 проста в настойках и действительно может все упростить. А про игры шутеры в стереорежиме, я с тобой согласен, это круто, первое время, при игре даже не моргаешь. Андрей Пидвирный - не увлекайся так, позаботься о зрении, лучше игры пиши. Еж, Михаил Ершов - ЗУР РАХМАТ, как говорят у нас Башкирии. и не только!
2006-11-17
Mryas, что значит отсутствие объема? какие плоскоти в пространстве? barelief генерирует недостающее изображение (вторую картинку) на основе имеющегося изображения и карты глубины. разумеется, получается фейк другого ракурса, но достаточно логичный и корректный. можете проверить это, ведь программа делает не только анаглифические картинки, но и параллельные и перекрестные стерео пары. вообще, barelief - это частный случай и я не предлогаю использовать только его. это один из возможных вариантов, простой, удобный и экономящий много времени. вот еще полезные программы и утилиты облегчающие жизнь: http://www.really.ru/dload.php?action=category&cat_id=9 http://www.really.ru/dload.php?action=category&cat_id=10
2006-11-17
оччень прикольный урок по поводу системы камер я предлагаю такую вещь: на виде "top" создаем камеру "LeftEye" с направлением по оси Y (камера внизу, таргет вверху). Хватаем камеру и с шифтом перетягиваем ее по оси X, но выбираем Reference а не Instance, как сказано в уроке и называем ее "RightEye". Затем возле таргетов создаем объект Dummy (тот что в Helpers), называем его "Target". Между камерами создаем второй Dummy и называем его "Head". Выделяем оба таргета от камер и объект "Target", и с помощью Align выравниваем их по всем осям в одну точку. Берем "Select and Link" и линкуем первый таргет от камеры к объекту "Target", затем второй тоже к "Target"; "LeftEye" и "RightEye" соответственно линкуем к "Head". После чего выбираем объект "Head", заходим в закладку Motion и в разделе Assign Controller выделяем строку Rotation. Нажимаем кнопку "Assign Controller" (чуть выше) и выбираем контроллер "LookAt Constraint". В появившемся разделе LookAt Constraint нажимаем кнопку "Add LookAt Target" и на сцене указываем объект "Target". Ставим галочку "Keep Initial Offset" всё в том же разделе LookAt Constraint. Вот и всё! Теперь можно двигать объекты "Target" и "Head" как угодно и камеры всегда будут правильно смотреть в одну точку, а что касается угла FOV камер, то просто выбираешь одну из них и меняешь, на второй камере благодаря методу Reference он поменяется аутоматычно (да в прочем и любой другой параметр). Удачи!
2006-11-17
Конечно впечатляет серьозный подход к такому вопросу, однако прежде чем изоьретать свой велосипед, желательно покататься на уже готовом :) Не люблю критиковать, но кажется придется немного описать принятую практику: 1. Камеры должны быть паралельны. Если их сводить в одну точку как в этом уроке, то неизбежно появятся перекосы по краям, и на вашем конечном анаглифе это заметно. Даже термин есть такой ошибки- "toe in". Toe in допускается только если нет возможности выставить камеры пералельно, например при макросъемке, однако обязательно нужно после съемки скорректировать кейстоновые искажения. В Максе нет никаких огранечений поэтому toe-in нужно избегать любыми способами. Может быть на картинке небольшого размера вертекальные перекосы по краям от toe-in и не так заметны, но если вы хотите сделать полноэкранный стереофильм таким же образом, то глазная или головная боль зрителям гарантирована. Естественно кадры потом нужно будет совместить с определенным горизонтальным сдвигом, который определяет отношение объекта к СТЕРЕООКНУ. 2. Система камер делается с помощью dummy объекта к которому линкуются две камеры (называется "stereo camera rig" / стереоспарка). Это принятый стандарт. В ролике нужно перемещать только dummy объект и камеры будут соответственно перемещаться в месте с ним. Вторая камера делается как Copy Instance - это позволяет одновременно анимировать зум/FOV. Как вы правильно заметили нужно обратить внимание на расстояние между камерами - СТЕРЕОБАЗА. Чем она больше тем рельефнее будет конечное изображение, однако важно не перестараться. Хорошая практика если стереокартинка не вызывает напряжение зрения при просмотре, но при этом сцена не кажется плоской. Есть множество формул выбора стереобазы, но все они импирические, поэтому свои велосипеды приветствуются. 3. Рендрить несомненно нужно оба кадра в цвете безо всяких фильтраций и только потом их преобразовывать в анаглиф. Это дает больше свободы. К тому же имеются проекционные системы, активные LCD стереоочки и шлемы, которые показывают стереокартинку во всех цветах. Некоторые люди умеют смотреть стереопары невооруженным взглядом. 4. Выбор Стереоокна - тут вы решаете насколько объекты будут высовываться из экрана или уходить вглубь. Хорошая практика не нарушать границы стереоокна - не перемекать объектами его рамку. Однако в анаглифе зачастую приходится это делать как способ уменьшения гхостинга. 5. Анаглиф. Существует множество способов конвертирования стереопары в анаглиф как в фотошопе так и при помощи спец программ. Мне кажется ваш способ слишком сложный и не дает полной свободы манипуляции с цветами. Намного проще было бы выставить тип смешивания слоев - Screen. 6. Еще есть очень важная проблема - подавление ГХОСТИНГА (когда картинка для одного глаза частично попадает в другой из-за паразитного проникновения через цветофильтры). Для разных типов гхостинга имеются свои кувалды, например классический скучный способ - уменьшение контрастности. 7. Retinal rivalry - еще один возбудитель усталости глаз, обычно вызывается красным и голубым цветом в исходных изображениях. Решается уменьшением Saturation для онных или сдвигом их в фцетовой гамме Hue. В любом случае спасибо за интерес к данному предмету. Несколько полезных ссылок на будущее: 1. Русскоязычное Стереообщество - http://community.livejournal.com/stereo_ru/ 2. Фото Галлерея анаглифов - http://fotodia.ru/group/Anaglif/photos/ 3. Сборник статей про стерео на stereoart.ru - http://stereoart.ru/paper/paper.php 4. Немецкое стереофото комьюнити - http://www.fotocommunity.de/pc/pc/cat/652 (постоянно появляютсь интерестные эксперементальные работы ) 5. Виртуальная реальность - http://really.ru 6. Stereo Photo Maker - http://stereo.jpn.org/eng/stphmkr/ - обязательная программа для стереоскопии (free)
2006-11-18
3Dimka – спасибо за критику, ваши комментарии профессионала, является хорошим дополнением к уроку для людей, собирающихся профессионально заняться созданием анаглифов. Все же я считаю, что при параллельном расположении камер хоть и не пропадает чувство объема, но картинка выглядит не так приколно, думаю, каждый должен сделать выбор сам, просто попробовав оба способа. P.S. – согласен, объем появляется, но это всего лишь имитация, вот на примере с морским коньком переростком, сильно бросается в глаза, небольшая нелогичность (если можно так сказать), так как мы видим под разными углами, то должны видеть часть обратной стороны, программа не может создать отсутствующие области.
2006-11-20
Mryas > Все же я считаю, что при параллельном расположении камер хоть и не пропадает чувство объема, но картинка выглядит не так приколно Спасибо за ответ. При паралельных камерах анаглиф полностью вылазит из экрана, однако я ж написал что "кадры потом нужно будет совместить с определенным горизонтальным сдвигом" - таким образом сцена засовывается вглубь экрана. Т.е. "прикольность" получится не хуже, однако не будет искажений ведущих к некомфортности просмотра.
2006-11-21
3Dimka – Да, сейчас все стало понятно, то есть используется свойства перспективы (две параллельные линии соединяются в точке бесконечность), можно расставить камеры подальше, а при совмещении слоев искусственно создать фокус, что-то станет дальше что-то ближе.
2006-11-22
> можно расставить камеры подальше, а при совмещении слоев > искусственно создать фокус, что-то станет дальше что-то ближе. Может я вас не совсем правильно понял - не подальше, а паралельно друг другу :) расстояние между камерами (стереобаза) прямо влияет не глубину объема ( это рельфность,"масштаб" вдоль оси Z) Ошибку неправильно выбранной стереобазы исправить потом уже не получится, а вот угол между камерами корректируется сдвигом стереопар относительно друг друга. Если интерестно, есть подробная статья Нестера о съемке стереофото (те же самые правила работают и при виртуальной съемке) - http://deep-life.ru/reverb_life/Az_2/c-0.html
2006-12-17
А если XidMary использовать?
2006-12-26
Прикольно, хороший подбробный урок, но есть After Effects и там есть такая забабаха, мутить можно хоть с чем...
2009-09-09
хотел было написать широкую критику, но уже много чего по сути дела сказали)) Пару слов про стереобазу,она не статична, при макросьемке она может сужатьться влоть до одного сантиметра, а при ландшафтной сьемке спокойно может быть 1-2метра!! Как писали выбор стереобазы не поддается четким правилам, а приходит с опытом и путем експерементов, фотографами обычно делается порой до десятков снимков и потом из них выьирают наиболее удачные, "комфортные" для просмотра. из урока мне больше понравилось "далеко-близко" чем отрендеренная сцена))) ИМХО
2009-10-02
Никропостер
2010-12-02
А зачем так переусложненно в фотошопе? Просто кидаете два изображения в один файл, два раза щелкаете по верхнему слою и снимаете галочку с красного канала (буква R) вот и все. ) буквально два действия и результат тот же самый. Попробуйте не пожалеете :)))
RENDER.RU