Raytracing API example/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Voici comment écrire un fichier Povray à partir de python, en supposant que votre document contienne un objet "Box":")
(Created page with "La même chose pour Luxrender:")
Line 20: Line 20:
}}
}}


La même chose pour Luxrender:
And the same for luxrender:


{{Code|code=
{{Code|code=

Revision as of 10:17, 25 February 2019

Other languages:

Introduction

Les modules Raytracing et RaytracingGui fournissent plusieurs méthodes pour écrire le contenu d'une scène sous forme de données povray ou luxrender.

Les commandes les plus utiles sont Raytracing.getPartAsPovray () et Raytracing.getPartAsLux () pour restituer un objet Part FreeCAD dans une définition de type povray ou luxrender et RaytracingGui.povViewCamera () et RaytracinGui.luxViewCamera () pour obtenir le point de vue actuel de la fenêtre de vue 3D au format povray ou luxrender.

Sortie de fichiers de rendu

Voici comment écrire un fichier Povray à partir de python, en supposant que votre document contienne un objet "Box":

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

La même chose 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

Creating a custom render object

Apart from standard povray and luxrender view objects that provide a view of an existing Part object, and that can be inserted in povray and luxrender projects respectively, a third object exist, called RaySegment, that can be inserted either in povray or luxrender projects. That RaySegment object is not linked to any of the FreeCAD objects, and can contain custom povray or luxrender code, that you might wish to insert into your raytracing project. You can also use it, for example, to output your FreeCAD objects a certain way, if you are not happy with the standard way. You can create and use it like this from the python console:

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