Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
    Kleines Include-Dateien-Tutorial für POV-Ray
English English English

Home
- POV-Ray Tutorial

  - POV-Ray Details

  - Über Variable

  - Ein kurzes
    Include File Tutorial
      Wozu Include Files?
    >Eigene Include Files
        und wie aufrufen.
      Schreibweisen, ".inc"
          "#local / #declare"
      Wo speichern?
      Design von Include Files
      Eigene Elemente
        zum 'Insert Menu'


                                                 

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>
      }
//------------------------------------
Table_00
Das Objekt 'Table_01'.


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!


top

© Friedrich A. Lohmüller, 2015
www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!