| |
index
|
Quickstart in Povray
Abgesehen davon das verschiedene Progamme nach Povray exportieren (
Moray,
Blender,
Wings,
HamaPatch,
JPatch
etc. )
ist es doch manchmal von Vorteil mit einer einfachen Textdatei eine 3D-Welt zu basteln.
Ein schöner Nebeneffekt dabei ist natürlich auch das Training sich eine
solche Welt mit seinen Koordinatenpunkten nur vorzustellen, ohne das diese
auf dem Bildschirm sichtbar ist.
Da ich mit
Blender
arbeite werde ich hier nicht weiter auf die mathematische
Formbeschreibugen eingehen, da ich als GUI-Anwender leider nicht in der Lage bin Formen
mathematisch beschreiben zu können
(vielleicht werde ich ja mal genügend Zeit haben, mir dieses zueigen zu machen).
Wenn Sie mehr Interresse an Povray haben oder hier bekommen sollten, schauen Sie am besten
auf der
Homepage
von Povray vorbei.
1. Povray Editorfenster
Installation:
Laden Sie sich das Programm von der Homepage herunter
und installieren es in einen Ordner Ihrer Wahl. Zur
Zeit ist die Version Povray 3.6.1a aktuell.
Nach erfolgreicher Installation wird zur Überprüfung
der Funktionstüchtigkeit ein Testrendering durchgeführt.
Wenn dieses beendet ist schließt sich das Programm wieder.
Darauf beschränkt sich aber dieser Prozeß auch schon.
Die GUI:
Öffnen Sie nun das Programm. Sie haben nun Dieses Fenster vor sich.
Ich werde dies jetzt nicht weiter erklären, das Sie ja eh hier ein wenig
herumschnüffeln werden.

Das erste Objekt:
Kicken Sie auf New, um eine neue Datei zu erstellen.
Speichern Sie diese ersteinmal in ein Verzeichnis Ihre Wahl.
Stellen Sie 512 x 384, No AA (kein Anti Aliasing) in der Auswahl ein.
Wir erstellen zuerst eine einfache Umgebung, so das die Testrenderings ersteinmal
zügig berechnet werden können.
Schreiben Sie folgenden Text in den Editor:
#include "koord.inc"
#include "achsen.inc"
#include "farbe.inc"
global_settings { assumed_gamma 1.0 }
background { color <0.1, 0.15, 0.25> }
camera {
location <8.0, 10.0, 14.0>
look_at <0.0, 1.5, 0.0>
angle 45
//right x*512/384
}
light_source {
0*x
color rgb <1,1,1>
translate <-10, 40, 10>
}
Speichern Sie diese Datei mit der Datenamenserweiterung .pov
in ein Verzeichnis ihrer Wahl.
Laden Sie sich nun diese drei .inc
( achsen.inc,
farbe.inc und
koord.inc )
Dateien herunter und speichern diese
in das selbe Verzeichnis in der Sie diese Übungsdatei abgespeichert
haben.
Vesuchen Sie sich nicht
zu verschreiben, da Povray keine Fehler durchgehen läßt.
Falls doch einmal etwas nicht gerendert werden sollte wird in der
Message eine Entsprechende Meldung angezeigt. Dann heißt es
den Fehler suchen.
szene_1.pov
Wir können jetzt zum Test diese Szene rendern.
Dazu klicken Sie auf den Button Run.
Wenn Sie den Renderprozeßstoppen oder einer Renderpause
einlegen möchten dann klicken Sie aus Stop
(Dieser Button ist erst im Renderprozeß aktiv)
bzw. auf Pause.

Es ist nicht gerade Weltbewegend aber unbedingt schwer
war es ja auch nicht. Bei dieser Übung geht es mir nicht um
Erzeugung einer Weltbewegenden Bildes, sondern vielmehr um eine
Vorstellung der 3D-Welten zu bekommen.
Wir haben hier nun folgendes erzeugt:
global_settings:
Globale Einstellungen
background:
Hintergrund { farbe <rot, grün, blau> }
In diesem Fall ein einfarbiger dunkelblaugrauer Farbton
camera:
Kamera:
Perspektivische Kamera (Grundeinstellung)
Position der Kamera <x, y, z>
Ziel der Kamera <x, y, z>
Winkel der Kameraöffnung
Größe der Kameraansicht
light:
Lichtquelle -> Punktlicht {
Position 0.0 in der X-Achse
farbe rgb <rot, grün, blau> (Weiß)
Verschoben an Position <x, y, z>}

Testbild
Ich habe hier zur beseren Orientierung, die Koordinaten
und Achsen mal sichtbar gemacht. Es sollte Ihnen die ersten
Schritte ein wenig erleichtern (hoffe ich jedenfalls).
Der Koordinatenmittelpunkt befindet sich auf x=0, y=0, z=0.
Die Linien ensprechen jeweils eine Abstand von 1.0.
Ich habe mich hier auf die +Z Koordinate eingeschränkt, so das
Objekte im Minusbereich der Z-Achse nicht sichtbar sind.
Erstellen eines Würfels
Wir erzeugen nun einen Würfel mit einer halbtransparenten
Farbe. Schreiben Sie folgenden Text an das Ende
unserer Beispieldatei:
box {
<-1, -1, -1>
< 1, 1, 1>
texture {
pigment {
color rgbt <1, .5, 0.1, 0.3>*1.5
}
finish {
ambient 0.25
}
}
//translate y*1.0
}
Rendern Sie nun das Bild erst einmal. Falls Sie die Datei nicht gespeichert
haben kommt jetzt eine Abfrage ob Sie diese vor dem Rendern speichern
möchten.
Klicken Sie hier zuerst auf Automatisches Speichern der
Datei für die gesamte Session und dann auf Save. Damit muß
die Arbeit nicht immer wieder vor dem Render abgespeichert werden, da dies
,zumindestens bei dieser Arbeit, automatisch erledigt wird.
Lassen Sie uns nun den eben geschrieben Text des Würfels zurückkommen.
box steht für einen Würfel
Dieser besteht aus 6 Seitenflächen die im Raum definiert werden
müssen:
Diese sind hier jeweils bei -1.0 und 1.0 auf jeder Achse
positioniert. Also jewiels einer bei
x = -1 und x = 1 <-1, -1, -1> <1, 1, 1>
y = -1 und y = 1 <-1, -1, -1> <1, 1, 1>
z = -1 und z = 1 <-1, -1, -1> <1, 1, 1>
texture ist der Container für
pigment u. finish
pigment beschreibt die Farbeigenschaften
color Farbe
rgbt rot, grün, blau, transparenz
<1, .5, 0.1, 0.3>*1.5 Farbanteile u. Transparenz x 1.5
finish beschreibt die Oberflächeneigenschaften
ambient Eigenleuchten des Objektes
//translate Verschieben des Objektes
// Zeile wird von Povray beim auswerten nicht mit
berücksichtigt.
y*1.0 Verschieben auf der Y-Achse um 1.0
Objekt Positionieren
Lassen Sie uns nun die Flächen der Z-Achse anders positionieren
um den Würfel um 1.0 über dem Boden zu haben.
Ersetzen Sie nun die bestehenden Werte der Z-Achse:
<-1, -1, -1> <1, 1, 1>
durch diese:
<-1, 1, -1> <1, 3, 1>
Wenn Sie es nun Rendern erhalten Sie dieses Bild.
Wie Sie sehen
befindet sich der Würfel um 1.0 über dem Boden.
Wir setzen jetzt den Würfel direkt auf den Boden, so können
Sie die folgenden Bewegungen besser nachvollziehen.
Setzen Sie die Werte wieder auf je -1 und 1 zurück.
So das nun wieder dieses stehen haben:
<-1, -1, -1> <1, 1, 1>
Wir Verschieben jetzt denWürfel mit translate um
1.0 in der Z-Achse.
Löschen Sie dazu bitte die beiden Schrägstriche // vor translate.
Damit bezieht nun Povray diese Zeile für die Bildberechnung wieder mit ein.
Der Mittepunk de Würfels befindet sich nun an Position x=0, y=1, z=0.
Bibliothek erstellen
Wir wollen nun mehrere Würfel in dieser Szene unterbringen und
diese jeweils unterschiedlich Skalieren. Dazu legen wir uns ein
Bibliotheks-Objekt an, welches wir als Grundlage für die anderen
verwenden werden.
Zumindestens ist es von Vorteil, da sich ja bei den weiteren Objekten
ebenfalls um Kubusformen handel wird, ein Referenz-Objekt zu haben.
Überschreiben Sie nun den Eintrag für die box mit folgenden
Text:
#declare newBox=
box {
<-1, -1, -1>
< 1, 1, 1>
texture {
pigment { color rgbt <1, .5, 0.1, 0.3>*1.5 }
finish { ambient 0.25 }
}
}
box { newBox translate y*1 }
box { newBox
scale <3.0, 2.0, 0.0>
//scale 3*x+2*y // Alternative Wertangabe
translate <-5,2,0>
}
Wie Sie sehen habe ich hier darauf verzichtet die Bibo-Box
zu verschieben, da sich mit dieser Grundeinstellung besser
arbeiten läßt. Denn sonst müßte dieser
Wert immer berücksichtigung bei den Wertangaben finden.
Die erste box verwendet alle Eigenschaften und Werte von der
#declare Box.
Die zweite wurde zuerst in der X-Achse um 3.0
und in der Y-Achse um 2.0 skaliert und erst
dann an Position -5.0 entlang der X-Achse und
um 2.0 entlang der Y-Achse verschoben.
Dies hat natürlich seinen Grund. Setzen Sie um diesen
Grund zu erfahren, die translate Zeile über die
scale Zeile und Rendern es dann.
Sie werden nun sehen das der zweite verschwunden ist. Na dann
schauen Sie mal hinter die rechte Wand. Tragen Sie dazu bei
camera unter location u. look_at diese Werte
ein.
location <-10.0, 10.0, 14.0>
look_at <-14.0, 1.5, 0.0>
Um translation vor scale zu verwenden benötigen
Sie diese Werte:
translate <-1.65,1.0,0>
scale <3.0, 2.0, 0.0>
Spätestens hier bemerken wir das es Povray sehr genau nimmt
wann, wo und was wir scheinbar wollen.
Ich habe Ihnen unter scale auch eine andere Möglichkeit notiert.
Mit dieser können Sie diese Angaben auch vornehmen, da es ja
dasselbe aussagt.
scale 3*x+2*y
|
|