10.2.
Рассмотрим пример:
Координаты точек:
Наблюдатель
смотрит вертикально вниз.
Для
центра проекции левого глаза и центра проекции правого глаза мы имеем
следующие
координаты:
В
системе координат ОХY:
Используя
эти формулы получаем:
; , где
р –
полупаралакс:
, где F – фокусное расстояние
Найдём
значение :
;
Для
каждой точки можно наити изображение для левого и правого снимка.
Пусть
у нас есть:
Поле высот Z(X,Y)
Фотография V(X,Y)
Для
того чтобы получить желаемое необходимо:
Обоити
все точки поля V и для каждой из них, обратившись в поле Z, получим
высоту
Z(X,Y), уже имея яркость V(X,Y). Зная высоту, подставим её в формулу
полупаралакса. Затем в левое поле записываем яркость V в точку (X-p,Y), а в
правое
поле записываем яркость V в точку (X-p,Y).
Недостаток
этого механизма:
При
заполнении Vл и Vп некоторые точки могут быть не заполнены.
В
качестве исходных данных мы задаём минимальный и максимальный полупа-
ралакс:
Для
рассматриваемой задачи:
от размера
изображения по горизонтали (т.е. от )
Решив
следующую систему, можно найти B и F:
И
далее подставить их в формулу полупаралакса:
, где
, где Zp – высота наблюдателя
Отсюда
следует следующее:
А
при :
Далее
вместо поля вывода будем использовать буфер глубины.
В
буфере глубины содержится информация об удалённости точки от наблюда-
теля,
а в поле вывода тоже фактически содержится информация об отдалённос-
ти точки (о высоте).
Используя
формулу :
, которая была
получена ранее получаем, что:
, а так как , то ;
Следовательно
формула полупаралакса будет выглядеть следующим образом:
С помощью буфера
глубины можно синтезировать изображение: