Blender
Blender is best known as a popular open source 3D modelling program.
Installation
GPU rendering
Blender supports a multitude of hardware offloading options for rendering. After preparing your system according to your hardware (see following paragraphs), you can set these your graphics card as a compute device under Edit > Preferences... > System.
NVIDIA GPUs
For NVIDIA, Blender supports two GPU rendering backends: CUDA and OptiX. Most modern NVIDIA GPUs are supported. In order to make use of these, you need to install cuda. Afterwards, the rendering backends should be available in the systems options.
Intel Arc GPUs
If you have a modern Intel Arc GPU, you can make use of Blender's built-in hardware rendering support for those devices. To do so, you need to have the intel-compute-runtime package installed.
As of this writing, you might have to launch Blender with the an additional environment variable set:
CYCLES_ONEAPI_ALL_DEVICES=1 blender
HIP on AMD open source drivers
On supported GPUs (GFX9, CDNA, and RDNA; see the official hardware compatibility list for more info), hip-runtime-amd can be used to get GPU acceleration through HIP in Blender, using Mesa.
To get HIP working in Blender, install hip-runtime-amd and select your GPU in the Blender's Preferences, same as with proprietary drivers.
Professional rendering plugins
Blender is becoming increasingly well known in the professional industry. As such, there are now alternative rendering methods to EEVEE and Cycles, in the form of plugins. This should serve as a list of the major professional rendering plugins that are released or upcoming for Linux.
BlendNet
BlendNet is an open source plugin that allows distributing CPU and GPU renders across multiple machines.
BlendNet natively integrates with major cloud providers like AWS, Azure or GCP, and also supports self-hosting your own render farm.
Cloud integration
- Install the blendnetAUR package
- Enable the BlendNet plugin in Preferences -> Add-ons -> Enable "Render: BlendNet"
- Follow the instructions on the official BlendNet wiki to configure a render farm on AWS, Azure or GCP.
Self-hosting
The blendnetAUR package provides systemd units and configuration to quickly deploy your own CUDA GPU-accelerated Blendnet render farm.
A BlendNet render farm consists of one Manager instance, which distributes tasks to multiple Agent machines. The blender Addon connects to the Manager and the Agents to schedule renders. See the BlendNet wiki for more information on BlendNet architecture.
To start, install blendnetAUR on the Manager, Agent and Addon machines, then follow these instructions.
Setup: Manager
- Copy
/etc/blendnet/server.key
and/etc/blendnet/server.crt
to all Agent and Addon machines, to/etc/blendnet/
. - Edit
/etc/blendnet/manager.json
, adding a manager username and password. - Edit
/etc/blendnet/manager.json
, adding an agent username and password. - Start/enable the
blendnet-manager.service
unit.
Setup: Agent
- Edit
/etc/blendnet/agent.json
, adding the same agent username and password used in the Manager. - Start/enable the
blendnet-agent.service
unit.
If cuda is installed, blendnetAUR will automatically enable GPU+CPU acceleration: you can check whether GPU acceleration is in use by checking the agent logs:
$ journalctl -xefu blendnet-agent.service
Setup: Addon
- Enable the BlendNet plugin in Preferences -> Add-ons -> Enable "Render: BlendNet".
- Configure the plugin with the Manager/Agent usernames and passwords.
- Specify the CA certificate located in
/etc/blendnet/server.crt
. - Close Preferences, open the Render tab and switch to the Cycles rendering engine (**NOT** BlendNet!).
- Add all Agents using the
+
button in the new "BlendNet Render (local)" Cycles panel. - Follow the BlendNet rendering instructions.
LuxCoreRender
LuxCoreRender[dead link 2024-07-30 ⓘ] is an open source rendering method that can also make use of OpenCL to render. To make use of it, simply install the (blender-plugin-luxcorerenderAUR) package and then enable the LuxCoreRender addon in the User Preferences box in Blender.
RenderMan
RenderMan is a Linux compatible proprietary rendering plugin that is free for use with blender under a non-commercial license. See the Renderman page for setting it up with blender.
Pro-Render
Pro-Render is an open source Blender rendering plugin from AMD that will allow any machine using an OpenCL 1.2 compatible AMD GPU the ability to create realistic GPU renders, allowing for faster work compared to the CPU.
Blend4Web
Blend4Web is an open source framework for creating and displaying interactive 3D graphics in web browsers. It contains a Blender add-on to create and export 3D scenes directly into the web. A Blend4Web-specific profile can be activated in the add-on settings. When switching to this profile, the Blender interface changes so that it only reveals settings relevant to Blend4Web. See the documentation on how to install Blend4Web SDK.
Verge3D
Verge3D for Blender is a real-time renderer and a toolkit from the original creators of Blend4Web. It contains Puzzles visual editor to allow creating interactive web applications without coding.
Troubleshooting
Blender is slow to select objects
When using onboard Intel graphics, it may take 5-10 seconds to select an object. Change Selection in File > User Preferences > System to OpenGL Occlusion Queries.
Blender does not show the AMD card as an OpenCL rendering device
Blender only supports the official AMD proprietary drivers for rendering with OpenCL (for now), meaning you will need to install one of the following AMD OpenCL drivers:
- Install AMDGPU PRO
- Install opencl-amdAUR driver alongside the open source AMDGPU driver
After installation, the AMD GPU should now appear as a selectable device under File > User Preferences > System > Compute Device.
Note: Blender developers decided to switch another API (HIP) and deprecate OpenCL support. This will happen in Blender 3.0 release (4th December 2021). More information.
Blender crashes on i915
Blender gets unresponsive simply by resizing the startup cube, dmesg shows messages about a GPU hang:
kernel: i915 0000:00:02.0: [drm] blender[90663] context reset due to GPU hang kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 9:1:85df9ebf, in blender [90663]
Workaround based on the Upstream Bug and a question on AskUbuntu:
- Start Blender with the environment variable
INTEL_DEBUG=reemit
, i.e. by changing the .desktop file's Exec line toExec=env INTEL_DEBUG=reemit blender %f
- Increase the preemtion timeout to 10 000 ms. To persist this, add a udev rule:
/etc/udev/rules.d/99-i915-increase-preemt-timeout.rules
# Increase Intel preemt timeout to 10 000 ms # # This is needed for Blender not to crush, see # https://askubuntu.com/questions/1477715/blender-hangs-using-intel-integrated-graphics ACTION=="add|bind",SUBSYSTEM=="pci",DRIVER=="i915",RUN+="/bin/bash -c 'for i in /sys/$DEVPATH/drm/card?/engine/[rc]cs*/preempt_timeout_ms; do echo 10000 > $i; done'"
Interface text
If fonts look small or blurry, their size can be increased (by a point or two) in User Preferences > Themes > Text Style. Selecting a bold font family as Interface Font in User Preferences > Themes > System can also greatly decrease blurriness.
See also
- Blender manual
- Blender wiki on Reddit
- Sheepit free, distributed render farm for Blender