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
plane, sphere, box,
cylinder, cone, torus.
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
|
#declare, #local - Abkürzungen, Platzhalter, flexible Objekte.
Definieren von Platzhaltern (Variablen) und Objekten
Bitte beachten Sie für die Wahl eigener Namen und Abküzungen:
> Verwenden Sie keine deutschen Umlaute!
> Verwenden Sie keine reservierten Schlüsselworte!
> Groß- und Kleinschreibung wird unterschieden!
> Empfohlen: alle selbstdefinierten Sachen sollten mit Großbuchstaben beginnen!
Alle reservierten Schlüsselworte von POV-Ray sind in Kleinbuchstaben geschrieben!
#declare verwendet man für global geltende Variablen, während in Makros oder Include-Dateien
mit #local nur lokal gültige Variable definiert werden können. Diese lokalen Variablen können
innerhalb eines Makros oder einer Include-Datei verändert werden. Z.B.: Bei Zählvariablen in einer
While-Schleife. Änderungen einer lokalen Variablen bewirken keine Änderungen gleichnamiger globaler Variablen, welche außerhalb definiert wurden.)
Lokale Variable sind allerdings auch außerhalb des Bereiches in dem sie deklariert wurden unsichtbar!
Beispiel für die Definition von eigenen Objekten und die Verwendung definierter Objekte:
#declare R1 = 0.25 ; // ball radius
#declare RR = 1.00 ; // ring radius
#declare Position_1 = <0,0.25,1> ;
#declare Ball_Texture =
texture{ pigment{ color rgb<1,0.65,0>}
finish { phong 1.0 }
} // end of texture
#declare Ball1 =
sphere{ <RR,0,0>,R1
texture{Ball_Texture}}
//-------------------------------------
#declare BallHalfCircle =
union{
object{Ball1 rotate <0, 0,0>}
object{Ball1 rotate <0, 20,0>}
object{Ball1 rotate <0, 40,0>}
object{Ball1 rotate <0, 60,0>}
object{Ball1 rotate <0, 80,0>}
object{Ball1 rotate <0,100,0>}
object{Ball1 rotate <0,120,0>}
object{Ball1 rotate <0,140,0>}
object{Ball1 rotate <0,160,0>}
object{Ball1 rotate <0,180,0>}
} // end of BallHalfCircle
// drawing command:
object{ BallHalfCircle
translate Position_1}
// -------------------------------- end | |
|
#macro ... #end - Beispiel: flexibles Definieren von Objekten.
Zur Wahl eigener Namen und Abküzungen vgl. Bemerkungen bei "#declare".
Beispiel für die Definition von eigenen Objekten mittels "#macro":
#macro BallHalfCircle (R1, RR, Texture)
#local Ball1 =
sphere{ <RR,0,0>,R1 texture{Texture}}
union{
object{Ball1 rotate <0, 0,0>}
object{Ball1 rotate <0, 20,0>}
object{Ball1 rotate <0, 40,0>}
object{Ball1 rotate <0, 60,0>}
object{Ball1 rotate <0, 80,0>}
object{Ball1 rotate <0,100,0>}
object{Ball1 rotate <0,120,0>}
object{Ball1 rotate <0,140,0>}
object{Ball1 rotate <0,160,0>}
object{Ball1 rotate <0,180,0>}
} // end of BallHalfCircle
#end // ------------------ end of macro
//-------------------------------------
#declare Texture1 =
texture{ pigment{ color rgb<1,0.65,0>}
finish { phong 1.0}
}
#declare Texture2 =
texture{ pigment{ color rgb<1,0.2,0>}
finish { phong 1.0}
}
// drawing commands:
object{
BallHalfCircle(0.25, 1.00, Texture1)
translate<0,0.25,1>}
object{
BallHalfCircle(0.15, 0.50, Texture2)
translate<0,0.5,1>}
// -------------------------------- end | |
|
|
|