By
Ron2
Кто нибудь сможет помочь в решении такой проблемы - я долго искал скрипт, который мог бы обеспечить просмотр панорамных фото в 3D проекции, нашел один скрипт но он предназначен для камер с двумя объективами (для вот такой http://trud.kish-host.ru/lena/s-l1600-12.jpg?i=1), которая на одном фото рядом располагает две картинки ( http://trud.kish-host.ru/lena/6.jpg ) с противоположно разнесенными на 180° объективами и отображает фото на все полноценные 360° (полный шар).
А у меня камера с одним объективом и делает фото только в сфере (т.е. чуть больше пол шара проекции, на вот такие углы - http://trud.kish-host.ru/lena/44.jpg ). И в итоге мое одинарное фото http://trud.kish-host.ru/lena/55.jpg отображается этим скриптом вот так: http://trud.kish-host.ru/lena/panorama1.html .
Я пытался в файле html этого скрипта, изменять математические зависимости, что бы он работал только с одной картинкой, но идеального отображения (без больших деформаций) так и не добился. Вот на этой странице http://qiita.com/mechamogera/items/b6eb59912748bbbd7e5d на фото указаны те величины, на основании которых этот скрипт строит панорамное фото. Такие же величины прописаны в файле panorama1.html
uvs[ i * 2 + 0 ] = x * ( 404 / 1920 ) * correction + ( 447 / 1920 );
uvs[ i * 2 + 1 ] = z * ( 404 / 1080 ) * correction + ( 582 / 1080 );
} else {
var correction = ( x == 0 && z == 0 ) ? 1 : ( Math.acos( - y ) / Math.sqrt( x * x + z * z ) ) * ( 2 / Math.PI );
uvs[ i * 2 + 0 ] = - x * ( 404 / 1920 ) * correction + ( 1460 / 1920 );
uvs[ i * 2 + 1 ] = z * ( 404 / 1080 ) * correction + ( 582 / 1080 );
Скачать этот скрипт с фото можно здесь: https://cloud.mail.ru/public/NETa/Sb1EkYn82
Может кто нибудь, кто разбирается в подобных математических зависимостях? Если сможете помочь в адаптации данного скрипта, то я бы очень был бы вам признателен.