Zylindrisches Panorama wird vertikal verbogen

  • Hi zusammen,

    ich habe ein seltsames Problem mit 360 Grad Zylinderpanoramen. Ich habe als Screenshots den Input und den Output beigefügt. Was ich mache: Ich nehme das Input file, ziehe es auf das MultiRes Droplet, wähle (3 = cylindrical) aus und danach als HVOF = 360. Dann rechnet er und am Ende erstellt er das Panorama, das ihr im Chrome sieht.

    Was mache ich falsch? Ich hätte einen flachen Horizont erwartet *smile*


    Danke und viele Grüße,
    Sven

  • Hi,

    ich glaube, dass die Frage Richtung Projektionsart geht. Ich habe das Panorama in PTGui erstellt und dort Zylinderprojektion ausgewählt. Ich habe dort die Bereiche definiert, die den Horizont bilden. Wisst ihr, welche Zylinderprojektion sowohl PTGui als auch krpano verwendet? Nicht dass zum Beispiel PTGui die Mercatorprojektion verwendet und dann krpano die inverse Millerprojektion.

    Ok, Miller- und Mercatorprojektion verzerrt ja nicht die Breitengrade. Aber das sollte nur ein Beispiel sein.


    Danke nochmal!

  • Hi,

    das hat mit dem Horizont zu tun - wenn dieser nicht in der Bildmitte des Panoramabildes liegt, dann muss der 3D-Zylinder (mit welchem das Zylinder-Panorama interaktiv darstellt wird) entsprechend nach oben oder unten verschoben werden, damit in der finalen Darstellung der Horizont wieder in der Bildmitte liegt - dann stimmt dann auch die 3D Projektion wieder.

    Diese Verschiebung bzw. dieser Versatz wird in der XML per 'voffset' Parameter festgelegt:
    https://krpano.com/docu/xml/#image.voffset

    und kann bei Kenntnis der Blickwinkel (z.B. vom Stitcher) errechnet werden (siehe den Link oben) oder auch durch Probieren herausgefunden werden. Beim Probieren sollten die Sichtbeschränkungen mittels <view ... limitview="off" /> deaktiviert sein.

    Mit dem Options Plugin kann der voffset Wert auch interaktiv verändert werden - versuche dies z.B. in diesem Beispiel (voffset-Slider):
    https://krpano.com/examples/118/e…ns-plugins.html

    Schöne Grüße,
    Klaus

  • Hi Klaus,

    danke für deine Antwort :-). Das mit dem voffset kannte ich nicht. Aber ich habe noch eine Verständnisfrage: da es ja keine Rückprojektion wieder auf eine Kugel gibt, sondern das Ding auf einem 3D Zylinder als Textur gemappt wird: wieso hat das voffset diesen Effekt? Bei einem Zylinderpanorama hätte ich mir das so vorgestellt, dass ich ich damit die Kamera einfach auf der z-Achse nach oben und nach unten fahre. Wie kommt es denn da zu Verzerrungen von horizontalen Linien? Oder liegt es an der Brennweite, mit der ich auf den Zylinder schaue?

    Mir fehlt es hier noch an Vorstellungskraft.

    Danke dir nochmal für deine Hilfe.


    Viele Grüße,
    Sven

  • Hi,

    ob die Kamera selbst oder 3D Objekt selbst nach oben oder unten fährt ist egal, der Effekt ist derselbe, es kommt auf den relativen Versatz an.

    Zu den Verzerrungen kommt aus aufgrund der 3D Perspektive, aber das ist etwas ganz normales...

    Vielleicht hilft folgendes zur Vorstellung:
    - nimm ein A3 Blatt und halte es quer
    - zeichne eine horizontale Linie in die Mitte über die ganze Länge
    - rolle als Blatt etwas ein (zu einem halbem Zylinder) und halte es direkt vor bzw. ums Gesicht (;-))
    - bewege das Blatt auf und ab und betrachte die Linie

    und/oder auch in diesem Link mit dem voffset-Slider spielen:
    https://krpano.com/examples/118/e…ns-plugins.html

    Schöne Grüße,
    Klaus

  • Hi Klaus,

    danke nochmal für dein Experiment :-). Habe gerade kein DIN A3 Papier da, aber werde es durchführen.

    Eine Frage habe ich noch: sehe ich es richtig, dass ich im HTML5 Modus (CUBE) nicht voffset setzen kann? Das ist laut Online-Doku nur im SPHERE/CYLINDER Modus möglich. Dort klappt das perfekt *smile*

    Heißt das, dass iOS User die Panoramen nicht sehen können? Was habe ich (außer das Panorama händisch so zu trimmen, dass der Horizont in der Mitte ist) noch für Möglichkeiten?

    Danke dir und viele Grüße,
    Sven

  • Noch eine blöde Frage:

    der voffset Parameter wird nicht gesetzt, wenn ich diesen über das Configfile oder die Kommandozeile direkt übergebe. Im folgenden Beispiel

    /Applications/krpano/krpanotools makepano -config=/Applications/krpano/templates/ZIIN.config Cylindrical_360_Small.jpg -panotype=cylinder -hfov=360 -vfov=auto -voffset=-15.7 kommt im XML File nichts an:


    Code
    <image type="CYLINDER" multires="true" tilesize="512" progressive="true">


    Auch der Parameter alleine ohne hfov und vfov führt zu keinem Eintrag. Erst wenn ich hfov von 360 Grad ändere, z.B. auf 180, dann bekomme ich den Eintrag

    Code
    <image type="CYLINDER" hfov="180.00" vfov="46.148006" voffset="-15.70" multires="true" tilesize="512" progressive="true">


    An was liegt das denn? Was mach ich falsch?

    Danke!

  • Hi,

    sorry, ehrlich gesagt bin ich aktuell überfragt, eigentlich müsste das funktionieren...

    Kannst du einen Link zu deinem Beispiel posten?
    Das Ändern des voffset Werts in der XML sollte sich definitiv auswirken.

    Schöne Grüße,
    Klaus

  • Hi Klaus,

    sorry für die späte Antwort. Das direkte Ändern des Offsets im XML funktioniert. Es kommt bloß nicht über das Config-File oder die Parameter im Kommandozeilenauruf an, wenn das horizontale Blickfeld gleich 360 ist :-(.

    Ich habe dir mal das Ergebnis unter

    Code
    http://svenflock.de/Cylindrical_360_Small.html


    hochgeladen.

    Das Panorama habe ich mit folgendem Aufruf unter Mac OS X 10.10.3 und krpano 1.18 erstellt:

    Code
    /Applications/krpano/krpanotools makepano -config=/Applications/krpano/templates/ZIIN.config Cylindrical_360_Small.jpg -panotype=cylinder -hfov=360 -vfov=auto -voffset=-15.7


    Die verwendete ZIIN Config und das Inputbild findest du unter

    Code
    http://svenflock.de/ZIIN.config



    bzw.


    Code
    http://svenflock.de/Cylindrical_360_Small.jpg

    Das XML File erhält für den obigen Aufruf folgende Attribute im Image-Tag:

    Code
    <image type="CYLINDER" multires="true" tilesize="512" progressive="true"> ... </image>


    Das gleiche kommt auch raus, wenn ich statt den Parametern im Kommandozeilenaufruf die drei Stück in die ZIIN.config schreibe. Erst wenn ich einen Wert kleiner als 360 Grad nehme, kommt es im Image-Tag an.

    Beispiel:

    Code
    /Applications/krpano/krpanotools makepano -config=/Applications/krpano/templates/ZIIN.config Cylindrical_360_Small.jpg -panotype=cylinder -hfov=359 -vfov=auto -voffset=-15.7

    ergibt im Image-Tag:

    Code
    <image type="CYLINDER" hfov="359.00" vfov="80.704671" voffset="-15.70" multires="true" tilesize="512" progressive="true">

    Kannst du das bei dir mal ausprobieren?

    Danke dir vielmals!

    Noch eine Frage: der voffset funktioniert mit HTML5, oder? Ich musste explizit CYLINDER definieren. Gibt es eine HTML5 Methode dafür?


    Viele Grüße,
    Sven

  • Hi,

    nein, sorry, hatte noch keine Gelegenheit.

    Mit komischen Effekt meinst du das Durchschleifen des Parameters in die XML oder etwas bezüglich der Darstellung?

    Bzgl. HTML5 und voffset - in HTML5 werden aktuell noch keine Multires-Cylinder oder Sphere-Panoramen unterstützt - nur Würfel und Flat-Panoramen. Ohne Multires und sofern WebGL unterstützt und verwendet (bzgl. prefer+css3d) ist es aber auch möglich Cylinder und Sphere Bilder zu verwenden - und dort sollte voffset auch funktionieren.

    Schöne Grüße,
    Klaus

  • Hi Klaus,

    ich meine mit dem komischen Verhalten, dass der Paramter, den ich per config oder Skriptaufruf setze, nicht im XML auftaucht. Kannst du das bei dir reproduzieren? Ich habe es mit 1.17, 1.18 und 1.19 pre2 auf drei verschiedenen Macs probiert, immer das gleiche Verhalten.


    Viele Grüße,
    Sven

  • Hi Klaus,

    hattest du schon Gelegenheit, dir das anzuschauen? Mein letzter Ausweg wäre dann händisch bei jedem meiner 150 Panoramen das in das XML Element einzutragen, was ich aber bei der Menge gerne vermeiden würde.

    Konntest du es reproduzieren?


    Danke dir und viele Grüße,
    Sven

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!