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>
look_at <0,0,0> orthographic }

Alles wie in Abb. 1, nur Parallelprojektion.
Der Quader rechts unten ist nur von oben zu sehen.

(Abb. 8)

camera {location<-5,0,0>
look_at <0,0,0>
orthographic}

Blick wie in Abb.3.
Die Röhre und die Ebene sind nicht sichtbar; sie sind parallel zur Blickrichtung.

(Abb. 9)

camera {location<-5,0,0>
look_at <0,-0.1,0>
orthographic}

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:

(Abb. 10)

camera {location<0,0,0>
look_at<2,0,0> fisheye angle 30}

Blick wie bei Abb.2
Winkel 30°

(Abb. 11)

camera {location<0,0,0>
look_at<2,0,0> fisheye angle 90}

90°-Blick
Aha!

(Abb. 12)

camera {location<0,0,0>
look_at<2,0,0> fisheye angle 180}

180°: noch mehr zu sehen

 

(Abb. 13)

camera {location<0,0,0>
look_at<2,0,0> fisheye angle 360}

Ich seh alles (verzerrt), Rundumblick.

(Abb. 14)

camera {location<0,0,0>
look_at<2,0,0> fisheye angle 540}

1½ facher Rundumblick

 

Ultraweitwinkelprojektion ( ultra_wide_angle)

Ä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>
look_at<2,0,0> ultra_wide_angle}

(Abb. 16)

camera {location<0,0,0>
look_at<2,0,0> angle 160
ultra_wide_angle}

 

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>
look_at<2,0,0>
omnimax }

 

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>
look_at<2,0,0>
panoramic
angle 90 }

(Abb.19)

camera {location<0,0,0>
look_at<2,0,0> panoramic}

(Abb.20)

camera {location<0,0,0>
look_at<2,0,0>
panoramic
angle 360 }

 

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>
look_at<2,0,0>
angle 180 }

wenig verzerrt

(Abb. 22)

camera {cylinder 1 location<0,0,0>
look_at<2,0,0> }

Also bei 180° merkt man den Zylinder mehr.

(Abb. 23)

camera {cylinder 2 location<0,0,0>
look_at<2,0,0>
angle 180 }

180° Blickwinkel, Verzerrung merkbarer

(Abb. 24)

camera {cylinder 3
location<0,0,0>
look_at<2,0,0> angle 180 }

Sehr brauchbare Projektion!

(Abb. 25)

camera {cylinder 4
location<0,0,0>
look_at<2,0,0> angle 180 }

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: Gibt an, wie unscharf das Bild ist, umso höher der Wert, desto kleinere Tiefenschärfe. Vernünftiger Wert: 0,4

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>
look_at <0,0,0>
blur_samples 20
aperture 0.05
focal_point <0,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>
look_at <0,0,0>
blur_samples 20
aperture 0.4
focal_point <0,0,0>
}

Auch bei den hinteren Objekten ist Unschärfe zu erkennen.

(Abb. 28)

camera {location<-5,0,0>
look_at <0,0,0>
blur_samples 20
aperture 0.4
focal_point <-2,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>
look_at <0,0,0>
blur_samples 20
aperture 1.5
focal_point <0,0,0>}

Kugel ist wieder scharf, größere Unschärfe.

Wo ist meine Brille?