Atelier Raytracing

From FreeCAD Documentation
Revision as of 16:39, 13 May 2018 by Mario52 (talk | contribs) (Created page with "== Exportation vers Kerkythea == Bien que l'exportation directe vers le format de fichier XML Kerkythea n'est pas encore prise en charge, vous pouvez exporter vos objets en ta...")

Le module Raytracing est utilisé pour générer des images photoréalistes de vos modèles en les interprétant avec un moteur de rendu externe. L'atelier de raytracing travaille avec modèles, de la même manière que l'Atelier de Dessin, en vous permettant de créer un projet de Raytracing dans lequel vous ajoutez des vues de vos objets. Le projet peut alors être exporté vers un fichier prêt-à-interpréter ou être interprété directement.

Actuellement, deux moteurs de rendu sont pris en charge: povray et LuxRender. Pour être en mesure d'interpréter directement à partir de FreeCAD, au moins un de ces moteurs de rendu doit être installé sur votre système, et son chemin doit être configuré dans les préférences FreeCAD Raytracing. Cependant, sans aucun moteur de rendu installé, vous êtes toujours en mesure d'exporter un fichier de scène qui peut être utilisé plus tard, dans n'importe quel moteur de rendu, ou sur une autre machine.

L'atelier raytracing travaille avec le module templates, qui sont des fichiers de scène complète pour le moteur de rendu externe, y compris les rayons et éventuellement les géométries supplémentaires tels que les plans au sol. Ces fichiers de scène contiennent des emplacements réservés, où FreeCAD insérera la position des caméras et d'informations géométriques des matériaux constituant chacun des objets que vous insérez dans le projet. Ce fichier étant mis à jour, la scène est ensuite exportée vers le moteur de rendu externe.

Outils

Template:Raytracing Tools/fr

Travail typique

  1. Créez ou ouvrez un projet dans FreeCAD, ajouter quelques objets Part-based (le maillage n'est actuellement pas pris en charge)
  2. Créer un projet de Raytracing (luxrender ou povray)
  3. Sélectionnez les objets que vous souhaitez ajouter au projet raytracing et ajoutez-les au projet avec l'outil "Insert Part"
  4. Export ou de rendre directement

Création manuelle d'un fichier povray

Les outils utilitaires décrits ci-dessus vous permettent d'exporter l'affichage 3D actuel et tout son contenu dans un fichier Povray. Tout d'abord, vous devez charger ou créer vos données CAO et positionner l'orientation de la vue 3D que vous le souhaitez. Puis choisissez "Utilities->Export View..." dans le menu de raytracing.

Donnez un emplacement pour enregistrer le fichier *.pov. Après cela vous pouvez l'ouvrir dans Povray et obtenir le rendu :

Comme d'habitude dans un rendererer vous pouvez faire de grandes et belles photos :

Script

Sortir des fichiers de rendu

Les modules Raytracing et RaytracingGui fournissent plusieurs méthodes pour écrire le contenu des scènes comme données povray ou LuxRender. Les plus utiles sont Raytracing.getPartAsPovray () et Raytracing.getPartAsLux () pour interpréter un objet FreeCAD dans une définition de povray ou LuxRender et RaytracingGui.povViewCamera () et RaytracinGui.luxViewCamera () pour obtenir le point de vue actuel de la fenêtre 3D FreeCAD au format POV-Ray ou LuxRender.

Voici comment utiliser ces fonctions depuis l'interface Python :

import Raytracing,RaytracingGui
OutFile = open('C:/Documents and Settings/jriegel/Desktop/test.pov','w')
OutFile.write(open(App.getResourceDir()+'Mod/Raytracing/Templates/ProjectStd.pov').read())
OutFile.write(RaytracingGui.povViewCamera())
OutFile.write(Raytracing.getPartAsPovray('Box',App.activeDocument().Box.Shape,0.800000,0.800000,0.800000))
OutFile.close()
del OutFile

Et le même pour luxrender

import Raytracing,RaytracingGui
OutFile = open('C:/Documents and Settings/jriegel/Desktop/test.lxs','w')
OutFile.write(open(App.getResourceDir()+'Mod/Raytracing/Templates/LuxClassic.lxs').read())
OutFile.write(RaytracingGui.luxViewCamera())
OutFile.write(Raytracing.getPartAsLux('Box',App.activeDocument().Box.Shape,0.800000,0.800000,0.800000))
OutFile.close()
del OutFile

Création d'un rendu d' objet personnalisé

Un élément à partir des vues d'objets standards de povray et LuxRender qui fournit une vue d'un objet partiel existant, et qui peut être inséré dans des projets de povray et LuxRender respectivement, un troisième objet existe, appelé RaySegment, qui peut être inséré dans des projets povray ou luxrender. Cet objet RaySegment n'est liée à aucun des objets FreeCAD, et peut contenir un code personnalisé povray ou LuxRender, que vous pourriez souhaiter insérer dans votre projet de raytracing. Vous pouvez également l'utiliser, par exemple, pour sortir de vos objets FreeCAD d'une certaine façon, si vous n'êtes pas satisfait de la façon standard. Vous pouvez le créer et l'utiliser comme ceci à partir de la console python:

myRaytracingProject = FreeCAD.ActiveDocument.PovProject
myCustomRenderObject = FreeCAD.ActiveDocument.addObject("Raytracing::RaySegment","myRenderObject")
myRaytracingProject.addObject(myCustomRenderObject)
myCustomRenderObject.Result = "// Hello from python!"

Liens

POVRay

Luxrender

Autres moteurs de rendu libres (pour implémentation à venir) :

Actuellement, il y a un nouvel atelier de Rendu en développement à l'appui de plusieurs back-ends comme moteur de rendu de Lux Renderer et Yafaray. Des informations pour l'utilisation de la version en développement peuvent être consultées ici Render project

Regardez ici pour l'état de développement du Module restituer Raytracing project

Modèles

FreeCAD est livré avec une paire de modèles par défaut pour povray et luxrender, mais vous pouvez facilement créer votre propre modèle. Tout ce que vous devez faire est de créer un fichier de scène pour le moteur de rendu donné, puis avec un éditeur de texte, modifiez le manuellement pour insérer une balise spéciale que FreeCAD reconnaîtra et où il insérera son contenu (données de caméra et objets)

Povray

Les fichiers de scène povray (ont une extension .pov) peuvent être créés manuellement avec un éditeur de texte (povray est fait principalement pour être utilisé comme un langage de script), mais aussi avec un large éventail d'applications 3D, comme blender. Sur le site de povray vous trouverez plus d'informations et une liste des applications capables de produire des fichiers .pov.

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

  1. Supprimer les informations de la caméra, parce que FreeCAD placera ses propres données de caméra. Pour ce faire, recherchez un bloc de texte comme ceci : camera { ... }, qui décrit les paramètres de la caméra le supprimer (ou mettre "/ /" devant chaque ligne pour commenter les sorties).
  2. Insérer la ligne suivante quelque part : //RaytracingContent. C'est l'endroit où FreeCAD va insérer son contenu (données de caméra et objets). Vous pouvez, par exemple, mettez cette ligne à la fin du fichier.

Notez que FreeCAD ajoutera également certaines déclarations, que vous pourrez utiliser dans votre modèle, après la balise //RaytracingContent.

Ce sont :

  • cam_location: l'emplacement de la caméra
  • cam_look_at : l'emplacement et le point de cible de la caméera
  • cam_sky  : le vecteur supérieur de la caméra.
  • cam_angle  : l'angle de la caméra

Si par exemple vous voulez placer une lampe au-dessus de la caméra, vous pouvez utiliser ceci :

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

Luxrender

Les fichiers LuxRender (avec extension .lxs) peuvent être des fichiers uniques, ou un fichier maître .lxs qui comprend la définition de l'ensemble (.lxw), définition de la matière (.lxm) et les fichiers de définition de géométrie (.lxo). Vous pouvez travailler avec les deux styles, mais il est également facile de transformer un groupe de 4 fichiers dans un fichier unique .lxs, en copiant le contenu des fichiers .lxw, .lxm et .lxo fichier et les coller à l'endroit où ces fichiers sont inséré dans le fichier maître .lxs.

Les fichiers LuxRender sont difficiles à produire manuellement, mais sont faciles à construire avec de nombreuses applications 3D tels que blender. Sur le site luxrender website, vous trouverez là plus d'informations et de plugins pour les principales applications 3D.

Si vous voulez travailler avec les fichiers .lxw, .lxm et .lxo séparément, prenez garde que le fichier .lxs final exporté par FreeCAD pourrait être à un autre emplacement que le fichier modèle, et donc ces fichiers pourraient être introuvable par Luxrender au temps de rendu. Dans ce cas vous devriez copier ces fichiers à l'emplacement de votre fichier final ou modifier leurs chemins dans le fichier exporté .lxs.

Si vous exportez un fichier scène de blender et désirez tout fusionner en un seul fichier, vous devez effectuer une étape avant de l'exporter : par défaut, l'exportateur de luxrender dans blender exporte toutes les géométries de maillage en tant que fichiers distincts .ply, au lieu de placer la géométrie de maille directement dans le fichier .lxo. Pour modifier ce comportement, vous devez sélectionner chacune de vos mailles dans blender, allez dans l'onglet "mesh" et définissez l'option "export as "luxrender mesh" pour chacun d'entre eux.

Quand votre fichier scène est prêt, pour le transformer en un modèle FreeCAD, vous devez effectuer les étapes suivantes:

# Localiser la position de la caméra, une seule ligne qui commence par  LookAt </ tt>, et le supprimer (ou placer un "#" au début de la ligne d'en commentaire) 
  1. à cet endroit, insérez la ligne suivante: #RaytracingCamera </ tt>
  2. à un point désiré, par exemple juste après la fin les définitions matériaux , avant les informations de géométrie, ou tout à la fin, juste avant la dernière ligne WorldEnd </ tt> , insérer la ligne suivante: #RaytracingContent </ tt>. C'est là que FreeCAD va insérer ses propres objets.

Notez que les objets luxrender, sont stockés dans un fichier de scène pouvant définir des matrices de transformation, qui affectent l'emplacement, la rotation ou la mise à l'échelle des opérations. Ces matrices peuvent empiler tout ce qui vient après, donc, en plaçant votre balise de #RaytracingContent à la fin du fichier, vous pourriez voir vos objets FreeCAD affectés par une matrice de transformation placée plus haut dans le modèle. Pour vous assurer que cela n'arrive pas, placez votre balise de #RaytracingContent avant tout autre objet géométrique présent dans le modèle. FreeCAD ne définit aucune de ces matrices de transformation.

Exportation vers Kerkythea

Bien que l'exportation directe vers le format de fichier XML Kerkythea n'est pas encore prise en charge, vous pouvez exporter vos objets en tant que fichiers de maillage (.obj), puis les importer dans Kerkythea.

  • Si vous utilisez Kerkythea pour Linux, n'oubliez pas d'installer le WINE-Package (nécessaire à Kerkythea pour Linux)
  • vous pouvez convertir vos modèles à l'aide de l'atelier de maillage en maillages, puis exporter ces maillages sous forme de fichiers .obj
  • Si votre exportation de maille a entraîné des erreurs (flip de normales, trous ...) vous pouvez tenter votre chance avec netfabb studio basic
Gratuit pour un usage personnel, disponible pour Windows, Linux et Mac OSX.
Il dispose d'outils de réparation standard qui vous réparera le modèle dans la plupart des cas.
  • Un autre bon programme pour l'analyse/réparation de maillage est Meshlab
Open Source, disponible pour Windows, Linux et Mac OSX.
Il dispose d'outils de réparation standard qui vous permettront de réparer votre modèle dans la plupart des cas (combler les trous, réorienter les normales, etc.)
  • vous pouvez utiliser "make compound" puis "make single copy" ou vous pouvez fusionner des solides pour les regrouper avant de les convertir en maillages
  • N'oubliez pas de définir dans Kerkythea un facteur d'import de 0.001 pour obj-modeler, puisque Kerkythea s'attend à ce que le fichier obj soit en m (mais le schéma d'unités standard dans FreeCAD est mm)
Dans WIndows 7 Kerkythea 64 bits ne semble pas pouvoir enregistrer ces paramètres.
Alors rappelez-vous de le faire chaque fois que vous démarrez Kerkythea
  • Si vous importez plusieurs objets dans Kerkythea, vous pouvez utiliser la commande "Fichier → Fusionner" dans Kerkythea

Links