Raytracing templates/de

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:

  1. 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).
  2. 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:

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.

If you are exporting a scene file from blender, and wish to merge everything into one single file, you will need to perform one step before exporting: By default, the luxrender exporter in blender exports all mesh geometry as separate .ply files, instead of placing the mesh geometry directly inside the .lxo file. To change that behaviour, you need to select each of your meshes in blender, go to the "mesh" tab and set the option "export as" to "luxrender mesh" for each one of them.

After you have your scene file ready, to turn it into a FreeCAD template, you need to perform the following steps:

  1. Locate the camera position, a single line that begins with LookAt, and delete it (or place a "#" at the beginning of the line to comment it out)
  2. At that place, insert the following line: #RaytracingCamera
  3. At a desired point, for example just after the end of the materials definition, before the geometry information, or at the very end, just before the final WorldEnd line, insert the following line: #RaytracingContent. That is where FreeCAD will insert its own objects.

Note that in luxrender, the objects stored in a scene file can define transformation matrixes, that perform location, rotation or scaling operations. These matrixes can stack and affect everything that come after them, so, by placing your #RaytracingContent tag at the end of the file, you might see your FreeCAD objects affected by a transformation matrix placed earlier in the template. To make sure that this doesn't happen, place your #RaytracingContent tag before any other geometry object present in the template. FreeCAD itself won't define any of those transformation matrixes.