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

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


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

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

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

Скачать пример.
На основе этого можно сделать игру, демосцену, либо в математическом пакете посмотреть сложный график.
Всем спасибо за внимание!
Полезные ссылки
fishki.net/comment.php?id=65203
images.google.com
google.ru