- Discovering FreeCAD
- What is FreeCAD?
- The FreeCAD interface
- Navigating in the 3D view
- The FreeCAD document
- Parametric objects
- Import and export to other filetypes
- Working with FreeCAD
- All workbenches at a glance
- Traditional modeling, the CSG way
- Traditional 2D drafting
- Modeling for product design
- Preparing models for 3D printing
- Generating 2D drawings
- BIM modeling
- Using spreadsheets
- Creating FEM analyses
- Creating renderings
- Python scripting
- The community
In computer speak, the word rendering is used to describe a nice image produced from a 3D model. Of course, we could say that what we see in the FreeCAD 3D view is already nice. However, anybody who has seen a recent Hollywood movie, knows that it is possible to produce images with a computer that are almost indistinguishable from a photograph.
Of course, producing photo-realistic images requires a lot of work, in addition to a 3D application that offers specific tools for that purpose, such as precise controls for materials and lighting. Because FreeCAD is an application geared more towards technical modelling, it does not feature any advanced rendering tools.
+Fortunately, the open source world offers many applications to produce realistic images. The most famous one is probably Blender, which is very popular, and widely used in the film and gaming industries. 3D models can very easily and faithfully be exported from FreeCAD and imported into Blender, where you can add realistic materials and illumination, and produce the final images or even animations.
Some other open source rendering tools are made to be used inside other applications, and will take care of doing the complex calculations to produce realistic images. Through its Raytracing Workbench, FreeCAD can use two of these rendering tools: POV-Ray and Luxrender. POV-Ray is a very old project, and is considered a classical raytracing engine, while Luxrender is much newer, and is categorized as an unbiased renderer. Both have their strengths and weaknesses, depending on the type of image one wants to render. The best way to know is to look at examples on each engine's website.
Before being able to use the Raytracing Workbench in FreeCAD, one of these two rendering applications needs to be installed on your system. This is usually very straightforward. They both provide installers for many platforms or are usually included in the software repositories of most Linux distributions.
Once POV-Ray or Luxrender is installed, we need to set the path to their main executable in the FreeCAD preferences. This is usually only required on Windows and Mac. On Linux, FreeCAD will pick it from the standard locations. The location of the povray or luxrender executables can be found by searching your system for files named povray (or povray.exe on Windows) and luxrender (or luxrender.exe on Windows).
In this preferences screen we can also set the desired image size we want to produce.
Rendering with PovRay
We will use the table we have been modelling in the traditional modeling chapter to produce renderings with PovRay and Luxrender.
- Start by loading the table.FCStd file that we modelled earlier or from the link at the bottom of this chapter.
- Press the small down arrow next to the New Povray project button, and choose the RadiosityNormal template
- A warning message might appear telling you that the current 3D view is not in perspective mode and the rendering will therefore differ. Correct this by choosing No, choosing menu View->Perspective view and choosing the RadiosityNormal template again.
- You can also try other templates after you create a new project, simply by editing its Template property.
- A new project has now been created:
- The new project has adopted the point of view of the 3D view as it was at the moment we pressed the button. We can change the view, and update the view position stored in the Povray project anytime, by pressing the Reset camera button.
- The Raytracing Workbench works the same way as the Drawing Workbench: Once a project folder is created, we must add Views of our objects to it. We can now do that by selecting all the objects that compose the table, and press the Insert part button:
- The views have taken the color and transparency values from their original parts, but you can change that in the properties of each individual view if you wish.
- We are now ready to produce our first Povray render. Press the Render button.
- Note for windows users: when receiving (in Povray) a warning saying "I/O restrictions prohibit write access ..."
- open Povray
- choose "Options > Script I/O Restrictions" and make sure it is set to "No Restrictions"
- retry render
- You will be asked to give a file name and path for the .png image that will be saved by Povray.
- Povray will then open and calculate the image.
- When this is done, click the image to close the Povray window. The resulting image will be loaded in FreeCAD:
Rendering with LuxRender
- Rendering with Luxrender works almost the same way. We can leave our file open and create a new Luxrender project in the same file, or reload it to start from scratch.
- Press the little down arrow next to the New Luxrender project button and choose the LuxOutdoor template.
- Select all the components of the table. If you still have the Povray project in your document, be sure to also select the Luxrender project itself, so the views created in the next step won't go in the wrong project by mistake.
- Press the Insert part button.
- Select the Luxrender project, and press the Render button.
- Luxrender works differently to Povray. When you start the render, the Luxrender application will open and immediately start rendering:
- If you leave that window open, Luxrender will continue calculating and rendering forever, progressively refining the image. It is up to you to decide when the image has reached a sufficient quality for your needs, and stop the render.
- There are also many controls to play with, on the left panel. All these controls will change the aspect of the image being rendered on the fly, without stopping the rendering.
- When you feel the quality is good enough, press Render->stop, and then File->Export to image->Tonemapped low dynamic range to save the rendered image to a png file.
You can greatly extend the rendering possibilities of FreeCAD by creating new templates for Povray or Luxrender. This is explained in the Raytracing Workbench documentation.
- The table model: https://github.com/yorikvanhavre/FreeCAD-manual/blob/master/files/table.FCStd
- The file produced during this exercise: https://github.com/yorikvanhavre/FreeCAD-manual/blob/master/files/render.FCStd