Eigene Include Files und wie man sie aufruft.
Erstes Beispiel - Eine Include-Datei für ein Objekt:
Hier der entscheidende Teil eines kleinen Tisches 'Table_01' in einer einfachen POV-Ray-Szenendatei (rot):
// POV-Ray 3.6/3.7 scene file sample
//
//
// camera, light, background here !
// ...
//////////// object definition ///////
// table dimensions
#local H = 0.50; // height,
#local W = 0.45; // width in x and z
#local R = 0.02; // thickness
//------------------------
#declare Table_01 =
union{
// feet
cylinder{<0,0,0>,<0,H,0>, R
translate< W/2-R,0,-W/2+R>}
cylinder{<0,0,0>,<0,H,0>, R
translate< W/2-R,0, W/2-R>}
cylinder{<0,0,0>,<0,H,0>, R
translate<-W/2+R,0, W/2-R>}
cylinder{<0,0,0>,<0,H,0>, R
translate<-W/2+R,0,-W/2+R>}
// seat
box{ <-W/2,-0.025,-W/2>,<W/2,0,W/2>
translate<0,H,0> }
pigment{ color rgb<0.75,0.5,0.3>*0.3}
}// end of union 'Table_01'
//////////////////////////////////////
// using the object:
object{ Table_01
rotate<0,0,0>
translate<0,0,0>
}
//------------------------------------ |
|
|
Erzeugung einer Include-Datei und Aufrufen derselben:
Nun setzen wir die gesamte Deklaration des Objektes 'Table_01' in eine neue getrennte Datei 'Table_01.inc'
und wir speichern sie im gleichen Verzeichnis wie die Szenendatei (.pov):
(andere Möglichkeiten werden später erläutert!)
Die POV-Ray-Szenendatei
verwendet das Objekt 'Table_01':
'Table_01_test.pov'
//POV-Ray scene 'Scene_with_Table_01.pov'
// needs: "Table_01.inc"
// ...
// camera, light, background here !
// ...
//////////////////////////////////////
#include "Table_01.inc"
//////////////////////////////////////
// using the object:
object{ Table_01
rotate<0,0,0>
translate<0,0,0>
}
// ... and again once more:
object{ Table_01
rotate<0,0,0>
translate<1,0,0>
}
// ...
//------------------------------------ |
Anmerkungen:
1) Eine Include-Datei muss in die Szenendatei eingebunden werden
bevor irgend etwas aus seinem Inhalt benutzt werden kann!
Der beste Ort dafür ist oben in den Kopfzeilen der Szenendatei oder vor den Hauptobjekten der Szene!
2) Mehrfache Verwendung des Inhalts einer Include-Datei
(hier: object{ Table_01 ...})
benötigen nur ein einmaliges Einbinden der entsprechenden Include-Datei!
|
Die POV-Ray-Include-Datei
'Table_01.inc'
// POV-Ray Include File: 'Table_01.inc'
//////////////////////////////////////
// table dimensions
#local H = 0.50; // height,
#local W = 0.45; // width in x and z
#local R = 0.02; // thickness
//------------------------
#declare Table_01 =
union{
// feet
cylinder{<0,0,0>,<0,H,0>, R
translate< W/2-R,0,-W/2+R>}
cylinder{<0,0,0>,<0,H,0>, R
translate< W/2-R,0, W/2-R>}
cylinder{<0,0,0>,<0,H,0>, R
translate<-W/2+R,0, W/2-R>}
cylinder{<0,0,0>,<0,H,0>, R
translate<-W/2+R,0,-W/2+R>}
// seat
box{ <-W/2,-0.025,-W/2>,<W/2,0,W/2>
translate<0,H,0> }
pigment{ color rgb<0.75,0.5,0.3>*0.3}
}// end of union 'Table_01'
//////////////////////////////////////
// ............... end of include file
|
Anmerkungen:
3) Die Include Datei enthält (normalerweise) keinerlei Kamera, Licht oder Hintergrundelemente.
Die Include-Datei enthält nur die Deklarationen des entsprechenden Objektes - nichts weiter!
4) Bei Deklarationen von Objekten in Include-Dateien: Es ist sinnvoll die Objekte
hier am Usprung <0,0,0> zentriert zu plazieren
ohne jegliches Rotieren oder Verschieben!
Andernfalls wird die Wiederverwendung in anderen Szenen sehr schwierig werden!
|
|