Как сделать стереокартинки своими руками

Свои стереограммы в онлайн конструкторе

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

Рассмотрим самые популярные сервисы для этого.

Make your own Stereogram

1. PATTERN (Текстура для стереограммы)

Как сделать стереокартинки своими руками

Сохраните выбор текстуры щелчком по кнопке « Apply Chandes ».

2. MASK (Маска для стереограммы)

Как сделать стереокартинки своими руками

Выберете маску – черно белую картинку, которая формирует скрытый объем в стереограмме.

После выбора маски, нажмите на кнопку « Apply Changes ».

3. STEREOGRAM (получение готовой стереограммы)

Как сделать стереокартинки своими руками

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

Вот, что получилось у меня (кликните по картинке для увеличения):

Как сделать стереокартинки своими руками

3D Stereogram — нарисуй свою стереограмму

Как сделать стереокартинки своими руками

В панели инструментов конструктора в нашем распоряжении:

1. Размер кисти, которой вы будете рисовать по белому фону.

2. Жесткая и две разной степени мягкости кисти. К примеру, облака лучше рисовать мягкой кистью.

3. Яркость кисти. Помните, чем ярче точка на маске, тем ближе она к вам будет на стереограмме.

4. Две кнопки: Undo — отменить последнее действие, Redo – вернуть отмененное действие.

5. Выберете цвет текстуры вашей будущей стереокартинки а также ее яркость.

Вот, что получилось из моего детского рисунка (кликните по картинке для увеличения):

Как сделать стереокартинки своими руками

Может у вас получится лучше?

Желаю вам творческих успехов в этом увлекательном деле.

Источник

Стереокартинки 3D: Как бесплатно создать онлайн без специальных программ и навыков

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

Как сделать стереокартинки своими руками

Что такое стереокартинки

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

Зачем смотреть стереокартинки

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

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

Где найти стереокартинки

Как сделать стереокартинки своими руками

На многих web-сайтах есть целые разделы с большим количеством стереокартинок, однако проще всего написать в поиске Google запрос «стереокартинки» (или сразу нажмите здесь) и перейти в категорию «Картинки» — здесь их очень много на любой вкус и цвет.

Как создать свою стереокартинку онлайн

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

Будет ли «работать» стереокартинка, если ее распечатать из интернета (файла) на бумагу?

Stereogram

Очень простой редактор, который позволяет создать простенькую стереокартинку, нарисованную своими руками.

EasyStereogramBuilder

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

2. Выбираем один из 176 доступных на момент написания материала фонов (или загружаем свой по ссылке «Upload your own») и нажимаем «Apply Pattern»;

Как сделать стереокартинки своими руками

3. Выбираем одну из 210 масок (или загружаем собственную) и нажимаем «Apple Mask»;

Как сделать стереокартинки своими руками

4. Жмем квадрат с надписью «Click to generate Stereogram»;

Как сделать стереокартинки своими руками

5. Нажимаем кнопку «Save stereogram to PC» и стереокартинка сохраняется на компьютер.

Источник

Создаём стереофото в домашних условиях!

Название «линзовый растр» знают немногие. Но видели его, я думаю, все. Вспомним переливающиеся под рифлёными пластиковыми поверхностями изображения – календарики, открытки, сувениры. Полосы на этом пластике образованы лежащими плотно друг к другу полуцилиндрами.

Изображение под линзовым растром состоит из полосок разных ракурсов изображения. Благодаря растру левый и правый глаз видят на одном и том же участке поверхности разные изображения.

Принцип действия линзового растра. Левый и правый глаз видят на одном и том же участке поверхности разные изображения

Принцип действия линзового растра. Левый и правый глаз видят на одном и том же участке поверхности разные изображения

Процесс создания стереофотографии в общих чертах достаточно прост.

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

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

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

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

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

Величина смещения камеры в обоих случаях тоже не может быть произвольной: от неё зависят резкость итогового изображения, глубина резкости и размер картинки, который мы сможем напечатать.

В общем, перед началом съёмки желательно написать её сценарий и рассчитать все параметры съёмки с помощью программки MultiStereobase, которая входит в комплект поставки программы PhotoProjector Easy. Это программное обеспечение было любезно предоставлено мне его разработчиком – Евгенией Вазенмиллер.

Источник

Создание стерео картинки

Как человек воспринимает объем? Чем ближе расположен рассматриваемый объект, тем больше наблюдатель «сводит» глаза. Т.о. если рассматриваемый объект расположен на бесконечно удаленном расстоянии, то глаза будут смотреть на него «параллельно».

Теперь рассмотрим как достигнуть иллюзию объема на плоской картинке. Итак, у нас имеется человек с двумя глазами (рис.1): левый глаз O1 и правый O2,а так же плоскость проекции стерео изображения D1D2. Пусть рассматриваемый объект B расположен на расстоянии h от наблюдателя. Тогда для того чтоб «увидеть» его на картинке необходимо совпадение рисунка в точках B1 и B2. Получается мы держим перед собой плоский рисунок и смотрим как бы «сквозь» него. Левый глаз видит точку B1, правый B2, изображения для них на листе совпадают и создается иллюзия того, что на самом деле мы видим объект B, расположенный за плоскостью листа. Т.о. чем больше расстояние между точками B1 и B2,в которых совпадает изображение, тем «дальше» воспринимается объект B.

Пожалуй теории пока достаточно, можно перейти к практике. Для этого понадобится Photoshop и 3dsMAX. В Photoshop’е создадим текстуру, из которой в последствии будет построено стерео изображение. Несколько рекомендаций: чем больше на текстуре деталей, тем лучше получиться окончательный вариант (с однотонными вообще ничего не получиться); высота текстуры должна совпадать с высотой изображения (поэтому сразу надо определить размер финального стерео изображения); а ширина зависит от того, где вы собираетесь в дальнейшем использовать полученную картинку. На рис.1 величина d_max как раз соответствует ширине текстуры, поэтому в реальности (на экране монитора или после распечатки) она не должна превышать расстояния между глазами a. В тоже время чем больше пикселей по ширине будет в исходной текстуре, тем более качественным получиться окончательный результат. У меня получилась вот такая текстура:

Ширина ее 100 пикселей, а высота 600 (в итоге рассчитываю получить стерео изображение размером 800 на 600 пикселей). Хотя лучше сделать ее так, чтоб она тайлилась по горизонтали. Далее создаем или открывает любой 3D-объект в MAX’е. Я для этого использовал модель осы:

Для результата не пригодятся ни материалы, ни сторонние рендеры, ни источники света. Поэтому если все это имеется в сцене, то назначаем на все стандартный материал, удаляем все источники света и используем Default Scanline Renderer. Теперь можно приступить к написанию скрипта. Для этого в меню Max’а выбираем MAXScript->New Script и откроется окно редактирование скриптов. Наш скрипт будет иметь свой собственный интерфейс. Это можно реализовать двумя способами: на панели Utilites или в отдельном окне. Выберем первый вариант и создадим новую скрипт-утилиту:

utility stereoImg «Stereo Image»

— утилита создания стерео изображения

Сохраним ее с названием stereoImg.ms и отправим ее на просчет. Для этого надо в меню редактора скриптов выбрать Tools->Evaluate All или нажать комбинацию клавиш Ctrl+E. После этого наша утилита приобрела свой интерфейс (рис.4) и единственное что можно с ней сделать – это открыть и закрыть.

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

group «Texture:»

group «Render:»

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

— определение локальных переменных

Осталось прописать обработчики событий от элементов пользовательского интерфейса. Описание всех событий должно быть следующим образом: on do( ). Для начала опишем поведение MAX’а на нажатие кнопки загрузки текстуры. Что должно происходить: открыться окно диалога выбора файла, после выбора файла текстуры она загружается в MAX, выводиться на форму информация о размере текстуры и ее название, далее инициируются локальные переменные и настраиваются глобальные параметры рендера.

on b_T_img pressed do

height = T_img.height

l_R_h.caption = «height:» + height as String

renderHeight = height

Определим вид, который мы желаем получит на стерео изображении. Для этого нам понадобиться камера. Если в сцене уже имеются камеры с «нужным» видом – отлично, можно использовать их. Если нет, то необходимо создать камеру. Проще всего перейти к виду Perspective, где выбрать необходимый ракурс. После чего создать камеру из вида: в главном меню Create->Cameras->CreateCameraFromView или Crtl+C. Вспомним теорию, там были такие параметры как H – расстояние до максимально удаленного объекта и h_max – расстояние от плоскости проецирования до максимально удаленного объекта. Чтоб не вводить их вручную, будем брать их из свойства камеры, а именно из Clipping Planes. Выберем необходимую камеру, на панели Modify раскроем свиток Parameters, ставим галочку возле Clip Manually. Осталось только настроить Near Clip и Far Clip. Плоскость Near Clip соответствует плоскости проекции стерео изображения, а Far Clip – расстояние до максимально удаленного объекта. Рекомендации: объекты, по которым будет строиться стерео изображение, должна располагаться между Far Clip и Near Clip, Near Clip равно приблизительно половине Far Clip, объекты должны быть расположены подальше от Near Clip и вплотную к Far Clip. Хотя можно этим пренебречь и в дальнейшем экспериментировать с Clipping Planes, для получения более желаемого результата. Т.о. вид настроен, осталось «объяснить» скрипту, что мы будем работать с этой камерой, для этого напишем обработчик нажатия кнопки выбора камеры:

on pb_R_cam picked cam do

После этого ссылка на камеру содержится в pb_R_cam.object.Так же необходимо скрипту отреагировать на изменение пользователем ширины рендера:

on s_R_w changed val do

— обработка изменения ширины рендера

width = s_R_w.value

renderWidth = width

Осталось обработать последнее событие – нажатие «самой главной» кнопки. Опять придется заняться теорией на основе полученной ранее формулы: d/(h-H+h_max))=a/h. Здесь a, H и h_max – констаны. Последние две получаються из Clipping Planes камеры. Определим a, для этого подставим вместо h величину H – крайний случай, когда объект находиться на максимальном расстоянии. Отсюда a=d_max*H/h_max. И последняя формула: d=a*(h-H+h_max)/h – по ней вычисляется расстояние между точками d, изображения в которых совпадают, для того чтоб создавалась иллюзия, что рассматриваемый объект расположен на расстоянии h от наблюдателя.

on b_R_stereo pressed do

— просчет стерео изображения

DOF_img = render camera:pb_R_cam.object outputwidth:width outputheight:height channels:#(#zDepth)

— создание битмапы для будущего стерео изображения

OUT_img = bitmap (width+d_max) height color:black

— заполнение первой полосы текстурой

for x = 0 to (d_max1)do

for y = 0 to (height1) do

prb_R_status.value = 0

— отрисовка стерео изображения

— построчное построение стерео изображения

for y = 0 to (height 1)do

for x = 0 to (width 1) do

— берем из рендера глубины расстояние от камеры до ближайшей точки

dist = (getChannel DOF_img [x,y] #zDepth)[1]

prb_R_status.value =(100 * y / height) as integer

prb_R_status.value = 0

Потом идет построчное сканирование канала глубины (с проверкой на то, чтоб расстояние не превысило Far Clip камеры). На основе этой величины h (в скрипте dist) и полученных ранее формул вычисляется расстояние между повторяющимися пикселами. Таким образом идет построение стерео изображения, попутно обновляется прогресс вычислений. И в конце концов на экран выводиться окончательный результат (рис.7).

Ниже приведен полный листинг скрипт-утилиты с некоторыми улучшениями:

utility stereoImg «Stereo Image»

— утилита создания стерео изображения

— определение локальных переменных

group «Texture:»

group «Render:»

on b_T_img pressed do

height = T_img.height

l_R_h.caption = «height:» + height as String

renderHeight = height

on pb_R_cam picked cam do

on s_R_w changed val do

— обработка изменения ширины рендера

width = s_R_w.value

renderWidth = width

on b_R_stereo pressed do

— просчет стерео изображения

if (height == undefined) or (width == 0) then

messageBox «No texture or invalid size»

return 0

if pb_R_cam.object == undefined then

messageBox «Pick camera first»

return 0

DOF_img = render camera:pb_R_cam.object outputwidth:width outputheight:height channels:#(#zDepth)

— создание битмапы для будущего «расширенного» стерео изображения

— причем ширина умножается на точность

OUT_img = bitmap ((width+d_max)*prec) height color:black

— заполнение первой полосы текстурой

for x = 0 to (d_max1)do

for y = 0 to (height1) do

for i = 0 to (prec1) do

c2 = (getPixels T_img [x+1,y] 1)[1]

if c2 == undefined then c2 = (getPixels T_img [0,y] 1)[1]

prb_R_status.value = 0

— отрисовка «расширенного» стерео изображения

— построчное построение стерео изображения («расширенное»)

for y = 0 to (height 1) do

for x = 0 to (width 1) do

for dx = 0 to (prec 1) do

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

dist = (- (getChannel DOF_img [x,y] #zDepth)[1]*(precdx) (getChannel DOF_img [x,y] #zDepth)[1]*dx)/prec

prb_R_status.value =(100 * y / height) as integer

prb_R_status.value = 0

— получение из «расширенного» «нормальное» стерео изображение

for y = 0 to (height 1) do

for x = 0 to (width + d_max 1) do

c = black

for i = 0 to (prec1) do

prb_R_status.value =(100 * y / height) as integer

prb_R_status.value = 0

Изменение здесь только в алгоритме просчета стерео изображения. Добавилась проверка «от дурака»: просчет не начнется, если не была выбрана текстура и камера. Так же тут был реализован алгоритм «улучшенного» расчета стерео изображения с использованием спиннера «качество». В двух словах в чем это заключается: изображение сначала линейно растягивается и просчет ведется тоже «растянуто», а потом полученный результат сжимается до первоначального размера. Разницу можно увидеть на рис.7, рис.8, рис.9.

На рис.7 качество выставлено в единицу, а на рис.8 и рис.9 – 4 и 8 соответственно. Конечно чем выше качество, тем больше время просчета.

Вот и все. Теперь у нас имеется скрипт-утилита, с помощью которой можно из любого 3D-объекта получить стерео изображение. Очень надеюсь что урок был понятен (для этого надо дружить с геометрией 🙂 и полезен (по крайней мере тем, что можно действительно посмотреть свои модели «в объеме»).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *