In den letzten Tagen habe ich krpano intensiv ausprobiert und stieß natürlich auf so einiges, was mir unklar war.
Ich hatte deshalb eine rege Mail-Korrespondez mit Klaus, dem Krpano Entwickler, der mir geduldig meine vielen Fragen beantwortet hat.
Irgendwann meinte Klaus, daß so manches Thema wohl sicherlich auch für andere interessant und vielleicht im Forum besser untergebracht wäre.
Ich habe daher (in Absprache) versucht, aus den Mails eine Art Mini-FAQ zu 'extrahieren' und hier zu posten.
Das ist nun doch recht umfangreich geworden. Ich hoffe aber, die geduldigen Antworten, mit der Klaus mir weitergeholfen hat, nützen damit auch anderen.
Vielleicht kommt von euch ja noch dieses oder jenes hinzu?Saludos,
Klaus
-----------------------------------------------------------------------------------------
Frage:Es besteht ja die Möglichkeit der Parameterübergabe durch einen entsprechenden 'formulierten' Link (http-get).
Faszinierend, wie man damit quasi "fernsteuern" und z.B. auch versch. fisheye-Werte "übergeben" kann.
Aber-, ist das auch irgendwie zu verhindern?
Ich möchte vielleicht nicht immer, das quasi "jeder" von außerhalb durch entsprechend abgeänderte Links mit meinem Pano "rumspielen" kann.
Das wäre es schön, wenn xml-Parameter nicht zu "überstimmen" wären, bzw. gar keine "externe" Parameterübergabe erlaubt wäre.
Antwort:Ich schreibe gerade auch einem Tool zum Anpassen der SWF Datei selber:
damit wird ist es möglich sein:
- die Lizenz-Datei direkt in die SWF Datei einzubetten,
- das XML mit einzubetten,
- die Bilder zu verschlüsseln, wobei der Schlüssel wiederum selber in der SWF gespeichert ist,
- die Bilder ebenfalls ins SWF einzubetten (erst mit der übernächsten Version)
- das SWF auf bestimmte Domains zu begrenzen,
- optional ein "Enddatum" einstellen, wie lange das Panorama funktionieren soll
- dort läßt sich dann auch einstellen ob externe Parameter erlaubt sind
Das Tool ist schon zu 95% fertig, es fehlen nur mehr Kleinigkeiten.
-----------------------------------------------------------------------------------------
Frage:Wird das, wie die anderen Tools, im Voll-Paket enthalten sein?
Antwort:Die weiteren Tools werden alle mit der Tools-Lizenz funktionieren (welche im Voll-Paket bereits inkludiert ist)
-----------------------------------------------------------------------------------------
Frage:Bisher haben mich die welligen Verzeichnungen in deinen Beispielen gestört.
Ich habe auch schon im Editor die Details auf z.b. 22-25 erhöht. Die Wellen bleiben.
Antwort:Das ist leider das Problem mit Flash, echte 3D Darstellung ist momentan damit noch nicht möglich,
deshalb muss das Bild intern in viele kleine 2D Dreiecke zerlegt werden um die 3D Darstellung nachzustellen.
Und je mehr Dreiecke desto genauer ist die Darstellung, aber leider auch desto langsamer.
Es muss also versucht werden einen Kompromiss zwischen Genauigkeit und Geschwindigkeit zu finden.
In Anzahl der Dreiecke kann mit dem "Details" Parameter im XML beeinflusst werden.
Weiters gibt es noch den "tessmode" Parameter (0-5), dieser gibt die Anordnung der Dreiecke an.
Es kann sein, dass ein anderer "tessmode" besser auf das Panoramamotiv passt.
Es macht auch einen Unterscheid ob Sphärische oder Cubische Panoramen verwendet werden.
Frage:Vielleicht wird das ja mit zukünftigen Versionen noch besser?
Antwort:Ich teste bereits verschiedenes,
vielleicht kann ich in der nächsten Version schon eine Verbesserung anbieten.
-----------------------------------------------------------------------------------------
Frage:Ich verstehe nicht so recht, was mit Fischauge-Effekt gemeint ist..
Antwort:Wenn du zb. aus einem Panorama weiter herauszoomst, beginnt sich bei den meisten Viewern das Bild bereits sehr stark
und unnatürlich zu verzerren, ich hab eine Art Fischaugen-Verzerrung eingebaut, die das verhindern soll;
besonders in Panoramen von kleinen, engen Räumen sollte sich das positiv bemerkbar machen.
-----------------------------------------------------------------------------------------
Frage:Mir ist der Zusammenhang zwischen FOV, Fisheye und FisheyeFovLink noch nicht so ganz klar.
Antwort:FOV
- der Blinkwinkel in Grad - 0-180°
Fisheye
- die Stärke des Fischaugeneffekts 0 - 1
FisheyeFovLink
- gibt an wie stark sich der bei "Fisheye" eingestellt Wert in Abhängigkeit vom Blickwinkel auswirkt,
- 0 = keine Abhängigkeit, es wirkt immer der bei "Fisheye" eingestellte Wert
- 0-n = je höher der Wert desto später (höhere FOV) wirkt der "Fisheye" Wert
Zusätzlich gibt es noch das Flag "limitfov"
- true oder false
- damit wird der Blickwinkel (FOV) automatisch begrenzt um nicht den "Rand" des Fischauges zu sehen
(schwarzer Rand wenn 180° überschritten wurden)
Frage: Was "fisheyefovlink" nun genau bewirkt, ist mir immer noch nicht so ganz einleuchtend.....
Antwort:das Beispiel
fisheye="0.35" und fisheyefovlink="3.0"
ergibt dann bis ca. 120/130° Blickwinkel keinen Fischaugeneffekt,
und ab dort wird dieser mit größerem Blickwinkel immer stärker.
Frage:Gibt es da so etwas wie einen "Umrechnungsfaktor" für fovlink?
Antwort:Ja, gibt es im Prinzip :-)
Mit dieser Formel wird der entgültige Fisheye-Effekt berechnet der angewendet werden soll:
fisheye_effective = fisheye * sin( (fov/180) ^ fisheyefovlink) * PI * 0.5 )
Die Formel ist aber willkürlich gewählt, es soll eine optische sanfte Kurve ergeben.
Je höher "fisheyefovlink2 desto später (höherer "fov") wird "fisheye" größer.
alles klar? *ggg* ;-)
Frage:Ok, Ok ! :-)
Das muß ich dann wohl mal in der Praxis mit unterschiedlichen Werten testen....
Antwort:Am besten über das Options-Plugin die besten Werte ermitteln ;-)
-----------------------------------------------------------------------------------------
Frage:Ist es möglich, das "Durchfahren/Durchdrehen" von Zenith/Nadir zu unterbinden?
Antwort:Ja, das ist möglich, einfach mit XML folgendes angeben (allerdings erst ab der Version 1.1)
<view limitview="lookat" vlookatmin="-90" vlookatmax="+90" />
-----------------------------------------------------------------------------------------
Frage:Ist eine "Initial-Motion", also eine kurze, definierte Bewegung (Fahrt) von einem Startpunkt zu einem Endpunkt bei Pano-Start möglich?
Antwort:Ja, das ist ebenfalls möglich, in der XML Dabei gibt es dafür den "onstart" Parameter für den <krpano> Knoten:
z.B:
<krpano onstart="lookto(150,10,130);">
...
die Möglichen Befehle dafür und die Syntax derer sind hier dokumentiert:
http://www.krpano.com/docu/actions/Frage:Danke, hab's nach einigem Rumprobieren hinbekommen.
Wie kann ich denn erreichen, daß die 'Fahrt' erst startet, wenn das Pano vollständig geladen ist?
Antwort:Durch die Angabe von 'Wait (mit Argument)' für das event 'onload'.
Das sieht dann so aus:
<krpano version="1.0" onstart="wait(load); lookto (180,-90,90,smooth(10,50,20));">
-----------------------------------------------------------------------------------------
Frage:Ein "Sound-plugin" wie in einer Demo entdeckt, wird es dann auch "serienmäßig" geben?
Antwort:das "Sound"-plugin wird es natürlich ebenfalls mit der 1.1 Version geben,
momentan ist das Interface dafür aber noch nicht fertig.
-----------------------------------------------------------------------------------------
Frage:Um krpano korrekt mit FPP vergleichen zu können, las ich folgende empfohlende Einstellung:
<display fps="40" details="20" tessmode="1" />
<view ... fisheye="0" />
<image type="CUBE" tilesize="2880" ... > .... </image>
Die Angabe "Tilesize" ist mir da aber nicht ganz klar.
Ich arbeite meist mit equis 5000x2500. Die optimale Cubesize (ist das bei dir =tilesize ?) wäre da: 5000 ./. pi = ~1591
Wenn ich einen größeren tilesize-Wert einstelle, müsste das Bild also quasi vergrößert (bzw. bei kleinerer tilesize verkleinert) werden ?
Was, wenn ich gar keine Tilesize angebe ?
Antwort:Bei krpano werden die Panoramabilder intern in kleine Stücke (=Tiles) aufgeteilt, auch wenn das Originalbild gar nicht geteilt ist.
Das hat 2 Gründe:
1. Flash hat intern ein Limit von 2880x2880 Pixel pro Bild, wenn diese Größe also erreicht wird, muss das Bild
so oder so irgendwie aufgeteilt werden um überhaupt dargestellt werden zu können.
(Der FPP z.B. verkleinert glaub ich Bilder die größer sind als 2880 Pixel auf 2880 Pixel)
2. und kleinere Bilder passen besser in den Cache-Speicher und sind vom Prozessor schneller zu verarbeiten.
Wenn das Originalpanoramabild also nicht geteilt ist und keine tilesize angegeben ist, wird diese automatisch
berechnet, es wird dabei versucht eine Größe zwischen 512 und 1024 Pixel pro Tile zu erreichen.
Das ergibt dann einen Speicherbedarf zwischen 1MB (=512*512*4) und 4MB (=1024*1024*4) pro Tile. (1Pixel=4byte)
Und sollte dem Prozessor/Cache beim Zeichnen etwas helfen.
z.B.
bei 5000x2500 würde automatisch 625 als tilesize berechnet werden (sind dann 8x4 Teile in einer Größe von 625x625)
Du könntest aber auch tilesize="500" angeben, dann wären es intern 10x5 Teile mit 500x500.
Vergrößert oder Verkleinert wird das Originalbild in keinem Fall. Alle Pixel bleiben immer erhalten!
Durch dieses Aufteilen aber kann es sein das mehr Dreiecke benötigt werden, oder diese anders aufgeteilt sind
als beim FPP, deshalb die Angabe tilesize="2880" um dieselbe Ausgabe zu erzwingen wie der FPP.
Wenn die tilesize größer als das Originalbild ist, erfolgt intern nämlich keine Aufteilung.
Die "tilesize" funktioniert bei sphärische und cubischen Panoramen gleich. Es geht nur um die interne Aufteilungen.
Außer deine Bilder sind schon im vorherein aufgeteilt, z.B. bei tiled="true" oder bei Multiresoultion Panoramen (multires="true"),
dann MUSS die tilesize angegeben werden.
-----------------------------------------------------------------------------------------
Frage:Mir ist der Unterschied zwischen den Actions "lookto" und "moveto" nicht ganz klar.
Ich sehe nur einen Unterschied in der Bewegungs-Geschwindigkeit, welche (mit gleichen Werten) enorm unterschiedlich ist.
Antwort:lookto(h,v,f,t) - hat 4 Parameter:
- h,v für die Zielposition
- f für den Zielblickwinkel
- t für die Art/Geschwindigkeit der Bewegung, dort könntest du auch z.b.
"linear(20)" für eine gleichmäßige Bewegung angeben, und später wird es
dort vielleicht noch andere Bewegungstypen geben.
moveto(h,v,t) - hat dagegeben nur 3 Parameter, der Blickwinkel bleibt
dabei gleich.
Wenn du jetzt "moveto" mit den 4 Parametern von "lookto" aufrufst wird
"f" als die Art/Geschwindigkeit der Bewegung interpretiert, was
allerdings nicht möglich ist und so der Defaultwert genommen.
Und dann gäbe es noch "zoomto", um nur den Blickwinkel zu ändern,
siehe hier:
http://www.krpano.com/docu/actions/#lookto-----------------------------------------------------------------------------------------
Frage:Mit den actions "lookto" und "moveto" habe ich experimentiert. Das klappt auch prima, bis auf ein kleines Problem mit den vertikalen Angaben.
Die Angabe (180,-90,) bedeutet doch wohl: horizontal 180°, vertikal -90°; also Blick senkrecht nach unten.
In meinem Fall schaue ich aber am Ende der Bewegung nach oben! Das wäre nach meinem Verständnis toV(90). Ich wollte aber ToV(-90)erreichen.
Woran liegt das?
Antwort:siehe hier: (ganz unten "das Koordinatensystem")
http://www.krpano.com/docu/panoformats/Ich komme aus der 3D Grafikprogrammierung, und dort ist bei Winkelangaben
oft dieses Koordinatensystem üblich: '-' = oben, '+' = unten.
-----------------------------------------------------------------------------------------
Frage:In einem Beispiel schaue ich zum Start einer definierten Bewegung geradeaus Richtung 0° (<view hlookat="0.0000" vlookat="0.0000" ....).
Gebe ich für "lookto" einen "toH" Wert ein, so dreht sich das Pano offensichtlich auf "kürzester Distanz" dorthin ?
Antwort:Richtig!
Frage:D.h.: toH(170) entspricht einer Rechtsdrehung; toH(190) = Linksdrehung ?
Antwort:Wieder Richtig! ;-)
Frage:Soweit, so gut. Ist es dennoch möglich, bei Angabe von toH(270) eine Rechtsdrehung (also eine 3/4 Drehung) zu "erzwingen"?
Antwort:Ja, in der jetzigen Version (1.02) ist das noch nicht möglich, aber
ich habe das bereits geändert. In der Version 1.1. wird ein "wrap-around" vorausichtlich möglich sein.
Siehe auch hier: (ganz unten 'das Koordinatensystem')
http://www.krpano.com/docu/panoformats/-----------------------------------------------------------------------------------------
Frage:Wie kann ich eine Autorotation (autopan) realisieren?
Wird auch Auto-Horizont oder attractive Horizont
(oder wie auch immer das "Zurückkehren" zum Horizont heißt) möglich sein?
Antwort:ab der 1.1 wird es ein "autorotate" tag im XML geben:
<autorotate enabled="true"
waittime="0.0"
speed="0.2"
horizon="0"
horizonspeed="0.1"
/>
horizon .. gibt den Horizont an (0=Mitte)
horizonspeed ... die Geschindigkeit mit der sich darauf zubewegt wird
(das kann sich in der fertigen 1.1 Version aber noch etwas ändern)
-----------------------------------------------------------------------------------------
Frage:Movequality Einstellung gibts nur low oder high; könnte man da nicht eine Skala von 1-50 machen?
Antwort:Bei "Movequality" LOW und HIGH wird momentan nur die Texture-Filterung und das Antialiasing aus- bzw. eingeschaltet.
Es wäre natürlich noch denkbar, für die interne 3D Geometrie ebenfalls eine Art Movequality einzustellen.
Werde das in meine TODO Liste aufnehmen.
-----------------------------------------------------------------------------------------
Frage:Wird krpano irgendwann auch QTVR (*.mov files) darstellen können?
Antwort:QTVR (.mov) ist geplant. Das kann allerdings noch etwas dauern.
-----------------------------------------------------------------------------------------
Edit 15.05.08 - Nachträge, Ergänzungen zu:
Wellige Verzeichnung, Fischaugen-Efekt, QTVR (.mov) Unterstützung, movequality