Inverses Panorama oder Objektpanorama

Geschrieben von Paul Bourke
November 2018


Zylindrische Panoramen sind bekannt und werden häufig verwendet, um ein begrenztes vertikales Sichtfeld, aber volle 360 ​​Grad horizontal zu erfassen. Sie werden normalerweise durch Drehen einer Kamera um einen einzelnen Punkt gebildet. Während die praktische Methode variieren kann, erfasst konzeptionell jede Kameraposition einen schmalen vertikalen Schlitz, alle Schlitze sind nacheinander ausgerichtet.

Hier stelle ich Objektpanoramen vor, oder weil sie als traditionelle Panoramaaufnahme betrachtet werden können, aber invertierte, inverse Panoramen. Insbesondere haben wir hier anstelle einer zentralen Kamera und einer externen Szene eine Kamera, die sich um ein Objekt bewegt und nach innen schaut. Eine Möglichkeit, solche Objektpanoramen zu erstellen, besteht darin, eine Perspektive oder ein orthografisches Bild aufzunehmen, während sich das Objekt dreht. Ein einzelner vertikaler Spalt von jeder Fotografie kann nebeneinander angeordnet werden, um ein kontinuierliches Bild zu erzeugen (unter der Annahme einer korrekten Spaltbreite). Dies ist im Wesentlichen dasselbe wie bei einem sogenannten Schlitz-Scan-Foto.

Eine andere Möglichkeit, dies anzuzeigen, ist das Rendern mit mehreren Perspektiven. Jedes Pixel im Bild entspricht einer Kameraposition, bei einem zylindrischen Objektpanorama sind alle Kameras (eine für jedes Pixel) horizontal und auf eine Mittelachsenlinie gerichtet.

In den hier gezeigten Beispielen wird ein 3D-Strukturmodell verwendet, um das Ergebnis zu demonstrieren. Es können jedoch reale Objekte verwendet werden, indem sie auf einen motorisierten Plattenteller gelegt und mit einer Videokamera gefilmt werden, gefolgt von der oben beschriebenen Schlitzabtastung für jedes Bild des Videos.


Diotima-Statue, Universität von Westaustralien

Wie herkömmliche Panoramen werden diese auch um 360 Grad gewickelt, der linke Rand grenzt an den rechten Rand.


Löwenstatuen vor dem Duxton Hotel in Perth

Die hier erstellten Bilder waren der eigene Code des Autors, der für jedes Pixel im Ausgabebild den entsprechenden Strahl berechnet (Position und Richtung). Dieser Strahl wird dann mit allen Dreiecken im Modell (OBJ-Datei) geschnitten. Sobald der nächstgelegene (erste) Schnittpunkt bestimmt ist, wird die Farbe anhand der UV-Koordinaten und des Texturbilds gesucht.

Die neue (und aufregende) „mesh_camera“ in PovRay kann verwendet werden, um dasselbe zu erreichen. Mit dieser Kamera kann man die Position des Kamerastrahls vorgeben, wenn das Dreieck in einem Netz liegt {}, die Richtung des Strahls wird durch die Normale bestimmt (daher müssen alle Dreiecke konsistent geordnet werden), obwohl der Strahl mit dem Vorzeichen des z gespiegelt werden kann in der Richtungsrichtlinie koordinieren.

object { 
   #include "teresa.inc"
}
camera {
   mesh_camera {
      1
      0
      #include "themesh.inc"
   }
   location <0,0,0>
   direction <0,0,-1>
}

Mutter Teresa in der St. Mary’s Cathedral Perth

Es sollte beachtet werden, dass man sich auf der Oberfläche vorstellen könnte, dass diese mit einem standardmäßigen zylindrischen Panorama-Rendering von der Mitte des Objekts aus erstellt werden könnten. Aber in diesem Fall würde man das Innere und nicht das Äußere abbilden. Ein Unterschied sind Strukturen, die möglicherweise von außen sichtbar sind, aber von anderen Strukturen im Inneren verdeckt werden, z. B. konkaven Teilen des Modells.


Tjanpi Puppen, indigene australische Figuren


Kugelförmiges (gleichwinkliges) Panorama

Natürlich ist man nicht auf ein zylindrisches Panorama beschränkt, sondern es kann gleichermaßen ein volles gleichwinkliges Panorama erzeugt werden. Jedes Pixel entspricht einem Strahlenursprung auf einer Kugel, die Strahlenrichtung ist zur Mitte des Modells gerichtet.

Diese Modelle wurden aus 3D-Rekonstruktionen erstellt und die Basis wurde nicht geschlossen. Die hohle Natur ist die Ursache für die offensichtlichen Defekte im unteren Teil des Bildes.