POVRAY: Die Kamera
Bei der Kamera können Ort, Projektionsarten und andere Einstellungen definiert werden.
Der Syntax lautet:
camera
Verschiedene Projektionen
{ [perspective | orthographic | fisheye | ultra_wide_angle | omnimax | panoramic | cylinder FLOAT]
Ort, Richtung, Winkel
location<> look_at<> right<> up<> direction<> sky<> angle FLOAT normal {NORMAL}
Unschärfe
blur_samples FLOAT aperture FLOAT focal_Point<>
Bei <> wird ein Vektor eingesetzt bei FLOAT
eine Dezimalzahl.
Voreingestellt ist eine perspektivische Kamera (Zentralprojektion) mit
location <0,0,0>
und
look_at <0,0,1> .
Zur Demonstration der Kameras wird folgende Scene verwendet:
#include "colors.inc" #include "shapes.inc" #include "textures.inc"plane {y,-2 pigment{ checker color Black, color White}}
background {color Gray50}
sphere{<0,0,0>,0.5 pigment { NeonPink }} sphere {<2,1,4>,1 pigment{ color Green } } sphere {<-5,1,-5>,2 pigment{ color Pink} } sphere {<-6,0,5>,1.5 pigment{ color Blue} }
sphere {<3,0,-7>,1 pigment{ color Red} }
cylinder {<2,1,0>,<6,1,0>,0.5 open pigment{color Orange}} cylinder {<-2,-1,2>,<-2,2,2>,0.5 pigment{color Cyan}}
cone {<2,0,-3>,0.5, <2,-2,-3>,1 pigment {color Magenta}}
box {<-4,-2,-2>,<-5,0,-1> pigment{ color Blue}} box {<-6,0,0>,<-7,1,1> pigment{color Red}} box {<4,-1,2>,<6,1,3> pigment{color Yellow}} box {<6,-2,-3>,<7,2,-4> pigment{color Green}}
light_source {<0,9,0> color Gray60} light_source {<0,0,-4> color White} light_source {<0,0,4> color White} light_source {<-4,0,0> color White} light_source {<4,0,0> color White}
Diese Übersicht (Abb.1) der Scene wurde mit der Kamera
camera {location<0,15,0>
look_at <0,0,0>}
aufgenommen.
Die Kamera (Abb. 1, horizontal: X, vertikal: Z) befindet sich an der Stelle (location) <0,15,0> und ist auf den Ursprung gerichtet (look_at); das heißt, die Kamera schaut auch senkrecht auf die gekachelte Ebene mit dem Abstand 17 (die Ebene hat den y-Wert -2). Die kleine Kugel in der Mitte liegt im Ursprung.
Hier wird die Standardcamera verwendet, die "perspectivische" (perspective) Kamera, welche Zentralprojektion verwendet. Die Zentralprojektion ist auch in diesem Bild zu erkennen, zum Beispiel an dem hohen Quader rechts unten, bei dem man bereits zwei Seiten sieht, obwohl er parallel zur Kamera-Ursprungs-Achse steht.
Die zwei wichtigsten Einstellungen einer Kamera sind also:
location Ort der Kamera Voreinstellung: <0,0,0>
look_at Bildmitte (dorthin schaut die Kamera) Voreinstellung: <0,0,1>Voreinstellung bedeutet, daß dieser Wert gilt, wenn nichts angegeben wird.
Als weitere wichtige Einstellungen kommen noch hinzu:
angle
Blickwinkel der Kamera Voreinstellung: 67,2478°sky
Neigung der Kamera Voreinstellung: <0,1,0>Der Sky-Vektor gibt somit an, wo "oben" ist, bei <0,1,0> ist dies die Y-Richtung.
Die Angabe des Sky - Vektors muß vor look_at erfolgen.
Bei der "perspektivischen" Kamera sind für angle die Werte ]0..180[ erlaubt.
einige Beispiele:
(Abb. 2) camera {location<0,0,0> look_at <1,0,0> } |
(Abb. 3) camera {location<-5,0,0> look_at <0,0,0>} |
(Abb. 4) camera {location<0,0,0> look_at <1,0,0> angle 140} |
(Abb. 5)
camera {location<-5,3,1> sky <1,1,0> look_at <0,0,0>} |
(Abb. 6) camera {location<-5,1,1> sky <4,1,0> look_at <0,0,0>} |
Parallelprojektion (orthographic)
Diese Kamera hat die selben Einstelungsmöglichkeiten wie die "perspektivische"Kamera, außer dem Winkel(der Sichtbereich wird durch right und up angegeben (s.u.)). Man sieht auf den Bildern auch ungefähr denselben Bereich, solange die Objekte nicht weit entfernt sind oder parallel zur Blickrichtung sind.
einige Beispiele:
(Abb. 7)
camera {location<0,15,0>
Alles wie in Abb. 1, nur Parallelprojektion. |
(Abb. 8)
camera {location<-5,0,0> Blick wie in Abb.3. |
(Abb. 9)
camera {location<-5,0,0> Durch eine kleine Veränderung der Blickrichtung werden Röhre und Ebene wieder sichtbar. |
"Fischaugen" - Projektion (
fisheye)
Bei dieser Projektionsart erhält man ein elliptisches Bild.
Der Blickwinkel wird durch angle angegeben, er darf größer als 180° sein.
einige Beispiele:
camera {location<0,0,0>
Blick wie bei Abb.2
camera {location<0,0,0>
90°-Blick
camera {location<0,0,0>
180°: noch mehr zu sehen
camera {location<0,0,0>
Ich seh alles (verzerrt), Rundumblick.
camera {location<0,0,0>
1½ facher Rundumblick Ultraweitwinkelprojektion
(Abb. 10)
look_at<2,0,0> fisheye angle 30}
Winkel 30°(Abb. 11)
look_at<2,0,0> fisheye angle 90}
Aha!(Abb. 12)
look_at<2,0,0> fisheye angle 180}
(Abb. 13)
look_at<2,0,0> fisheye angle 360}
(Abb. 14)
look_at<2,0,0> fisheye angle 540}
Ähnlich wie "Fischauge", nur es wird auf ein Rechteck projeziert (wie beim Foto). Der Winkel muß kleiner 180° sein.
(Abb. 15)
camera {location<0,0,0> |
(Abb. 16)
camera {location<0,0,0> |
Omnimaxprojektion ( omnimax)
Diese Projektion ist eine 180 Grad Fischaugenprojektion mit einem verkleinerten Sichtwinkel in der Vertikalen. Die angle Einstellung hart keine Bedeutung. Diese Projektion wird in der Realität für Filme in kuppelförmigen Omnimax-Kinos verwendet.
(Abb.17)
camera {location<0,0,0> |
Panoramaprojektion (panoramic)
Hier wird eine zylindrische Projektion benutzt, um bei Winkeln, die größer
als 180° sind, weniger Verzerrungen zu erzeugen. Der Dokumentation nach soll diese
Projektion sich nach der angle-Einstellung für den
Sichtwinkel richten. Anscheinend hat diese Projektion noch nie etwas von diesem Wort gehört,
denn das Bild sieht bei verschiedenen angle-Werten immer
gleich aus
(Ha! Ein Fehler!).
(Abb.18)
camera {location<0,0,0> |
(Abb.19)
camera {location<0,0,0> |
(Abb.20)
camera {location<0,0,0> |
Zylindrische Projektion (cylinder)
Die Scene wird auf einen Zylinder projeziert. Es gibt 4 verschiedene Projektionszylinder zur Auswahl, sie werden mit der Zahl nach cylinder ausgewählt.
(Abb. 21)
camera {cylinder 1 location<0,0,0> wenig verzerrt |
(Abb. 22)
camera {cylinder 1 location<0,0,0> Also bei 180° merkt man den Zylinder mehr. |
(Abb. 23)
camera {cylinder 2 location<0,0,0> 180° Blickwinkel, Verzerrung merkbarer |
(Abb. 24)
camera {cylinder 3 Sehr brauchbare Projektion! |
(Abb. 25)
camera {cylinder 4 quetsch! |
Unschärfe
blur_samples: Gibt die Zahl der maximal ausgesandten Strahlen bei der Berechnung pro Pixel an, also die Genauigkeit. Hoher Wert: genauer, weicher Übergang, aber langsamer. Vernünftiger Wert: 10.
aperture:
focal_point: Gibt den Punkt an, auf den die Kamera fokusiert ist. Alle Punkte die denselben Abstand von der -Kamera, wie dieser Punkt, haben sind scharf.
(Abb. 26)
camera {location<-5,0,0> Die Unschärfe ist fast nur an den Kachelübergängen zu sehen. Die Kugel ist scharf. Blickrichtung wie bei Abb.2. |
(Abb. 27)
camera {location<-5,0,0> Auch bei den hinteren Objekten ist Unschärfe zu erkennen. |
(Abb. 28)
camera {location<-5,0,0> Die Kugel ist unscharf, da der focal_point näher an der Kamera ist, als bei Abb.27. |
(Abb. 29)
camera {location<-5,0,0> Kugel ist wieder scharf, größere Unschärfe. Wo ist meine Brille? |