Raytracing templates

From FreeCAD Documentation
Revision as of 10:16, 12 March 2019 by Mario52 (talk | contribs) (Created page with "== Luxrender == Les fichiers de raytracing Luxrender (avec extension .lxs) peuvent être soit des fichiers uniques, soit un fichier maître .lxs comprenant des fichiers de dé...")
Other languages:

Introduction

L'atelier raytracing est livré avec quelques modèles pour Povray et Luxrender, mais vous pouvez facilement créer les vôtres. Tout ce que vous avez à faire est de créer un fichier de scène pour le rendu donné, puis de le modifier manuellement avec un éditeur de texte pour insérer des balises spéciales que FreeCAD reconnaîtra et où il insérera son contenu (données de caméra et d'objets).

Modèle personnel introduit dans la version 0.18 peut être placé dans

~/.FreeCAD/data/Mod/Raytracing/Templates

Povray

Les fichiers de raytracing Povray (avec l'extension .pov) peuvent être créés manuellement à l'aide d'un éditeur de texte (povray est principalement conçu pour être utilisé comme langage de script), mais également avec un large éventail d'applications 3D, telles que blender. Sur le website, vous trouverez des informations complémentaires et une liste d'applications capables de générer des fichiers .pov.

Lorsque vous avez un fichier .pov prêt, vous devez l'ouvrir avec un éditeur de texte et effectuer deux opérations:

  1. Supprimez les informations de la caméra, car FreeCAD placera ses propres données de caméra. Pour ce faire, localisez un bloc de texte comme ceci: camera {...} , qui décrit les paramètres de l'appareil photo, puis supprimez-le (ou mettez "//" devant chaque ligne pour les commenter. ).
  2. Insérez la ligne suivante quelque part: // RaytracingContent . C'est ici que FreeCAD insérera son contenu (données de la caméra et des objets). Vous pouvez, par exemple, mettre cette ligne à la fin du fichier.

Notez que FreeCAD ajoutera également des déclarations que vous pourrez utiliser dans votre modèle, après la //RaytracingContent tag. Ceux-ci sont:

  • cam_location: la location de la camera
  • cam_look_at: la location de la cible de la camera
  • cam_sky: le vecteur supérieur de la camera.
  • cam_angle: l'angle de la camera

Si vous souhaitez, par exemple, placer une lampe au-dessus de l'appareil photo, vous pouvez utiliser ceci:

light_source {
 cam_location + cam_angle * 100
 color rgb <10, 10, 10>
}

Luxrender

Les fichiers de raytracing Luxrender (avec extension .lxs) peuvent être soit des fichiers uniques, soit un fichier maître .lxs comprenant des fichiers de définition globale (.lxw), de définition du matériau (.lxm) et de définition géométrique (.lxo). Vous pouvez travailler avec les deux styles, mais il est également facile de transformer un groupe de 4 fichiers en un fichier .lxs unique, en copiant le contenu de chaque fichier .lxw, .lxm et .lxo et en le collant à l'endroit où ce fichier est enregistré qui sera inséré dans le fichier .lxs principal.

Luxrender scene files are hard to produce by hand, but are easy to produce with many 3D applications such as blender. On the luxrender website, you'll find more information and plugins for the main 3D applications out there.

If you will work with separated .lxw, .lxm and .lxo files, beware that the final .lxs exported by FreeCAD might be at a different location than the template file, and therefore these files might not be found by Luxrender at render time. In this case you should or copy these files to the location of your final file, or edit their paths in the exported .lxs file.

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.