SPACERY WIRTUALNE Panoramy sferyczne połączone w
Transkrypt
SPACERY WIRTUALNE Panoramy sferyczne połączone w
SPACERY WIRTUALNE Panoramy sferyczne połączone w multimedialną prezentację tworzą spacer wirtualny. Spacery wirtualne to nowoczesna forma prezentacji firm, ale także terenów otwartych i obiektów zamkniętych. Wirtualny spacer prowadzony jest wirtualnymi oczami osoby wchodzącej. To przyjazna promocja firmy zanim klient do niej wejdzie. Panorama sferyczna przedstawia płaszczyzny góradół i dookoła. Poprzez spacer wirtualny mamy wrażenie obrotu wokół własnej osi. Przed rozpoczęciem zdjęć trzeba dokładnie zapoznać się z marketingowym celem projektu oraz miejscami, w których realizowane będą wirtualne spacery. Jeśli do: FIRMY, INSTYTUCJI, HOTELU, RESTAURACJI, PLACÓWKI, SZKOŁY, PSZEDSZKOLA chcecie państwo zaprosić potencjalnego klienta, petenta, rodzica - jest to na pewno najlepszy sposób. Interaktywność gwarantuje, że KLIENT czynnie uczestniczy w zapoznaniu się z przedstawianym miejscem. Niezwykle sugestywne wrażenia bycia w środku - klient "patrzy w lewo", "rozgląda się", „przechodzi dalej i dalej”, „poznaje miejsce, wejście, układ organizacyjny", „zaprzyjaźnia się z otoczeniem”. Wiarygodność miejsca - tradycyjne prezentacje fotograficzne są płaskie, statyczne, złudne. Użycie obiektywu szerokokątnego daje wrażenie, że coś jest większe i przestrzenne. Odpowiednie kadrowanie ukrywa, to co trzeba ukryć, pokazując całe wnętrze i umożliwiając dowolne rozglądanie się po nim przekazujecie Państwo informację, że nie macie nic do ukrycia. KRPANO KRPano - jest bardzo sprytnym i wydajnym narzędziem do prezentacji zdjęć panoramicznych 3D w formie FLASHa. Jedyne co osoba oglądająca musi mieć zainstalowane to Adobe Flash Player, najbardziej popularny plugin występujący w wersji na wszystkie , najczęściej używane przeglądarki internetowe . KRPano Flash Panorama Viewer oferuje wiele unikalnych możliwości jak np. obsługuje gigapikselowe panoramy tzn. o rozdzielczościach kilkudziesięciu tysięcy pikseli, w bardzo ciekawy sposób . Tworzy po prostu panoramy w rozdzielczościach pośrednich , aby na starcie uniknąć wczytywania kilkudziesięciu megabajtów danych . Z wyższych rozdzielczości korzysta w momencie powiększania , zbliżania widoku , ale wczytuje tylko ten, konkretny fragment, który chcemy zobaczyć w uszczegółowiony sposób . Jest w pełni konfigurowalny MOŻLIWOŚCI Technologia Flash Wymaga tylko Adobe Flash Player (wersja 9.0.28 lub nowsza) Wysoka szybkość i jakość obrazu Duża prędkość przetwarzania we wszystkich rozdzielczościach , od małych obiekt do trybu pełnoekranowego . Jakość prezentacji dobierana według możliwości Obsługuje wiele formatów panoram Obsługuje wszystkie rodzaje panoram kubicznych Ładuje pliki panoram fragmentami Duże panoramy mogą być podzielone na małe fragmenty , które pobierane są cykliczne . Umożliwia to oglądanie panoramy jeszcze przed całkowitym załadowanie , co wydatnie skraca czas oczekiwania przez oglądającego . Obsługuje Giga Pixelowe zdjęcia panoramiczne Oprócz fragmentarycznego pobierania plików KRPano umożliwia obsługę Gigapixelowych panoram tj. takich o bardzo dużych rozdzielczościach . System pozwala na stworzenia , na podstawie panoramy gigapixelowej , kilku panoram w rozdzielczościach pośrednich i wybiera którą z nich ma wyświetlić na podstawie wielkości zoomu , który w danym momencie oglądający wybrał . W takim wypadku pobierany jest ten fragment który aktualnie ma być wyświetlony , co nie powoduje konieczności pobrania pliku o wielości np. 30 - 40 Mb !! Nie trzeba szukać kompromisu pomiędzy jakością , a wielkością pliku panoramy . Efekt Rybiego Oka / FishEye / Przy większym kącie widzenia / FOV ok. 130° / widok zaczyna wyglądać bardzo nienaturalnie. Z tym efektem jest zdecydowanie lepiej . Efekty Flary i Mroku Istnieje możliwość dodania i konfiguracji flar oraz mroku , półmroku celem uzyskania bardzo realistycznych wizualizacji. Hotspoty / Wirtualne wycieczki / Skrypty Hotspoty są to miejsca lub fragmeny panoramy po kliknięciu w które wykonywana jest jakaś akcja np. wyświetlenie sąsiedniej panoramy . W pełni konfigurowalny Przeglądarka posiada bardzo dużo parametrów , które mogą być zdefiniowane przez twórcę panoramy . Nawigacja odbywa się za pomocą myszki lub / oraz klawiatury. Rozszerzalny o zewnętrzne interfejsy / Skrypty JAVA Obsługuje zewnętrzne aplikacje Flash oraz Action Skrypt 3 oraz skrypty JAVA . Jest łatwy w użyciu oraz integracji ze stroną www Nie wymaga wiedzy programistycznej . Może być używany lokalnie oraz na serwerze www . Wszystkie ustawienia znajdują się w pliku xml oraz moga być przekazywane poprzez parametry HTTP oraz Flash . ZALETY FLASHA Bardzo duża popularność Do podglądu panoramy przez użytkownika wymagany jest plugin Adobe Flash Player , który jest bardzo popularny. Około 99 % użytkowników Internetu ma go zainstalowanego. Inne playery mogą wymagać zainstalowania dodatkowych pluginów, co najczęściej kończy się rezygnacją z podglądu przez użytkownika . Wielosystemowość Player dostępny jest do większości systemów operacyjnych oraz przeglądarek internetowych: o Windows, Linux, Mac łatwa i szybka instalacja Jeżeli użytkownik nie posiada zainstalowanego pluginu może to zrobić w prosty i szybki sposób . TESTOWY SERWER KRPANO Serwer Testowy Krpano to mały, prosty i łatwy w obsłudze serwer localhost. To sprawia, że można przetestować krpano Flash i HTML5 bez ograniczeń, w pełni lokalnie i bez przesłania plików na zewnętrzny serwer. Inne komputery i urządzenia w sieci lokalnej będą mogły przeglądać pliki. Dodatkowo możliwe jest kontrolowanie pamięci podręcznej przeglądarki oraz ograniczenie prędkości pobierania i testowania do symulacji internetowych wolniejszych połączeń. STOSOWANIE Uruchom testowy serwer KRPano Wybierz folder lokalny, który powinien być używany do testowania: Serwer zacznie dzaiałać automatycznie, a link do plików pojawi się poniżej XML STRUKTURA PLIKU XML krpano, do przechowywania ustawień panoram używa prostych w strukturze plików XML. Pliki te mogą być tworzone lub edytowane przy pomocy zwykłego edytora tekstu, jednak z utrzymaniem zasad składni kodu xml! Poniżej znajduje się schematyczne przedstawienie struktury pliku xml dla krpano. (podwęzły mogą być umieszczone w dowolnej kolejności) <krpano> <include> <preview> <image> <view> <area> <display> <control> <cursors> <autorotate> <plugin> <layer> <hotspot> <style> <events> <action> <contextmenu> <progress> <network> <memory> <security> <textstyle> <lensflareset> <lensflare> <data> <scene> </krpano> Początkowym węzłem pliku jest <krpano>. Wewnątrz niego znajdują się wszystkie węzły potomne. Wypełniacz "atrybuty" jest miejscem na atrybuty węzła. UWAGI dla atrybutu "url: atrybut "url" jest atrybutem specjalnym zdefiniowane w nim ścieżki odnoszą się do zdefiniowanego położenia samego pliku XML można także użyć następujących wypełniaczy w celu zdefiniowania pełnej ścieżki: o %FIRSTXML% - ścieżka pierwszego załadowanego pliku xml o %CURRENTXML% - ścieżka obecnie załadowanego pliku xml o %SWFPATH% - ścieżka pliku swf o %HTMLPATH% - ścieżka pliku html Programowanie Wirtualnej wycieczki w KRPano polega na przekazaniu playerowi parametrów zdjęcia, widoku, hotspotów itp za pośrednictwem pliku XML bądź przy wykorzystaniu JavaScriptu. UŻYTKOWANIE Istnieje wiele alternatywnych sposobów korzystania z krpano Flash Panorama Viewer: 1. Ładowanie przy użyciu domyślnego pliku XML Domyślnie krpano ładuje wszelkie ustawienia panoram z pliku XML, który jest nazwany identycznie do pliku SWF (możesz zmienić nazwę pliku krpano.swf na dowolną inną) krpano.swf -> ładuje krpano.xml yourpano.swf -> ładuje yourpano.xml 2. Ustawianie ścieżki do pliku XML przy użyciu parametru "pano" poprzez parametr(y) HTTP-GET krpano.swf?pano=yourdir/yourpano.xml lub poprzez zmienne Flash: (przykład kodu Javascript SWFObject 1.5) var so = new SWFObject("krpano.swf","krpanoSWF","100%","100%","9.0.28"); so.addVariable("pano","yourpano.xml"); so.write("krpanoDIV"); Wskazane jest używanie skryptów Javascript do osadzania Flash, ku czemu istnieje kilka powodów. 3. Bezpośrednie ładowanie panoramy (przy użyciu pliku XML lub bez) na przykład poprzez parametru HTTP-GET krpano.swf?sphere=spherepano.jpg lub: krpano.swf?cubestrip=cubestrip.jpg lub: krpano.swf?left=left.jpg&front=front.jpg&right=right.jpg&back=back.jpg&up=up.jpg&dow n=down.jpg Powyższe przykłady załadują panoramę sferyczną, cubestrip lub panoramę sześcienną bezpośrednio bez użycia pliku XML. Można to zrobić także przy użyciu zmiennych Flash: var so = new SWFObject("krpano.swf","krpanoSWF","100%","100%","9.0.28"); so.addVariable("sphere", "spherepano.jpg"); so.write("krpanoDIV"); Można także użyć obu, zarówno bezpośrednich parametrów obrazu, jak i pliku XML w parametrze "pano. Na przykład można użyć pliku XML tylko do załadowaniu ustawień wyświetlanie / sterowania (bez znacznika <image>) i ustawić dostęp do panoramy sferycznej bezpośrednio: krpano.swf?pano=settings.xml?sphere=shpere.jpg 4. Panoramy multiresolution Bardzo ciekawy rodzaj prezentacji panoramicznych umożliwiający uzyskanie dużej szczegółowości na zbliżeniach bez nadmiernego obciążenia łącza internetowego. Przykład panoramy przedstawiającej port: Rozdzielczość: 24576 x 12288 ~ 302 Megapikseli Poszczególne rozdzielczości: 24576x12288, 12288x6144, 6144x3072, 4096x2048, 2048x1024 Rozmiary kafelków: 1024x1024 = 24x12, 12x6, 6x3, 4x2, 2x1 = 136 Tiles (~28 MB Jpegs) Powyższa panorama ma rozdzielczość 24576x12288 pikseli (około 302 megapikseli). Aby otworzyć tak dużą panoramę, komputer będzie potrzebował około 1,2 GB dostępnej pamięci, którą przeznaczy tylko i wyłącznie na wyświetlenie tego obrazu. Jak zostało to obliczone? 1 piksel potrzebuje 4 bajtów, więc 24576 * 12288 * 4 = 1.207.959.522 bajtów! Dodatkowo będzie potrzebne około 17 MB na pobranie pliku (tyle wynosi rozmiar panoramy skompresowanej jako obraz JPEG). To oczywiście byłoby zbyt dużo dla przeciętnego komputera. Rozwiązaniem jest podzielić panoramę o ogromnej rozdzielczości na wiele mniejszych. Te fragmenty są wczytywane tylko jeśli jest to potrzebne (na przykład kiedy użytkownik wykonuje zbliżenie). W tym przypadku, obraz jest podzielony na mniejsze o rozmiarze 1024x1024 pikseli) Dzięki temu możliwe jest obejrzenie całej panoramy bez konieczności wczytywania całości na raz. Jednakże nadal istnieje pewien problem - zależnie od kąta patrzenia - jeśli w jednym momencie widocznym jest wiele części, znów kilka oddzielnych obrazów musi być ładowane przy użyciu dużej ilości pamięci. Ten problem rozwiązuje zastosowanie wielu rozdzielczości dla poszczególnych obrazów panoramy. Zależnie od powiększenia i kąta patrzenia, ładowane są tylko najlepiej pasujące rozdzielczości obrazów. To oznacza, że nigdy nie będą jednocześnie ładowane duże ilości danych, co za tym idzie, potrzebna jest mniejsza ilość pamięci. Jeśli widok zostanie zmieniony, fragmenty, które zostały wcześniej załadowane, ale nie są już dłużej potrzebne, nadal pozostaną dostępne. Dopiero w momencie, gdy zostanie osiągnięty limit danych (memory.maxmem), niepotrzebne fragmenty obrazu zostaną usunięte z pamięci. Jeśli później znów będą potrzebne, będą musiały zostać załadowane ponownie. Ile pamięci zostało dotychczasowo zużyte można sprawdzić przez wbudowaną wtyczkę Options-Plugin: mem imagefile - pamięć użyta przez pliki JPEG mem imagedata - pamięć użyta przez kafelki HTML OSADZANIE W HTML Istnieje wiele możliwości osadzania obiektu flash w stronie HTML, poniżej kilka z nich: poprzez znaczniki Object/Embed (niezalecane) poprzez Javascript używając SWFObject 1.5 / SWFObject 2.1 poprzez Javascript używając skryptu embedpano - zalecane Zalecane jest użycie metody Javascript. Daje to więcej możliwości i pozwala na poprawienie niektórych błędów przeglądarek / playera Flash. Automatyczne wykrywa wersję Flash i szybko ją aktualizuje. 1. Osadzanie Flash poprzez znaczniki Object/Embed (niezalecane) Metoda osadzania bez użycia Javascript: <object width="640" height="480"> <param name="movie" value="krpano.swf"> <embed src="/krpano.swf" width="640" height="480"> </embed> </object> Uwaga: Powyższy kod to minimum niezbędne do osadzenia filmu FLash w przeglądarce. Jeśli użytkownik nie posiada zainstalowanej wtyczki Flash, na stronie pojawi się ikona błędu. W powyższym kodzie użyte są oba znaczniki, zarówno <embed> jak i <object>, ponieważ Internet Explorer rozpoznaje znacznik <object>, natomiast inne przeglądarki rozpoznają znacznik <embed> a ignorują <object>. Zalety: nie ma potrzeby stosowania Javascript w niektórych nowszych przeglądarkach automatycznie uruchomi się instalator wtyczki Wady: w starszych przeglądarkach problem z Eolas nie sprawdza czy zainstalowany jest player Flash nie sprawdza wersji playera Flash brak zawartości alternatywnej wszystkie parametry muszą być ustawiane dwa razy (raz dla znacznika object i drugi raz dla znacznika embed) brak dostępu Javascript do obiektu flash brak możliwości poprawy błędów przy użyciu Javascript (przewijanie pokrętłem myszy, błedy w systemie Mac) Przykład - HTML bez Javascript <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/ ...linebreak... ...continueline... cabs/flash/swflash.cab#version=9,0,28,0" height="100%" width="100%"> <param name="movie" value="krpano.swf"> <param name="flashvars" value="pano=krpano.xml"> <param name="allowFullScreen" value="true"> <embed src="/krpano.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" height="100%" width="100%" allowFullScreen="true" flashvars="pano=krpano.xml" /> </object> 2. Osadzanie Flash poprzez Javascript używając SWFObject 1.5 / SWFObject 2.1 SWFObject jest małym programem obiektowym. Do jego uruchomienia nie potrzeba jednak znajomości tego języka programowania, wystarczy tylko zawierająca kilka linii kodu funkcja ładująca. Zalety: sprawdza czy jest zainstalowany player Flash zawartość alternatywna, np. link do pobrania playera Flash sprawdza czy zainstalowana jest poprawna wersja playera Flash Wsparcie Ekspresowej Instalacji Flash (Flash Express Install Support) dostęp Javascript do obiektu flash możliwa poprawa błędów przy użyciu Javascript (przewijanie pokrętłem myszy, błedy w systemie Mac) Wady: potrzeba zastosowania Javascript potrzebne sa dodatkowe pliki (swfobject.js, ...) Przykład SWFObject 1.5: <div id="krpanoDIV"> <noscript>ERROR: no Javascript</noscript> </div> <script type="text/javascript" src="/./swfobject/swfobject.js"> </script> <script type="text/javascript" src="/./swfobject/swfkrpanomousewheel.js"> </script> <script type="text/javascript"> // <![CDATA[ if (typeof(deconcept) !== 'undefined' && deconcept.SWFObjectUtil.getPlayerVersion().major >= 6) { var so = new SWFObject("krpano.swf", "krpanoSWFObject", "640", "480", "9.0.28","#000000"); so.addParam("allowFullScreen","true"); so.addVariable("pano", "krpano.xml"); so.useExpressInstall("./swfobject/expressinstall.swf"); so.setAttribute("xiRedirectUrl", window.location); if ( so.write("krpanoDIV") ) { var mousewheelfixes = new SWFkrpanoMouseWheel(so); } } else { document.getElementById("krpanoDIV").innerHTML = 'Flash Player 9 needed'; } // ]]> </script> Przykład SWFObject 2.1: (UWAGA - skrypt 2.1 musi się znaleźć w sekcji head!) <html> <head> <script type="text/javascript" src="/swfobject21/swfobject.js"> </script> <script type="text/javascript" src="/swfobject21/swfkrpanomousewheel.js"> </script> <script type="text/javascript"> if (swfobject.hasFlashPlayerVersion("6.0.0")) { swfobject.embedSWF("krpano.swf", "krpano", "640", "480", "9.0.28", "swfobject21/expressInstall.swf", {pano:"test.xml"}, {allowfullscreen:true, bgcolor:"#000000"}, {id:'krpano', name:'krpano'}); swfkrpanomousewheel.registerObject("krpano"); } else { document.getElementById("krpano").innerHTML = 'Flash Player 9 needed'; } </script> </head> <body> <div id="krpano"> <noscript>ERROR: no Javascript</noscript> </div> </body> </html> 3. Osadzanie Flash poprzez Javascript używając skryptu embedpano <script src="embedpano.js"></script> <div id="pano" style="width:100%;height:100%;"> <noscript><table style="width:100%;height:100%;"><tr style="verticalalign:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table> </noscript> <script> embedpano({swf:"krpano.swf", xml:"tour.xml", target:"pano", html5:(document.domain ? "prefer" : "auto"), passQueryParameters:true}); </script> </div> FUNKCJE SKRYPTU EMBEDPANO Tworzenie i umieszczanie krpano viewer na stronie HTML. Automatycznie sprawdzanie wersji Flash lub wsparcie HTML5 Poprawki kółka myszy: (powiększanie, wsparcia Mac, touchpad) Automatycznie umożliwiając korzystanie z Flashplayer trybie pełnoekranowym. Skrypt może być również połączone razem z krpano HTML5 viewer w jednym pliku dla naszego skryptu (na przykład "tour.js"). Podczas korzystania z dropletu krpano „MAKE PANO” lub „MAKE VTOUR” zostanie to zrobione automatycznie. ZAŁADOWANIE SKRYPTU Skrypt należy załadować w dowolnym „poprawnym” miejscu na stronie html. Dodając poniższy kod: <SCRIPT SRC = "EMBEDPANO.JS"> </ SCRIPT> KRPANO JAVASCRIPT W WERSJI 1.18 Aby uzyskać dostęp do krpano z poziomu Javascript będzie wymagane użycie obiektu pobranego z Interfejsu Javascript. Możemy wykorzystać 2 opcje: za pomocą onReady, funkcja obsadzona w skrypcie „embedpano”, która zwraca wymagane funkcje (zalecany sposób) lub za pomocą połączenia javascript: document.getElementById (id) Parametr id jest unikalnym identyfikatorem (domyślnie: "krpanoSWFObject”) OBIEKT JAVASCRIPT KRPANO Obiekt interfejsu JavaScript w Krpano posiada następujące funkcje: • set(zmienna, wartość) - ustawia daną wartość w zmiennej krpano. • get(zmienna) - zwraca wartość danej zmiennej krpano. • call(akcja) - wykonuje dowolną akcję w krpano. • spheretoscreen (h, v) - bezpośrednio wywołać działanie spheretoscreen. • screentosphere (x, y) - bezpośrednio wywołać działanie screentosphere. Funkcje spheretoscreen / screentosphere zwracają właściwości z obiektu x, y UŻYCIE Przypisanie do zmiennej “krpano” całego obiektu HTML DOM: VAR KRPANO = DOCUMEN T.GETELEMENTBYID("KRPANOSWFOBJECT"); Pobieranie oraz wysyłanie zmiennych: VAR FOV = NUMBER( KRPANO.GET("VIEW.FOV") ); FOV += 10.0; KRPANO.SET("VIEW.FOV ", FOV); Użycie funkcji call. W tym wypadku załadowanie innej panoramy. KRPANO.CALL("LOADPAN O('PANO2.XML',NULL,MERGE,BLEND(1));"); WIRTUALNY SPACER - NOWOŚCI WEBVR – PLUGIN Wirtualny spacer coraz bardziej staje się dostępny dla każdego. Dzięki specjalnym goglom, które wprowadziła na rynek firma Google, możemy poczuć się jeszcze bliżej wirtualnej rzeczywistości. Najprostsze okulary, zaprezentowane poniżej wykonane są z tekstury, do samodzielnego złożenia. Istnieją już produkty, o takiej samej metodzie działania, zrobione np. z plastyku. Co przeniesienia się w wirtualny świat, oprócz gogli, potrzebny nam będzie smartphone. W celu odkrycia w 100% możliwości, telefon powinien posiadać żyroskop. Czy to dalej Wirtualny spacer? Tak – dzięki rozbudowanemu pluginowi, możemy tworzyć także wycieczki pod nasze gogle. Widok spaceru, do oglądania go za pomocą gogli jest podzielony na 2 równorzędne obrazy: „Patrząc” na hotspot, po krótkiej chwili zostaje on aktywowany. Dzięki czemu, możemy przenosić się pomiędzy panoramami.