Реализация настоящего 3D эффекта в своих проектах

image

Сегодня я попробую без nVidia 3D Vision, специальных очков и 120Hz монитора добиться настоящего 3D картинки. Работа будет произведена с помощью графической библиотеки GLScene для Delphi/Lazarus/Borland C++ на ПЭВМ с посредственными характеристиками. Вы можете повторить указанные действия, используя фотоаппарат, программы с функцией моделирования 3D изображения (например, MathCAD, Maya, etc) или любым GAPI. В конце статьи мы должны получить объемное изображение вне монитора, к которому можно будет «прикоснуться». Это не революция в технологиях, а простой стереоскопический эффект, который в быту является небольшой, но полезной для зрения забавой.

Стереоизображение


Я не буду описывать здесь все то, что может рассказать гугл. Только самое главное и необходимое для работы.
Стереопара – вид стереоизображения, представленный парой плоских перспективных изображений объекта, полученных с двух разных точек зрения расположенных между собой на расстоянии соответствующем межзрачковому расстоянию человека.
Прежде всего, нас интересует горизонтальная стереопара (side-by-side), которая бывает двух видов: параллельная и перекрестная.

imageВ параллельных стереопарах левое изображение предназначено для левого глаза, а правое изображение – для правого. Для таких изображений направление взгляда необходимо располагать параллельно, как если бы мы наблюдали объект за экраном.

Ниже можно посмотреть пример параллельной стереопары, а справа изображение, иллюстрирующее направление взгляда.
image


В перекрестных стереопарах все наоборот: левое изображение предназначено для правого глаза, а правое изображение – для левого. Для наблюдения стереоскопического эффекта нам необходимо скрестить глаза. Мнимое изображение будет расположено между вами и монитором, что позволит попробовать к нему «прикоснуться».

Пример из прошлого случая. Просто переставили изображения местами:
image


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

Если самое дальнее число 5, а самое ближайшее 4, значит вы сейчас смотрите на пример, как на перекрестную стереопару. Если наоборот – как на параллельную.

Просмотр подобных картин является отличной тренировкой зрения для людей, у которых точка фокуса длительное время располагается на одинаковом расстоянии от глаз. Под это описание попадают люди, занимающиеся бумажной работой или за ПК. При хорошей тренировке с различными стереоизображениями можно избавиться от очков и проводить профилактику мышц глазных яблок. Но не стоит забывать меру, здесь как в спорте: если мало, то полезно, если профессионально, то можно покалечиться. Параллельные стереопары более благоприятны для нашего зрения, так как это естественный взгляд человека, но чтобы научиться их видеть, надо хорошо потренироваться.
Совсем не могут видеть стереоизображения лишь около 5% людей. Эти люди не способны видеть мир в объеме и прав на вождение автомобиля им не предоставляют.

Реализация


Для реализации на фото/видео камере нам необходимо расположить 2 аппарата на одной горизонтальной планке с расстояниями между объективами в 7-8 см. После чего готовые фотографии или видеодорожки совместить по горизонтали. Не забывайте, что смотреть на изображения надо без наклона головы.

Теперь реализуем данный эффект с использованием графической библиотеки GLScene. Запускаем используемую IDE, создаем VCL/LCL приложение, размещаем на форме TGLScene и два TGLScreenViewer. Размер формы установим равным 800x400 и разместим на ней вьюверы по левую и правую стороны. В TGLScene создаем две камеры, источник света, который следует поместить во вторую камеру, шар, пару кубов, плоскость. Поместим обе камеры в TGLDummyCube, установим даммик как TargetObject. Координаты камер (3,0,-0.1) и (3,0,0.1). Не забываем присвоить каждому вьюверу по своей камере. Кодить нет необходимости. Желательные системные требования: широкоформатный монитор.

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

Скачать пример.
На основе этого можно сделать игру, демосцену, либо в математическом пакете посмотреть сложный график.

Всем спасибо за внимание!

Полезные ссылки


fishki.net/comment.php?id=65203
images.google.com
google.ru

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

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 65

    0
    А где реализация настоящего 3D эффекта?
      –1
      просто у меня нет монитора 120 герц, и nvidia vision, но я не вижу никакого 3д — вижу только 1 сцену с немножко разных позиций:(
        +9
        Способы как увидеть объем в перекрестных стереопарах:
        1) Скрещиваем глаза, пока 2 картинки не пересекутся в одну. Сосредотачиваемся на этой одной картинке пока она не станет четкой (зрение само превратит мутное изображение в четкое 3D).
        2) Берем карандаш, прикосаемся кончиком до монитора. Смотрим строго на гриф и постепенно ведем его к глазам до тех пор, пока обе картинки не сольются в одну. Смотрим на нее и заставляем глаза фокусироваться.

        Способы как увидеть объем в параллельных стереопарах:
        1) Расстояние между лицом и монитором ~половина вытянутой руки. Глаза расфокусированы, как если бы Вы смотрели на очень удаленный объект. Когда изображения начнут двигаться пытаемся совместить их в одно и сфокусироваться на нем.
        2) Прислоняемся к монитору и расслабляем глаза. Начинаем отодвигать голову назад. Если глаза начнут фокусироваться на мониторе, то начинаем сначала, если остаются параллельными, то продолжаем двигаться, пока изображения не сольются в одно. Фокусируемся на нем.
        3) Печатаем изображение на бумаге. Становимся перед стеной и смотрим на нее секунд 10. Медленно поднимаем лист бумаги перед своими глазами. Если сфокусировались на распечатке, то снова смотрим на стену.
        4) Пододвигаем монитор ближе к себе и смотрим на стену за ним. Взгляд должен быть сфокусирован на стене за монитором, т.е. Вы смотрите «сквозь» него, как если бы он был прозрачным. Находим позицию в которой изображения сливаются в одно. Заставляем глаза сделать совмещенное изображение четким. Наслаждаемся эффектом.

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

        p.s. На рутрекере есть много видеороликов и фильмов, выполненые в виде стереопар.
          –7
          Вы, товарищ, наркоман, штоле?
            +4
            У меня не получилось, видел сразу 3 (!!!) расфокусированных картинки, а потом заболели глаза.
            А это не опасно?
              +3
              Если часами непрерывно смотреть перекрестные стереопары, то конечно опасно. А вообще полезно, я в статье писал. Если хорошо с фокусом научитесь упражняться, то можно от очков отказаться.

              То что видели 3 картинки это хорошо. Сосредоточьтесь на центральной, через некоторое время она станет четкой и Вы сможете увидеть все в объеме.
                +1
                Вы волшебник! Секунд 10 посмотрел и изображение резко стало резким! Честно говоря, да текущего момента я считал что 3D не вижу, спасибо!
                  +1
                  Весьма рад, что развеял Ваши сомнения. Спасибо, что уделили время статье.
                    +1
                    Эх, помню свою радость, когда лет 10 назад отец принес книгу со стерео-картинками и я полчаса сидел, пялился на них, никак не мог увидеть. Зато когда увидел, было ощущение, что попал в матрицу:)
                  • UFO just landed and posted this here
                    0
                    … а потом заболели глаза. А это не опасно?

                    Думаю это вредно делать с обычным активным монитором. Скорее всего это безвредно и полезно то на бумаге и на eInk-мониторах. Помню раньше были целые альбомы с картинками для такого рассматривания (в прочем, там было не два отдельных изображения, а одно покорёженое). Так вот с этими книжками у меня никакого дискомфорта не было и со временем стало неплохо получаться, а если пытаться с монитором, то приятного мало — раньше глаза болели и слезились, сейчас (может мониторы стали лучше, может глаза погрубели с возрастом) просто неприятно.
                      0
                      только вот один момент, на картинках в альбомах картинка не так создается и параллакс между левым и правым глазом меньше, потому и глаза не устают. А здесь параллакс слишком большой и для глаз в этом радости мало.
                    0
                    Фантастика! круто! никогда такого не видел, просто и работает!
                      0
                      спасибо, наконец-то научился видеть стереопары! мне кажется стоило упомянуть, что картинки видится сначало 3 (левая, правая и скрещеная), и именно на центрально глаза сами фокусируется и получается эффект 3Д
                        0
                        Угу. Быстрый и эффективный способ сломать глаза.
                    +1
                    Попробовал, получилось, интересно.
                    Но вот судя по моим глазам — едва ли это полезное занятие, как вы пишете.
                    • UFO just landed and posted this here
                      • UFO just landed and posted this here
                          0
                          Первая мысль после прочтения ваших слов — эти упражнения привели к косоглазию?
                          • UFO just landed and posted this here
                              0
                              А что при этом с «картинкой происходит»?
                              • UFO just landed and posted this here
                    • UFO just landed and posted this here
                        0
                        сложная картинка однако, но прикольно. интересно, как эту фотку снимали? спареным фотиком чтоль?
                          –5
                          Спаренным фотожопом :)
                            0
                            фотошопом так не спаришь имхо — сложновато. это уже 3d фотошоп какойнить должен быть…
                          +5
                          Жесть, каждая капелька в воздухе висит.
                          Глубокий снимок однако.
                            +2
                            Очень жаль, что на фишках перекрестные стереопары. От параллельных глаза гораздо меньше устают.
                              +1
                              Близоруким, наверное перекрёстные проще. Лично меня тоже параллельные меньше напрягают.
                                0
                                Я достаточно сильно близорукий. Тем не менее, для любых глаз полезнее смотреть вдаль, чем косить.
                                А перекрестные, думаю, для всех проще, скосить глаза можно даже с излишком, а для расфокусировки даже я трачу иногда несколько секунд (на больших изображениях).
                                0
                                PS и да, всегда можно взять простейший редактор и поменять местами. Это конечно время, но тоже выход.
                                0
                                Не знаете, когда появится стереопорно?
                                • UFO just landed and posted this here
                                  0
                                  Удивительно, но на этой стереокартинке сразу все увиделось. А на кубиках и циферках — никак, хоть застрелись.

                                  Вопрос в студию — никто не пытался экспериментировать с видео, где стереокадры идут в одном видеопотоке, с чередованием — сначала показывается кадр для левого глаза, потом для правого, и так далее? Для просмотра нужны очки с синхронным переключением просмотра для правого и левого глаза.
                                  +1
                                  Под wine скачанный файл рисует только модель справа, слева есть стенки, но нет вращающихся объектов.
                                    0
                                    Скомпилировал проект в lazarus для линукса. Проверил в Ubuntu, вроде работает. Попытайтесь его запустить, если все в порядке, то добавлю ссылку в топик. Скачать можно здесь.
                                    0
                                    Кстати говоря с картинкой для привлечения внимания тоже работает. Похожа на выпуклый пятиугольник.
                                      +1
                                      Это тессеракт. Одна из моих любимых стереопар.
                                      0
                                      Прошу прощения всех, но не подскажете для какого блога эта статья подходит наибольшим образом?
                                      0
                                      Помню делал открытку для девушки на 8 марта стерео картинкой. Ей понравилось! Программа называлась 3DMIRACLE.
                                        +5
                                        Позвольте показать и свою картинку
                                        image

                                        Можно девушку поздравить 8-го
                                          0
                                          Ее можно посмотреть в бОльшем разрешении, вставив адрес картинки в новое окно/закладку.
                                            0
                                            Зачем вам потом косая девушка?
                                            0
                                              0
                                                0
                                                А как просматривать параллельную стереопару, если не получается поймать фокус?
                                                Перекрестные я на раз ловлю, а таким способом ни разу не получалось.
                                                  0
                                                  Для параллельных надо сфокусировать взгляд на абстрактном далеком объекте, за экраном, в общем. И опять же словить совмещение картинок в одну.
                                                  Основная сложность в расфокусировке зрения. Для начала советую попробовать маленькие картинки (на них требуется не такая сильная расфокусировка), — просто уменьшите масштаб страницы с помощью [Ctrl]+[-], например.
                                                  0
                                                  Правила понравились:
                                                  2.2. Анимация: сильно мигающие аватары и подписи запрещены (степень мигания определяется Администрацией).
                                                0
                                                3D изображение. А зачем гиперкуб первой же картинкой размещать???
                                                  0
                                                  А как делаются картинки, которые иногда печатают на обратной стране тетрадей?
                                                  там одна картинка и пишут что смотреть на нее надо как на параллельную стереопару.
                                                    0
                                                    3D eye, правда, давно не обновлялись.
                                                    0
                                                    Когда-то давно пробовал увидеть, решил повторить. Минут десять бестолковых попыток, рези в глазах и слез ручьем(
                                                      +1
                                                      без nVidia 3D Vision, специальных очков и 120Hz монитора получить 3D эффект картинки можно еще так:
                                                      image
                                                      image
                                                        0
                                                        это из двух фоток склеено?
                                                          0
                                                          Из четырех. Есть даже фотоаппарат для этого специальный, Nishika например
                                                            0
                                                            Опередили, я не видел ваш комментарий ;)
                                                            0
                                                            Нет. Использовались четырехобъективные пленочные фотокамеры, делающие одновременно 4 кадра: Nimslo 3D, Nishika N8000, Nishika N9000 и другие. А затем софтом монтировали из 4 кадров подобные 3D.
                                                          0
                                                          Играл в Quake3 со стерео-очками еще на CRT-мониторе.
                                                          Напрягает, что точка прицела прямо перед тобой, а остальное дальше, ну и вообще глаза побаливают после такого. Там очки были затворные.
                                                            0
                                                            В Descent1 (досовском) был режим для VFX шлема, где изображение делилось на левое/правое не чётностью строчек, а по левой/правой части. И глаза можно было менять местами :)
                                                              +2
                                                              Те, кто научились смотреть перекрестые стереопары, попробуйте тем же способом посмотреть на перекрестную стереограмму и пальцем «погладить» скорпиона (откройте изображение в отдельном окне для увеличения):
                                                                0
                                                                Капелька яда на жале :)

                                                              Only users with full accounts can post comments. Log in, please.