Raytracing API example/it: Difference between revisions
Renatorivo (talk | contribs) (Created page with "Ecco come utilizzare le funzionalità tramite Python, supponendo che il documento contenga un oggetto "Box":") |
Renatorivo (talk | contribs) (Created page with "E la stessa cosa per luxrender:") |
||
Line 20: | Line 20: | ||
}} |
}} |
||
E la stessa cosa per luxrender: |
|||
{{Code|code= |
{{Code|code= |
Revision as of 14:07, 22 November 2019
Introduzione
I moduli Raytracing
e RaytracingGui
forniscono diversi metodi per scrivere i contenuti della scena come dati povray o luxrender.
I comandi più utili sono Raytracing.getPartAsPovray()
e Raytracing.getPartAsLux()
per rendere un oggetto Part di FreeCAD in una definizione povray o luxrender e RaytracingGui.povViewCamera( )
e RaytracinGui.luxViewCamera()
per ottenere il punto di vista corrente della finestra della vista 3D in formato povray o luxrender.
Emissione dei file di rendering
Ecco come utilizzare le funzionalità tramite Python, supponendo che il documento contenga un oggetto "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
E la stessa cosa per 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!"
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub