Home
- POV-Ray Tutorials
POV-Ray Einführung
INHALT - INDEX
1. Arbeiten mit POV-Ray:
"Insert Menu Add-on".
2. Grundsätzliches zum
Erstellen von Szenentexten.
Räumliche Koordinaten,
Zahlen und Vektoren
3. Szenen-Aufbau
Ein Grundbeispiel.
4. Header einer Szene,
#include-Dateien
camera, light_source.
5. Geometrische Grundobjekte
sphere, box, cylinder,
cone, torus, plane.
und andere Körper
6. Transformationen
Streckung, Drehung,
Verschiebung u. andere.
CSG: union,
difference, intersection.
7. Farben und Oberflächen
texture, pigment, normal, finish
8. #declare, #local, #macro,
Platzhalter, flexible Objekte.
9. #while Schleifen
Grundbeispiele.
>10. #include, Include-Dateien.
Wiederverwendbare Objekte.
11. Rationelles Arbeiten,
Geschwindigkeit, Flexibilität,
modulares Arbeiten
Anpassung v. 3.1 auf 3.5/3.6
Anpassung v. 3.5/3.6 auf 3.7
POV-Ray + Windows Vista.
- Insert Menu Add-on
& Download
|
#include "MyObject.inc"
- Fertig-Objekte zur mehrmaligen Verwendung!
Ein einmal konstruiertes Objekt kann man als gebrauchsfertiges Objekt in einer eigenen Include-Datei speichern.
Mit dieser Methode kann man Objekte später in jeder anderen Szene erneut verwenden, ohne
die gesamte Definition noch einmal schreiben oder kopieren zu müssen!
Die Aufspaltung größerer Szenen in kleinere Bestandteile durch die Verwendung von Include-Dateien ist
eine elementare Technik des modularen Arbeitens -
ohne diese Technik ist es nahezu unmöglich wirklich große und komplexe Projekte zu verwirklichen.
|
Beipielobjekt:
Zu erst definieren wie ein Objekt 'Column_1' als Makro:
//----------------- macro Column_1(...)
#macro Column_1( H_C, // column height
R_B, // base radius
R_min,// border radius
T_S, // top scale
) //---------------------
union{
cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
torus{ R_B,R_min translate<0,R_min,0>}
torus{ R_B*T_S,R_min*T_S
translate<0,H_C-R_min*T_S,0>}
}// end Column
#end //------------------- end of macro |
Erstellung einer Include-Datei:
Für eine Include-Datei eines einzelnen Objekts
sollte man den Namen der Include-Datei
entsprechend dem Namen des Objekts wählen!
Zu Namenswahl siehe meine Hinweise bei "#declare"!
Hier erstellen wir eine Datei 'Column_1.inc':
// POV-Ray include file "Column_1.inc"
//-------------------------------------
#ifndef( Column_1_Inc_Temp)
#declare Column_1_Inc_Temp = version;
#version 3.6;
//-------------------------------------
#macro Column_1( H_C, // column height
R_B, // base radius
R_min,// border radius
T_S, // top scale
) //--------------------
//-------------------------------------
union{
cone{ <0,0,0>,R_B,<0,H_C,0>,R_B*T_S}
torus{ R_B,R_min translate<0,R_min,0>}
torus{ R_B*T_S,R_min*T_S
translate<0,H_C-R_min*T_S,0>}
}// end Column
#end// ------------------- end of macro
//-------------------------------------
#version Column_1_Inc_Temp;
#end
// ---------------- end of include file |
Wohin mit der Include-Datei?
Diese Datei müssen wir entweder im gleichen Verzeichnis wie unsere Szenendatei (Extension'.pov') speichern,
oder in einem Include-Dateien-Verzeichnis, das in den Include-Dateien-Pfaden (Library_Path)
von POV-Ray verfügbar ist.
|
Das Makro Column_1( ... ) aufgerufen durch:
object{Column_1(3.5, // height
0.5, // base r
0.06,// border r
0.75,// top scale
) //---------------
texture{
pigment{color rgb<1,0.9,0.8>}
normal{ bumps 0.5 scale 0.01}
finish{ phong 0.1 }
} // end texture
translate<0,0,0>
} //-------------------------- |
Anmerkung: Die roten Teile des Include-Dateien-Textes
wurden hinzugefügt um zu vermeiden, dass das selbe Objekt nicht erneut deklariert wird,
wenn es bereits einmal eingefügt wurde.
Zudem wechselt dieser Teil die aktuell verwendete
Version von POV-Ray zurück in diejenige Version, für die diese Include-Datei geschrieben wurde,
auch wenn wir eines Tages eine neuere Version in Gebrauch haben. |
Anmerkung: Wenn wir eine Include-Datei mit dem Befehl #include "MyObject.inc",
einfügen, so wird der Text dieser Include-Datei von POV-Ray Zeichen für Zeichen
genau anstelle des Befehls während dem Parsen eingefügt.
Dies muss immer vor der Stelle passieren, an der wir das Objekt dieser Include-Datei verwenden.
Definiert der Text der Include-Datei ein vollständiges Objekt, das wir mehrfach in einer Szene verwenden
wollen, so müssen wir die Include-Datei nur einmal einfügen! |
|
Aufruf des Objektes aus Include-Datei:
Hier binden wir 'Column_1.inc' ein: (nur einmal!)
//---------------------------------------
#declare Column_Texture =
texture{ pigment{ color rgb<1,0.95,0.8>}
normal { bumps 0.5 scale 0.01}
finish { phong 0.1 }
} // end of texture
//-------------------------------------//
#include "Column_1.inc"
//-------------------------------------//
union{ //--------------------------------
#local Nr = 0; // start
#local EndNr = 10; // end
#while (Nr< EndNr)
union{ // inner union
object{ Column_1(3.5, 0.5, 0.06, 0.75)
translate<-2,0,0>}
object{ Column_1(3.5, 0.5, 0.06, 0.75)
translate< 2,0,0>}
translate<0,0,Nr*2.5>
} // end inner union
#local Nr = Nr + 1; // next Nr
#end // --------------- end of loop
texture{ Column_Texture }
rotate<0,0,0>
translate<0,0,0>
} // end of union ----------------------- |
|
Säulenreihen
Die Beschreibung dieser Szene für POV-Ray:
Szenen-Datei: Column_1_Row.pov
Verwendete Include-Datei: Column_1.inc
(Man speichere beide Dateien mittels
Rechtsklick + 'Ziel speichern unter'
in dasselbe Verzeichnis und starte
die Datei 'Column_1_Row.pov' in POV-Ray.)
|
Dieser Mechanismus eignet sich auch vorzüglich dazu, sich seine selbstentwickelten
Lieblingsfarben und -texturen als Datei "My_tex.inc" abzulegen! Ein Möbellager oder eine
Flugzeug-Sammlung läßt sich ebenso erstellen!!!
|
|