Kamera
camera { location <0, 2, -3> look_at <0, 1, 2> }
Ohne Kamera kein Bild. Daher gehört zu jeder Szene eine Kamera. Die einfachste Beschreibung einer Kamera zeigt der Code oben. Hinter dem Schlüsselwort "camera" folgt die Angabe des Ortes, wo sich die Kamera befindet und wohin sie gedreht ist. Genau dieses ist auch in den allermeisten Fällen schon ausreichend.
Was jedoch, wenn Sie ein Bild rendern wollen, welches nicht den normalen Abmessungen entspricht? Der Normale PC Monitor verwendet ein Verhältnis von 4:3 (z.B. 800x600 oder 640x480 oder 320x240 usw.). Allerdings existieren PC Systeme mit einer Auflösung von 320x200 Pixel. Werden solche Bilder mit den default Werten der Kamera gerendert, so sind die Proportionen verzerrt. Natürlich gibt es auch andere Gründe ein anderes Verhältnis zu verwenden. Der folgende Code macht genau das:
camera { location <0,0,-8>
up < 0, 1, 0>
right < 1.33, 0, 0>
look_at <0,0,0> }
Bei "up" ist der Y-Wert genau 1. Ist nun wie hier, der X-Wert von "right" 1.33, so sind die default Werte gegeben. Wird ein Bild mit diesen Werten gerendert, so muß ein Pixelverhältnis von 4:3 in der Inidatei eingestellt sein, um ein unverzerrtes Bild zu bekommen. Wird nun ein Bild mit einem Rechteckigen Format gewünscht, so ist einmal der gewünschte Pixelwert (z.B. 100x100) in der Inidatei einzustellen und zum anderen muß der X-Wert bei "right" auf 1 gesetzt werden.
Nun könnte man anfangen und sehr breite Bilder rendern, mit dem Ziel, so ein Panorama zu erzeugen. Dieses ist auf diese Weise zwar möglich, entspricht so aber nicht dem Bild einer echten Panoramakamera. Wird ein Spezielles Objektiv gewünscht, so sollte die dazugehörige Povray Kamera Verwendung finden. Für eine Panoramaaufnahme sollte daher z.B. das Schlüsselwort "panoramic" in die Kamerabeschreibung eingefügt werden.
Mit diesen Mitteln, sind wir aber immer noch nicht in der Lage eine "echte" Kamera nachzubilden. Eine wichtige Sache fehlt noch: Der Fokus. Auch das kann mit Povray erziehlt werden. Die Schlüsselwörter
focal_point
aperture
blur_samples
müssen hierzu in die Definition der Kamera eingefügt werden. Mit "focal_point" wird ein Vektor angegeben, der dem schärfsten Punkt im Bild entspricht. "aperture" verändert die Tiefenschärfe des Bildes. Ein großes "aperture" erzeugt einen sehr kleinen Schärfebereich. Der Wert sollte bei ca. 0.4 liegen. Der Wert für "blur_samples" schließlich gibt an wieviel Lichtstrahlen zum rendern eines Pixels verwendet werden sollen. Größere Werte erzeugen zwar eine höhere Qualität, jedoch dauert das rendern entsprechend lange. Ein sehr gutes Bild sollte hier einen Wert von 20 haben, jedoch werden auch schon bei 4 brauchbare Ergebnisse erzielt.
camera {
location <0,3,-10>
look_at <0,0,0>
focal_point <0,0,0>
aperture 1
blur_samples 40
}