Der Virtuelle Matadorbaukasten (3)

Kniffe und nützliche Hinweise zum Bauen, Lagern, Reinigen usw.
Antworten
AndyZaf
Beiträge: 45
Registriert: 02.09.2021 13:43
Kontaktdaten:

Der Virtuelle Matadorbaukasten (3)

Beitrag von AndyZaf »

Im dritten Teil dieser Einführung wollen wir nun die erstellten Modelle 'rendern', also fotografisch möglichst echt darstellen.

Um vollen Realismus zu erreichen, sind eine Vielzahl von Schritten notwendig. Der Renderer muß dazu gewissermaßen 'getunt' werden. Also ähnliche Arbeitsschritte, wie in der analogen Welt eines Fotostudios, wo Licht, Kamera und Umgebung 'aufgesetzt' werden müssen, um ansprechende Bilder zu erstellen. - Für den Beginn werden hier nur notwendige Schritte erklärt. Optimierungen kommen später hinzu.

Um die Ideen des virtuellen Matadorbaukastens fortzuführen, wollen wir zum Rendern ebenfalls eine Lösung verwenden, die gratis verfügbar ist. Meine Wahl fällt daher auf den freien Renderer 'POV-Ray'. Dieser kann auf www.povray.org runtergeladen werden (Version 3.7).
(Anmerkung: Auch die digitalen LEGO Lösungen greifen auf POV-Ray zurück. Daher ist der Support von POV-Ray für unsere Matador-Modelle ebenfalls 1:1 aus zahllosen Publikationen für LEGO verwendbar.)

Übrigens gibt es zu dem, hier bereits mehrmals erwähnten Profiprogramm 'Rhino' einen (kostenpflichtigen) Renderer namens 'Flamingo'. Auch dieser wäre natürlich in der Lage, Matadorobjekte bildlich darzustellen.

Ein paar Worte zu POV-Ray; Dieses ist gewissermaßen ein 'Methusalem'. Seine Anfänge reichen bis 1985 (!) zurück. Ein mächtiges Tool. POV-Ray benötigt aber entsprechende Einarbeitungszeit. Ich habe deshalb in dieser Einführung ein Art 'Rezept' erstellt, um das Aufsetzen des Renderers ohne zeitraubende Überraschungen zu ermöglichen. Die ersten Bilder sollte das Programm bereits nach wenigen Minuten Einrichten erstellen.-

Ich möchte hier nicht auf Details von POV-Ray eingehen. Man findet vieles auf Wikipedia. POV-Ray ist im wesentlichen ein Volumen-Renderer. D.h.es stehen als 'kleinste Einheiten' Objekte wie Kugeln, Quader oder Zylinder zur Verfügung. Im Gegensatz zu 'Maschenobjekten' (Triangles) von anderen Renderern. POV-Rays Geometrie Objekte eignen sich daher hervorragend, um Matador-Teile zu modellieren: Ein Zweierklotz ist ein Objekt 'Quader' minus 5 Zylindern (Löcher) : fertig! Die Sache gestaltet sich also recht einfach, deshalb konnte ich auch alleine alle wesentlichen (einfachen) Matadorbauteile digitalisieren.

Ein Nachteil von POV-Ray ist die Tatsache, daß es keinen Modeller enthält. In unserem Fall aber kein echtes Problem, da wir die Matador-Modelle ja in MLCad erstellen und dann an POV-Ray 'übergeben'.

Installation:
---------------
POV-Ray wird entweder von der Webseite runtergeladen oder als Bestandteil der 'großen' Installation 'LDraw_AIOI_2020-03_setup_32bit_v1' von LDraw installiert. Ich empfehle, POV-Ray als Verzeichnis 'POV' unterhalb des Matador Verzeichnisses zu erstellen:

directory.jpg
directory.jpg (42.49 KiB) 4582 mal betrachtet

Anpassung 1:
Wir müssen POV-Ray erlauben, Bilder in das Verzeichnis zu schreiben. Am einfachsten ist es, 'no restrictions' in den Optionen zu wählen:

norest.jpg
norest.jpg (30.08 KiB) 4582 mal betrachtet

Anpassung 2:
Es hat sich gezeigt, daß man sich um folgende zwei Include-Dateien manuell kümmern muß: lg_defs.inc und lg_color.inc.
Diese findet man in einem Unterordner von LGEO. Es empfiehlt sich, in POV-Ray die Steuerdatei povray.ini zu editieren und folgende Zeilen einzufügen:

Library_Path="C:\Users\<Username>\Documents\Matador\LDraw\LGEO\lg"
Library_Path="C:\Users\<Username>\Documents\Matador\LDraw\LGEO\ar"
(<Username> steht für den Windows-Usernamen)

Anpassung 3:
Wir wollen den Ausgabepfad der Bilddateien definieren. Dazu empfehle ich folgende Vorgangsweise: Wir haben ja POV als Unterordner im Ordner 'Matador' erstellt. Dort gibt es für jedes Matador-Projekt (hier 'Käfig') einen eigenen Unterordner. Die Bilder wollen wir also in einem 'Unterordner des Projekts 'kaefig' erscheinen lassen. D.h.alle Bilder dieses Projekts werden in diesem Ordner gesammelt. (Nur ein Vorschlag hier, man kann natürlich auch anders gruppieren.)

Wesentlich, um den Ausgabepfad der Bilder korrekt zu setzen, ist folgender Eintrag in povray.ini:
Output_File_Name="C:\Users\<Username>\Documents\Matador\POV\kaefig\images\"

Sichtbar auf diesem Screenshot:
POV-def1.jpg
POV-def1.jpg (70.89 KiB) 4582 mal betrachtet

Wir wollen nun unser Beispiel aus (2), den Käfig, rendern. Die wesentliche Frage - wie machen wir automatisch aus den .ldr Dateien gültige POV-Dateien zum Rendern? Es gibt dazu mehrere Möglichkeiten. Am einfachsten (für den Anfänger) ist es, die ldr-Datei (kaefig1d.ldr) in den Viewer LDView zu laden und dann als POV zu exportieren. Dazu müssen wir nun nur noch das Zielverzeichnis für die POV-Datei richtig wählen:

exportfromLDview1.jpg
exportfromLDview1.jpg (62.01 KiB) 4582 mal betrachtet
Die erstellte POV-Datei laden wir in den POV-Ray Renderer und klicken dort den grünen 'Run' Startknopf. Haben wir alles richtig definiert, wird das Bild in Sekundenschnelle erstellt:

kaefig1d.png
kaefig1d.png (130.71 KiB) 4582 mal betrachtet
Wir sehen, daß die Qualität noch zu wünschen übrig läßt. Das ist aber kein Problem des Modells, sondern der Definition von Lichtquelle(n), sowie Kamera, verbesserte Farben der Klötze, aber auch der Bildauflösung und den Qualitätseinstellungen des Renderers.

Details folgen in einem späteren Beitrag. Hier nun zum Abschluß das Ergebnis nach einigen (einfachen) Optimierungen der Lichtquellen:

kaefig1d_2.png
kaefig1d_2.png (111.38 KiB) 4582 mal betrachtet
AndyZaf
Beiträge: 45
Registriert: 02.09.2021 13:43
Kontaktdaten:

Re: Der Virtuelle Matadorbaukasten (3)

Beitrag von AndyZaf »

In diesem 'erweiterten' Anhang werden einige Überlegungen weitergeführt, sowie Verbesserungen beschrieben.

Hier finden wir die von LDView erstellte POV-Ray Datei (zip).
kaefig1d_mesh.zip
(106.31 KiB) 335-mal heruntergeladen
Diese sollte sich, vorausgesetzt, es wurde POV-Ray so eingestellt wie zuvor in (3) beschrieben, direkt rendern lassen. Wir sehen, daß die Datei immerhin 500kB groß ist. Unser Käfig-Modell ist recht klein. Woran liegt es, daß die Datei derartig groß wurde? Nun, sehen wir uns ein paar Zeilen an, die ich direkt aus der Datei als Muster rauskopiert habe:

mesh2 {
vertex_vectors {
2630,
<-25,0,-25>, <-25,0,-5.5>, <-25,0,5.5>, <-25,0,25>,
[% ..und viele Zeilen mehr %]

Wir sehen, LDView hat die Matador-Klötze als 'Netz' dargestellt, die Oberfläche also durch Zillionen von 'Vierecken' modelliert. Wie zuvor erwähnt, enthält POV-Ray jedoch die Möglichkeit, sogenannte 'Primitives' zu verwenden. Das sind Quader, Kugeln, Zylinder etc. Es ist zu vermuten, daß bspw.ein Dreierklotz, mit diesen Objekten modelliert wesentlich weniger Speicherplatz benötigt, als wenn er als Netzgitter (Oberfläche inklusive der Löcher) erstellt wird.

Beispiel: Für einen solchen Dreierklotz benötigen wir von den POV-Ray-Objekten bloß einen Quader (Klotz, ohne Bohrungen) minus (=difference) Längsloch (=cylinder) minus (=difference) (3+3) Querlöcher (=cylinder). Dies wären einige wenige, extrem simple POV-Operationen. Außerdem könnte damit auch das Rendering massiv beschleunigt werden (obwohl für das kleine Käfig-Modell natürlich unerheblich).

Das Problem, das sich mir hier am Beginn meiner Ideen leider stellte: Wie erstelle ich automatisch die kleinen und effizienten POV-Ray Dateien? LDView bietet hier keine Hilfe, es exportiert nur 'Meshes'.

Die Lösung ist ein sehr unscheinbares Programm, das ich beim Stöbern in den endlosen Weiten des digitalen LEGOs entdeckt habe. Es trägt den Namen 'L3P'. Während der simple, nichtssagende Name wohl nicht von einem Marketinggenie erfunden wurde, ist die Leistung dieses Helfers geradezu unglaublich:

Werden die ldr-Dateien mit entsprechenden POV-Ray Daten ergänzt (in allen Matador-Teilen von mir bereits gemacht), kann L3P auf Wunsch 'echte' POV-Ray Objekte in den POV-Dateien erstellen!
(Es kann noch mehr, darauf gehe ich in weiteren Abschnitten ein.)

Wir können L3P hier von der Seite des dänischen Programmierers Lars Hassing runterladen, gratis versteht sich:
http://www.hassings.dk/l3/l3p.html
Es ist darauf zu achten, die neueste Version (1.4 beta) zu verwenden.

Es wird ein Directory 'L3P' erstellt, unterhalb von 'Matador':

DirwithL3P.jpg
DirwithL3P.jpg (9.37 KiB) 4554 mal betrachtet

Eine Hürde muß noch genommen werden: L3P hat kein grafisches Interface. Man muß es also per Kommandozeile aufrufen. Die Befehle sind auf der Seite des Programmierers erklärt, ich gebe daher hier nur eine kurze Zusammenfassung.

Der Aufruf sollte in der dieser Form erfolgen:
l3p.exe "kaefig1d.ldr" -q3 -o -sw0.75 -ld -enp

Damit L3P den Ort kennt, wo es aufgerufen wird, müssen wir eine kleine Batch-Datei erstellen, die diverse Variablen in DOS setzt. Außerdem muß dem Programm noch der genaue Pfad der LDR-Datei mitgeteilt werden. Diese Musterdatei habe ich hier angehängt:
run.zip
(285 Bytes) 351-mal heruntergeladen
Die gezippte Datei runterladen, entpacken und in den Ordner 'POV' kopieren. Es müssen in der BAT-Datei nur noch zwei Pfade abgeändert werden: Nämlich der Name <WindowsUser> durch den eigenen ersetzen. Fertig.

run.bat wird nun aufgerufen. Klappt alles, wird von L3P im Verzeichnis 'POV' die neue Datei 'kaefig1d_povobj.pov' geschrieben. Diese umfaßt nur 25kB. Die Mesh-Datei war 20x (!) so groß! - Wird sie in POV-Ray geladen und gerendert, erhalten wir folgendes Bild:

kaefig1d.png
kaefig1d.png (131.16 KiB) 4554 mal betrachtet
Was hier auffällt, daß der Käfig zwar korrekt gerendert wurde, aber die Ansicht eine etwas andere ist, als die des Käfig mit den 'Mesh'-Oberflächen. Die Kamera war ursprünglich 'weiter weg'. Das liegt daran, daß LDView Kamerapositionen, sowie Beleuchtung nach eigenen Regeln erstellt hat. Wollen wir *genau* die gleich Kameraposition erreichen, müssen wir eine Kamera-Datei 'camera.inc' aus den Daten von LDView erstellen, und L3P dazu bringen, statt die Kameraposition zu berechnen, diese 'camera.inc' einzubinden.

Hört sich kompliziert an, ist aber einfach. An den Aufruf von L3P im run.bat wird folgender String einfach angehängt (nach '-enp'):
-iccamera.inc -illights.inc
Die neuen Kamera- und Licht-Dateien habe ich vorbereitet, und sie sind hier:
cameraLight.zip
(974 Bytes) 351-mal heruntergeladen
Wird nun run.bat mit der veränderten L3P-Zeile aufgerufen, entsteht folgendes Bild:

kaefig1d_1.png
kaefig1d_1.png (91.48 KiB) 4554 mal betrachtet
Wir sehen auch, daß für jedes (zukünftige) digitale Matadorprojekt im POV-Verzeichnis ein eigenes run.bat erstellt werden muß. Diese Datei gehört gewissermaßen zum 'Inventar' jeden Projekts, genauso wie Licht- und Kamera-Datei.
Dateianhänge
kaefig1d_povobj.zip
(4.27 KiB) 328-mal heruntergeladen
Antworten