Создаем стереограмму в Blender и Stereogram Maker

15 Дек
2011

В этой статье я собираюсь описать, как делать стереограммы—стереокартинки со скрытым изображением. Меня они очаровывали с детства. Я собирал их, вырезая из журналов или покупал книжки. Потом подолгу рассматривал. Я научился видеть скрытое изображение очень хорошо, но мне всегда хотелось пойти еще дальше и создавать их самому. О том, как создавать стереокатринки я и напишу в этой статье. О том, как их надо рассматривать, на каких принципах они основаны можно прочитать в Википедии или в других местах сети. статей на эту тему очень много. Я не буду об этом писать.
Нам понадобится Blender (его можно бесплатно скачать на сайте Blender.org)—для создания модели и карты глубины и какая-нибудь программа для генерации стереоизображений. Это может быть Stereogramm Maker или какой-нибудь онлайн-сервис.
Для начала создадим модель для стереограммы. Я решил сделать что-нибудь не сложное. Вообще, чем более сложную модель вы создадите, тем труднее ее будет рассматривать. Кроме того, тонкие детали всё равно не удастся изобразить на стереограмме надлежащим образом. Так что лучше, чтобы это было что-то более-менее простое.
Пусть сейчас это будет бокал. Ниже я напишу, как его моделировал я. Это, конечно не единственный возможный способ и не для всякой ситуации сгодится.
Включим Блендер, удалим кубик в сцене по умолчанию. Переключимся в режим вид спереди (клавиша 1 на NumPad, на ноутбуке можно включить опцию Emulate NumPad в окне User Preferences и использовать обычные цифры). C помощью Shift+A выберем Mesh->Plane. Повернем полученный квадрат на 90 градусов относительно оси Х (клавиши R+X+90) и для удобства разместим его в начале координат (Shift+S, затем выбираем cursor to center; Shift+S, выбираем selected to cursor ). С помощью клавиши таб перейдем в режим редактирования mesh-а. На панели Mesh Tools слева (если ее нет, то вызовите клавишей T) выберем пункт Subdivide, чтобы разбить квадрат на несколько частей. В режиме редактирования вершин (если не включен то ctrl+tab+1) удалим все левые вершины и центральную вершину квадрата.
Получится что-то похожее на рисунок ниже.
image
Затем деформируем контур так, чтобы он стал напоминать профиль бокала. Тут все зависит от вашей фантазии. Можно пользоваться клавишей E для экструзии вершин и кнопкой Subdivide для подразделения отрезков ломанной. За плавностью линии гнаться не нужно. Должно получится что-то похожее на рисунок:
image
Теперь выделим все вершины ломаной (клавиша A). На панели Mesh Tools выберем инструмент Spin. Скорее всего, контур превратится в какую-то чепуху вроде такой:
image
Чтобы все получилось как нужно, в появившемся ниже меню настроек опции Spin в разделе Degrees надо поставить 360, в разделе Center все нули (теперь видите как разместить объект в начало координат) и в разделе Axis поставить 1 напротив оси Z (напротив остальных 0). Должно получится что-то похожее на эту картинку.
image
Замечу, что в отличие от 3dMax, если вы не исправили настройки операции сразу после применения, то исправить их будет уже нельзя.
Тут стоит выделить все вершины с помощью A и применить опцию Remove Doubles на панели Mesh Tools. Это позволит избавиться от перекрывающихся вершин, в месте где конец вращения контура совпал с его началом.
Теперь можно немного отредактировать форму бокала, выделяя связанные кольца вершин через Alt+правая клавиша. Новые кольца вершин можно добавить с помощью Ctrl+R. Когда вы будете довольны результатом можно будет добавить толщину и сгладить угловатость с помощью модификаторов Solidyfy и Subdivision Surface (толщину можно и не добавлять, для стереограммы это не очень важно ). Ну вот получилось что-то такое.
image
С помощью клавиши 0 перейдем в режим вида из стандартной камеры (надеюсь, вы ее не удалили). С помощью клавиши S (масштаб) подгоните бокал под нужный размер, если нужно. Далее с помощью Shift+D можно дублировать модель и составить какую-нибудь милую композицию.
image
На этом закончим с моделированием и приступим к рендерингу карты глубины, которая нужна для изготовления стереограммы.
Карта глубины это черно-белая картинка на которой яркость точки показывает ее удаленность от объектива камеры. В блендере это то, что называется z-bufer. Он генерируется всякий раз при рендеринге, и нам только нужно его как-то вывести вместо самого рендера. Для этого переключите окно моделирования в окно Node Editor (редактор узлов). Это можно сделать, нажав на иконку в левом нижнем углу окна. Появится пустое окно редактора нодов. По умолчанию включен редактор материалов, поэтому переключитесь в режим Compositing Nodes. Надо сразу поставить галочку в пункте Use Nodes. С помощью Shift+A добавте в сцену нод Vector->Normalize и Color->Invert. Первый нужен чтобы отобразить z-bufer, второй чтобы картинка имела правильные цвета (простой вывод буфера даст вывернутую стерограмму ). Соедините ноды, так как показано на картинке.
image
Всё, теперь просто рендерите (f12) и сохраняйте полученное изображение.
image
Карта глубины у нас уже готова, теперь нужно приступить к созданию текстуры. Текстура может быть по высоте равной картинке, она должна иметь достаточно сложный узор и быть не слишком периодической по вертикали. Ее можно создать разными способами. Можно, скажем, нарисовать какой-нибудь узор и отсканировать, можно сфотографировать обои в вашей комнате. Тут всё зависит от вашей фантазии и от цели. Например, можно сделать текстуру похожую на фактуру стены и затем спрятать стереокартинку в какой-нибудь 3Д-сцене.
Я же просто сгенерирую ее в GIMP-е (в этом отношении он, на мой взгляд, даже лучше Photoshop). Например так, filters-> render ->Diffraction Pattern, filters->render->circuit, filters-> render->Lava. Всё это нужно объединить через разные режимы смешивания слоев, отредактировать цвета через кривые и другие инструменты цветокоррекции. На чистом слое я создаю градиент и тоже смешиваю его с картинкой, для того чтобы цвета внизу и вверху отличались. Все слои объединяю и текстура готова. У меня получилось что-то такое:
image
Для создания самой стереограммы понадобится программа генерации (может быть есть какой-то аддон для Блендера, я не искал). Я думаю многие смогут написать такую программу сами, но я не программист, поэтому предпочитаю скачать, например, Stereogramm Maker, вот с этого сайта www.swiftgear.com/stmaker/features.html. Для Linux тоже есть нужный софт, но я к сожалению, забыл как он называется.
Загружаем картинки в стереомейкер (первая кнопка слева) –одну как range image, другую как pattern image (вобщем-то эта программа позваляет использовать непосредственно 3Д-модель в специальном формате, но я больше люблю карты глубины). Жмем на кнопку с бомбой и ждем пока создастся стереокатринака. Ее можно сохранить и подкорректировать цвета или текстуру в графическом редакторе если нужно.
image
Вот и все.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх