May 20th, 2017

VR

The Panini Projection

Давайте я вам в рамках обучающей программы расскажу про сабж. Внезапно оказалось что наш мир не идеален. Это заметили давно, посему всякие древние художники старались исправить некоторые косяки реальности и, например, использовали прямолинейную проекцию (rectilinear projection) вместо перспективной. В этом случае вертикальные линии оставались вертикальными (интернеты полны современных светописей с заваливающимся домами ибо фотокамеры умеют только в перспективную проекцию). Недостаток - нельзя отобразить большой угол обзора (fov), начинают вылазить всякие искажения которые портят картину. Интернеты подсказывают что предел находится около 60 градусов, хотя в те времена художники изображали вообще 30-40 градусов по горизонтали, перестраховывались наверное. Но так не могло продолжаться вечно, и где-то в середине 18 века Джованни Паоло Панини, профессор Французской академии, таки придумал как изобразить широкий угол, да ещё и без особых искажений. Например, Собор Святого Петра, интернеты говорят что здесь 94 градуса.

Его идея проста как валянок: берём окружающую действительность, проецируем на цилиндр (фактически это и есть прямолинейная проекция), потом отходим к стенке цилиндра и переносим то что видим на холст. Из минусов - компрессия глубины, но это мелочи ибо всё остальное получается более-менее нормально. Но на дворе сейчас 21-й век, цифровые методы и всё такое, соответственно данная проекция позволяет исправлять фотографии снятые на ширики и прочий рыбий глаз, строить панорамы, 3d рендеринг для сверх-широких экранов, etc.


Кому интересно, за подробностями можно сходить сюда: http://tksharpless.net/vedutismo/Pannini/ Там полно примеров, схем и картинок. Матан не сложный, я за два с половиной-три часа во всем разобрался и набросал на коленке приложение которое делает из фишая что-то похожее на нормальное фото :)