|
|
|||||||||||||||||||||||||
![]() Das war die (alte) Seite von Anton Raves. Mittlerweile gibt es sie nicht mehr. Anton Raves' LEGO-Dateien beziehen sich auf die älteren digitalen LEGO-Modelle, die von dem LEGO-Fan Anton Raves in den 1990er Jahren erstellt wurden. Seine Arbeit war eine der ersten, die LEGO-Modelle mit Hilfe von Computergrafiken und Programmiersprachen wie POV-Ray darstellte. Seine Dateien wurden typischerweise im Zusammenhang mit Raytracing-Software, insbesondere POV-Ray, erstellt. Dabei handelt es sich um eine deklarative Szenebeschreibungsdatei, in der die genaue Position, Ausrichtung und das Aussehen jedes LEGO-Steins definiert sind. |
Es gibt auch die Möglichkeit, die unterschiedlichen Lego-Steine mit Hilfe von
Include-Dateien anzusprechen und durch scale, translate und rotate an die
entsprechenden Stellen für ein Lego-Objekt zu bringen. Dieses erfordert
sehr viel Arbeit und Ausdauer, da man nicht nur wissen muss, mit welchem Namen die einzelnen
Lego-Steine aufzurufen sind. Weiterhin ist es nämlich nicht immer einfach, mit translate und rotate
die Steine zu verschieben bzw. zu drehen. Man benötigt für diese Art der Programmierung in PovRay zwei Libraries. Dieses sind: 1. 541-Library - 327 kB 2. Bilder der Legoteile mit Namen - 14,9 MB Diese Bilder der Legoteile sind auch in folgender PDF-Datei zusammengefasst. Diese kann hier heruntergeladen werden: Alle Legoteile als LEGO-Datei - 7,2 MB |
||||||||||||||||||||||||
|
Wenn man die Datei 539_reference_images.zip entzipped, erhält man ein Verzeichnis mit
allen Legosteinen als Bild und deren Namen als JPG-Datei (siehe Bild rechts). So erstellt man ein Lego-Objekt: 1. Die entsprechenden Legosteine müssen mit Hilfe der Bilddateien gefunden werden (Der Name der JPG-Datei ist gleichzeitig der Legostein-Name). 2. Der Legostein muss entsprechend skaliert werden, z.B. scale<0.1,0.1,0.1> 3. Mit Hilfe von translate und rotate muss der entsprechende Legostein an die richtige Stelle gebracht werden. Bei größeren Lego-Objekten kann die Anzahl der Steine naturgemäß schon recht groß werden. |
![]() |
||||||||||||||||||||||||
|
Hier soll an einem Beispiel die Vorgehensweise beim Erstellen eines Objekts mit Legosteinen in
PovRAY gezeigt werden. Beim Objekt handelt es sich um die Santa Fe-Lokomotive.
Hierzu hat A. Raven eine Include-Datei mit dem Namen santa_fe_super_chief.mac geschrieben. Diese Datei ist neben
anderen Dateien enthalten in der ZIP-Datei 10020_santa_fe_super_chief_3.7.zip (49,5 kB). Diese Datei wird entzipped. Man erhält eine Reihe von Dateien. Diese müssen aus dem PovRay-Programm heraus geladen werden. Am besten legt man dazu einen Ordner unterhalb der Standard-Include-Dateien zur Aufnahme dieser Dateien an. Dieser könnte SantaFeChief heißen. Man sollte auf jeden so verfahren, da sonst die Übersichtlichkeit der verschiedenen Dateien - darunter auch einige Bilddateien, die von den Include-Dateien benötigt werden. Auch die beiden Dateien für die verschiedenen Legosteine sollte man in ein gesondertes Verzeichnis unterhalb von Include ablegen. Hier heißt der Ordner Raven. Der Aufruf aus dem PovRay-Programm lautet: #include "\Raven\material.lib" #include "\Raven\library.lib" Das vollständige Programm in PovRay lautet dann wie folgt: #include "\Raven\material.lib" #include "\Raven\library.lib" #include "\SantaFeChief\santa_fe_super_chief.mac" #include "\SantaFeChief\man_068.mac" union { object { train_rails_straight() translate <-128, 0, -28> } object { train_rails_straight() translate <0, 0, -28> } object { train_rails_straight() translate <128, 0, -28> } object { train_rails_straight() translate <256, 0, -28> } object { train_rails_straight() translate <384, 0, -28> } object { train_rails_straight() translate <512, 0, -28> } object { santa_fe_super_chief(1,0) translate <103, 9.5, 0> } rotate <0, -145, 0> translate <55, 0, 0> object{man_068(-20,0,0,0,0,0,0,10,red_text_1) rotate-10*y translate<-50,11,10>}} |
![]() |
||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||
|
Anton Raven hat eine große Anzahl von Objekten erstellt. Zwei weitere sieht man in den beiden oberen Bildern.
In der folgenden ZIP-Datei sind etliche andere Objekte für PovRay zusammengefasst. Wenn man diese ZIP-Datei
entzipped, erhält man eine Reihe weiterer ZIP-Dateien, die man so weiterverarbeitet wie oben mit der Santa-Fe-Lok
gezeigt wurde. PovRay-Objekte - 634 kB |
|||||||||||||||||||||||||
![]() |
object{train_rails_straight() scale<0.07,0.07,0.07> translate <47,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <38,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <29,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <20,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <11,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <2,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <-7,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <-16,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <-25,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <-34,0,-15>} object{train_rails_straight() scale<0.07,0.07,0.07> translate <-43,0,-15>}} Achtung: Bei den Schienen kann keine Farbe angegeben werden. Sie ist in der lib-Datei auf grey2_tex eingestellt. |
||||||||||||||||||||||||
In der folgenden Tabelle sind die zur Verfügung stehenden Farben zusammengestellt. Sie werden mit
dem Befehl texture{Farbname} eingefügt.
|
object{train_9v_motor(1) scale<0.1,0.1,0.1> translate<4,0,-1>} object{train_bottom6_16(grey_tex) scale<0.1,0.1,0.1> translate<-2,2,-3>} object{train_cabine_window(red_tex,texture{ pigment{Clear}}) scale<0.1,0.1,0.1> rotate <0,0,0> translate <2.8,7.4,-3.1>} object{h_hrblock2_2(red_tex)scale<0.1,0.1,0.1> rotate <0,180,0> translate <-2.1,2.3,-2.2>} object{h_hrblock2_2(red_tex)scale<0.1,0.1,0.1> rotate <0,270,0> translate <-2.1,2.3,0.2>} usw. Achtung: Die Zusammenstellung der Lego-Steine für die Lok ist sehr umfangreich, wie man aus dem (unvollständigem) Code ersehen kann. |
||||||||||||||||||||||||