Einleitung
Die Arbeitsbereich Strahlverfolgung kommt mit einigen Vorlagen für Povray und LuxCoreRender, aber du kannst leicht deine eigenen erstellen. Alles, was du tun musst, ist, eine Szenendatei für den gegebenen Renderer zu erstellen und sie dann manuell mit einem Texteditor zu bearbeiten, um spezielle Tags einzufügen, die FreeCAD erkennt und wo der Inhalt (Kamera- und Objektdaten) eingefügt wird.
Persönliche Vorlagen eingeführt in 0.18 können unter folgendem Pfad abgelegt werden:
~/.FreeCAD/data/Mod/Raytracing/Templates
POV-Ray
POV-Ray-Szenendateien (mit der Erweiterung .pov) können manuell mit einem Texteditor erstellt werden (POV-Ray ist in erster Linie als Skriptsprache konzipiert), aber auch mit einer Vielzahl von 3D-Anwendungen, wie beispielsweise blender. Auf der POV-Ray-Website findet man weitere Informationen und eine Liste der Anwendungen, mit denen .pov-Dateien erstellt werden können.
Wenn man eine .pov-Datei bereit hat, muss man diese mit einem Texteditor öffnen und zwei Vorgänge durchführen:
- Die Kamerainformationen entfernen, da FreeCAD seine eigenen Kameradaten einfügt. Man sucht dazu einen Textblock wie diesen: camera { ... }, der die Kameraparameter beschreibt, und löscht ihn (oder setzt "//" vor jede Zeile, um sie auszukommentieren).
- Man fügt irgendwo die folgende Zeile ein: //RaytracingContent. An dieser Stelle fügt FreeCAD seinen Inhalt (Kamera- und Objektdaten) ein. Man kann diese Zeile beispielsweise ganz am Ende der Datei einfügen.
Man beachte, dass FreeCAD nach dem Tag //RaytracingContent auch einige Deklarationen hinzufügt, die man in der Vorlage verwenden kann. Diese sind:
- cam_location: die Position der Kamera
- cam_look_at: die Position des Zielpunkts der Kamera
- cam_sky: der Aufwärtsvektor der Kamera.
- cam_angle: der Winkel der Kamera
Wenn man beispielsweise eine Lampe über der Kamera anbringen möchte, kann man Folgendes verwenden:
light_source {
cam_location + cam_angle * 100
color rgb <10, 10, 10>
}
LuxCoreRender
LuxCoreRender-Szenendateien (mit der Erweiterung .lxs) können entweder einzelne Dateien oder eine Master-.lxs-Datei sein, die Weltdefinitionsdateien (.lxw), Materialdefinitionsdateien (.lxm) und Geometriedefektionsdateien (.lxo) enthält. Man kann mit beiden Arten arbeiten, aber es ist auch einfach, eine Gruppe von 4 Dateien in eine einzige .lxs-Datei umzuwandeln, indem man den Inhalt jeder .lxw-, .lxm- und .lxo-Datei kopiert und an der Stelle einfügt, an der diese Datei in die Master-.lxs-Datei eingefügt wird.
LuxCoreRender-Szenendateien sind schwierig von Hand zu erstellen, lassen sich jedoch mit vielen 3D-Anwendungen wie blender leicht erstellen. Auf der LuxCoreRender-Website findet man weitere Informationen und Plugins für die wichtigsten 3D-Anwendungen.
Wenn man mit separaten .lxw-, .lxm- und .lxo-Dateien arbeitet, beachtet bitte, dass die von FreeCAD exportierte endgültige .lxs-Datei möglicherweise an einem anderen Speicherort als die Vorlagendatei gespeichert wird und daher diese Dateien zum Zeitpunkt des Renderings möglicherweise nicht von LuxCoreRender gefunden werden. In diesem Fall sollte man diese Dateien entweder an den Speicherort Ihrer endgültigen Datei kopieren oder ihre Pfade in der exportierten .lxs-Datei bearbeiten.
Wenn man eine Szenendatei aus Blender exportiert und alles in einer einzigen Datei zusammenführen möchten, muss man vor dem Export einen Schritt durchführen: Standardmäßig exportiert der LuxCoreRender-Exporter in Blender die gesamte Mesh-Geometrie als separate .ply-Dateien, anstatt die Mesh-Geometrie direkt in die .lxo-Datei zu platzieren. Um dieses Verhalten zu ändern, muss man jedes der Meshes in Blender auswählen, zur Registerkarte "Mesh" gehen und für jedes einzelne die Option "Exportieren als" auf "LuxCoreRender Mesh" setzen.
Nachdem man die Szenendatei fertiggestellt hat, müssen die folgenden Schritte ausführt werden, um sie in eine FreeCAD-Vorlage umzuwandeln:
- Man sucht die Kameraposition, eine einzelne Zeile, die mit LookAt beginnt, und löscht sie (oder setzt ein "#" an den Anfang der Zeile, um sie auszukommentieren).
- Man fügt an dieser Stelle die folgende Zeile ein: #RaytracingCamera
- Man fügt an einer beliebigen Stelle, beispielsweise direkt nach dem Ende der Materialdefinition, vor den Geometrieinformationen oder ganz am Ende, direkt vor der letzten Zeile WorldEnd, die folgende Zeile ein: #RaytracingContent. An dieser Stelle fügt FreeCAD seine eigenen Objekte ein.
Man beachten, dass in LuxCoreRender die in einer Szenendatei gespeicherten Objekte Transformationsmatrizen definieren können, die Positions-, Rotations- oder Skalierungsoperationen durchführen. Diese Matrizen können sich stapeln und alles beeinflussen, was nach ihnen kommt. Wenn man also das #RaytracingContent-Tag am Ende der Datei platziert, können die FreeCAD-Objekte von einer Transformationsmatrix beeinflusst werden, die weiter oben in der Vorlage platziert wurde. Um sicherzustellen, dass dies nicht geschieht, platziert man das #RaytracingContent-Tag vor allen anderen Geometrieobjekten, die in der Vorlage vorhanden sind. FreeCAD selbst definiert keine dieser Transformationsmatrizen.
Diese Seite wird abgerufen von https://wiki.freecad.org/Raytracing_templates