Home
- POV-Ray Tutorial
- POV-Ray Beispiele
Inhaltsübersicht
- Geometrie
- Architektur
- Haus
- Dach
- Turm mit Zinnen
- Schloss
- Fenster u. Tür
- Treppen
- Pyramide
- Säulen
- Bogen
- Zäune
- Möbel
- Haushalt
- Technik
|
|
Turm mit Zinnen
Bau eines Burgturms mit Zinnen.
Der Turm wird aus einer Rohform durch Abziehen ("difference{...})
der Zwischenräume der Zinnen erstellt.
Um die Sache flexibler für spätere Änderungen im Design zu halten, werden
Texturen und Abmessungen am Kopf der Szenenbeschreibung als Variable
(Platzhalter) deklariert.
Um beim Abziehen mittels "difference" ein sauberes Resultat zu
erhalten, muss der abzuziehende Körper eindeutig herausstehen aus dem Körper,
von welchem er abgezogen wird. Dazu verwenden wir die Variable
"D = 0.0001" - nur ein kleiner Hauch! So können wir
einfach sagen "+D" = "ein bisschen mehr"
oder "-D" = "ein bisschen weniger"!
Um die Teile, welche wir abziehen wollen, leichter zu erkennen,
wählen wir noch eine zweite Textur in grüner Farbe. Später
kann man dies leicht wieder wechseln indem man die Kommentar-Zeichen "//"
einfach verschiebt.
Eine Include-Datei mit der man dieses Objekt als Fertig-Objekt verwenden kann
findet man auf meiner POV-Ray Objects-Seite.
|
Die Konstruktion:
Zunächst die Texturen und Abmessungen:
#declare Tower_Texture_1 = //Sandstein
texture{ pigment{ color rgb<0.9,0.78,0.6>}
normal { bumps 0.5 scale 0.015 }
finish { diffuse 0.9 phong 0.1}
} // end of texture
#declare Tower_Texture_2=//Sandstein dunkl.
texture{ pigment{
// color rgb<0.9, 0.78, 0.6>*0.95}
color rgb<0.4,1,0.0>} // test_color
normal { bumps 0.5 scale 0.015 }
finish { diffuse 0.9 phong 0.1}
} // end of texture
//-----------------------------------------
#declare D = 0.0001; // nur ein bisschen!
#declare Tower_R = 2.00;//halbe Weite x, z
#declare Tower_H = 8.00;//Turmhöhe in y
// Marke 1
//-----------------------------------------
Dann benötigen wir eine Rohform des Turmes:
// Turm-Grundform
box{ <-Tower_R, 0,-Tower_R>,
< Tower_R, Tower_H, Tower_R>
texture{ Tower_Texture_1 }
} // end of box
//-----------------------------------------
|
Turm-Grundform
|
Dann müssen wir die Abmessungen der Zinnenlücken festlegen:
Wir rechnen die Höhe von der Turm-Oberkante nach unten.
#declare Merlon_H = 0.80;// Zinnenhöhe y
#declare Merlon_R = 0.20;// halbe Weite x, z
//-----------------------------------------
#declare Merlon_Cut_Off =
box { <-Merlon_R,-Merlon_H,-Tower_R-D>,
< Merlon_R, D, Tower_R+D>
texture { Tower_Texture_2 }
} // end of box
//-----------------------------------------
Um dies von der Rohform abzuziehen zu können, müssen wir es vor dieser einfügen,
d.h. vor der "// Marke 1".
|
Ein Fugenzwischenraum.
|
Um die Position und Abmessung zu prüfen fügt man die so definierte Form
zunächst als neues Objekt nach der Rohform hinzu:
object{ Merlon_Cut_Off
translate<0,Tower_H,0> }
... ist alles okay? Dann versuchen wir das:
union{ // union of the merlon cut offs
object{ Merlon_Cut_Off
translate<-2*Tower_R/4,0,0>}
object{ Merlon_Cut_Off
translate< 0*Tower_R/4,0,0>}
object{ Merlon_Cut_Off
translate< 2*Tower_R/4,0,0>}
object{ Merlon_Cut_Off
translate<-2*Tower_R/4,0,0>
rotate<0,90,0>}
object{ Merlon_Cut_Off
translate< 0*Tower_R/4,0,0>
rotate<0,90,0>}
object{ Merlon_Cut_Off
translate< 2*Tower_R/4,0,0>
rotate<0,90,0>}
translate<0,Tower_H,0>
} // end of union of the merlon cut offs
|
Die abzuziehenden
Zwischenräume.
|
Wenn wir all dies in eine "difference" mit der Rohform packen, ...
#declare .... // Texturen
#declare ... // Dimensionen
#declare Merlon_Cut_Off = ....
// alles was deklariert wurde,
// dann:
difference{
// Turm-Grundform:
box{...
} // end of box
// Objekte, die abzuziehen sind:
union{ // union of the merlon cut offs
object{ ...
}
....
object{ ...
}
translate<0,Tower_H,0>
}// end of union of the merlon cut offs
}// end of difference
...dann sollten wir das nebenstehende Bild erhalten:
|
Zinnen ausgehölt.
|
Jetzt fehlt noch das Aushölen der Balustrade der obersten Plattform:
// inner top level balustrade caved out
#declare Balu_H = 1.50; // height
#declare W_D = 0.30; // wall deepth
box { <-Tower_R+W_D,-Balu_H,-Tower_R+W_D>,
< Tower_R-W_D, D, Tower_R-W_D>
texture { Tower_Texture_1 }
translate<0,Tower_H,0>
} // end of box
|
Zum Aushöhen der Mitte!
|
Wenn wir dieses OBjekt auch noch in die Klammern unserer "difference"
einfügen, so erhalten wir die folgende Form:
|
Mitte ausgehöhlt!
|
Wie man ein realistische Wandtexture macht
Mit einer einfachen Texture, wie folgt:
#declare Tower_Texture_1 = // sandstone
texture{ pigment{ color rgb<0.9,0.78,0.6>}
normal { bumps 0.5 scale 0.015 }
finish { diffuse 0.9 phong 0.1}
} // end of texture
können wir keine einzelnen Steine in der Mauer sehen!
|
Sandsteinmauer
ohne Fugen.
|
Zur Simulation einer Wand aus Steinen mit Fugen kann man das POV-Ray-Muster
("pattern") bricks verwenden:
#declare Tower_Texture_1=// sandstone
texture{
pigment{ color rgb<0.9,0.78,0.6>}
normal {
pigment_pattern{ brick
color rgb 0.2,
color rgb 0.8
scale 0.135
translate<0,0,0>
rotate<0,0,0>
} // end pattern
0.35 // normal intensity
} // end of normal
finish { diffuse 0.9 phong 0.1}
} // end of texture
|
Sandsteinmauer
mit Fugen.
|
Probleme mit dem "bricks"-Muster
Mit dem Muster "bricks" erhalten wir oft
Bilder wie das hier nebenstehende rechts.
Der Grund dafür, dass wir solche dunklen und hellen Streifen erhalten ist folgender:
Wir haben in solchen Fällen mit unserer Mauerfläche genau die Mauerfuge
in dem Muster getroffen.
Um einen derartigen Effekt zu vermeiden und auch um etwa kleinere oder
größere Steine zu erreichen, müssen wir das Muster in den Klammern
von "pigment_pattern" geeignet skalieren ("scale"),
verschieben ("translate") und/oder rotieren ("rotate").
|
Typischer Fugenfehler
mit "bricks".
|
Die Adaption der Fugenlage an die Zinnenbreite und -höhe ist eine schwierige
Arbeit und gelingt nur selten völlig. Das Resultat dieser einfachen Simulation
der Mauerfugen ist jedoch sehr beachtlich,
besonders verglichen mit dem geringen Aufwand.
|
Klicken Sie auf das Bild
zur Vergrößerung.
|
Download aller gebrauchsferigen POV-Ray Objekte
zip-gepackt (Include-Dateien mit Beispieldateien und mit den
entsprechenden Insert Menu Add-ons für komfortable Benutzung)
auf der Download-Seite.
|