Анаглифные стерео-изображения в Delphi

Графика (2D, 3D)   3 октября 2010  Автор статьи: admin 

Наверняка все ходили в кино и смотрели там 3d фильмы. И вы задавали себе вопрос: «Как же все-таки устроены эти 3d изображения». Если смотреть на них без специальных очков, то врядли вы увидите что-то кроме размытой и низко-качественной картинки. Но в очках перед вами откроется тот самый виртуальный 3d мир, о реализации которого мы сегодня и поговорим.

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

Для начала давайте разберемся в принципе анаглифного эффекта. Начнем с простого. В реальности мы все видим трехмерным, потому что у нас два глаза. Каждый глаз получает свое изображение, и в итоге эти изображения сливаются в одно и дают нам такую картинку. А так как наши глаза расположены на некотором расстоянии друг от друга, то и  изображения, получаемые глазами, будут с разных ракурсов, и общее изображение будет совмещать в себе два изображения с некоторым смещением ракурса. Но как же тогда  в одном изображении можно уместить два? На самом деле все очень просто. Мы будем показывать одно изображение красного оттенка, второе изображение синего оттенка, накладывая их поверх друг друга. Вот пример такого изображения, кстати оно и есть анаглифное и его можно посмотреть в анаглифных очках: (кликните по изображению для увеличения)

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

Таким образом получается, что мы видим каждым глазом свое изображение, и поэтому у нас создается эффект реальности.

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

[note]Скачать исходник[/note]

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

  • hem

    » В реальности мы все видим трехмерным, потому что у нас два глаза.»
    А если один глаз, то человек видит все двухмерным? Пытались когда-нибудь закрыть один глаз?

    • Ну и закройте один глаз. У вас пропадет ощущение «объемности» картинки. Это сравнимо с тем, как если вы посмотрите на обычную картинку, а затем на стерео-изображение. В первом случае вы не будете ощущать объем, пространство, а во втором — будете.

Научиться программировать

  • на Delphi

  • на Java

  • на C++