A FreeCAD workbench to produce high-quality rendered images from your FreeCAD document, using open-source external rendering engines.
This software is free: we contributors do not make any profit from its use by anyone. We develop it voluntarily in the sole hope that it will be useful to someone, and our only reward is the recognition it receives. Therefore if you think Render Workbench deserves it, do not hesitate to give it a star ⭐ on Github: it will make our day! Thank you...
The Render Workbench is a replacement for the built-in Raytracing Workbench of FreeCAD. It is based on the same philosophy, but aims to improve certain aspects of Raytracing:
- The Render Workbench is written fully in Python, which should make it much easier to understand and extend by non-C++ programmers.
- Exporters to rendering engines are implemented as plugins, which should facilitate the addition of new engines. The Render Workbench already supports several more renderers than Raytracing Workbench, like Appleseed, LuxCoreRender and Cycles.
- The Render Workbench provides enhanced features, compared to Raytracing:
- various scene lighting features (point lights, area lights, sunsky etc.) and preconfigured lightings as templates
- camera enhanced control
- material support
- texture support
- renderers' advanced features handling: denoising, batch mode etc.
At the moment, the following rendering engines are supported:
- Pov-Ray
- LuxCoreRender
- Appleseed
- Blender Cycles ( standalone )
- Intel Ospray Studio
- Pbrt v4 (experimental)
- LuxRender (deprecated in favor of LuxCoreRender)
The Render Workbench is part of the FreeCAD Addons
repository, and thus can be
installed from menu Tools > Addon Manager
in FreeCAD. This is the recommended
installation method.
However, alternatively, it can also be installed
manually by downloading this repository using the "clone or download" button
above. Refer to FreeCAD
documentation
to learn more.
In addition to workbench installation, you will also need to install and set up one or more external rendering engines, among the supported ones.
In quick-start mode, after installation has correctly been done, rendering a FreeCAD model is just a 4-steps process:
-
Create a rendering project: Press the button in the toolbar corresponding to your renderer and select a template suitable for your renderer
(you may start with a 'studio' flavour, like appleseed_studio_light.appleseed, cycles_studio_light.xml, luxcore_studio_light.cfg or povray_studio_light.pov) -
Add views of your objects to your rendering project: Select both the objects and the project, and press the 'Add view' button
-
Set your point of view: Navigate in FreeCAD 3D View to the desired position and switch to Perspective mode.
-
Render: Select your project and press the 'Render' button in toolbar (also available in project's context menu).
...and you should get a first rendering of your model.
You may also find a short tutorial on how to get started here: https://www.youtube.com/watch?v=8wsOnwjKG9M
Optionally, you may tweak some particulars of your scene:
- Modify some options of your rendering project
- Adjust the way a particular object is rendered (view options)
- Add lights to your scene
- Add extra cameras
- Add materials to your objects
- Add textures to your materials
These adjustments should take place between steps 2 and 3.
When using an AppImage, you might be confronted with an error like this on execution of the "Render" command:
.../usr/lib/libstdc++.so.6: version 'CXXABI_1.3.15' not found
This is due to different library versions between your host system and the AppImage. As a workaround, provide your host system libraries to the rendering command using the "Prefix" field in the Render WB configuration:
env LD_LIBRARY_PATH="/usr/lib64"
The target path must be fitted to your distro.
You may also use such a wrapper (Luxcore example):
#!/bin/bash
LUXCORE_BIN=$(readlink -f $(dirname $0))
LUXCORE_LIB=/lib/x86_64-linux-gnu/
export LD_LIBRARY_PATH=$LUXCORE_LIB:$LD_LIBRARY_PATH
$LUXCORE_BIN/luxcoreui "$@"
(thanks to @ysard contribution in issue #456 and @jphigham in issue #159).
Any contributions are welcome! Please read our Contributing guidelines beforehand.
For feedback, bugs, feature requests, and further discussion please use a dedicated FreeCAD forum thread, or open an issue in this Github repo.
This project is covered by FreeCAD Code of Conduct. Please comply to this code in all your contributions (issue openings, pull requests...).
The Render Workbench is licensed under the terms of GNU Lesser General Public
License (GNU LGPL) version 2 or any later version, except plugins help
and
materialx
(located in Render/plugins directory), that are
licensed under the terms of GNU General Public License (GNU GPL) version 3 or
any later version. See LICENSE file for more information.