Blender
Blender 是一款广为人知的流行开源 3D 建模程序。
安装
GPU 渲染
Blender 支持多种硬件卸载渲染选项。在根据您的硬件准备好系统后(见下文),您可以在 编辑 > 偏好设置... > 系统 (Edit > Preferences... > System) 中将显卡设置为计算设备。
NVIDIA GPU
对于 NVIDIA,Blender 支持两种 GPU 渲染后端:CUDA 和 OptiX。大多数现代 NVIDIA GPU 均受支持。为了使用这些功能,您需要安装 cuda。之后,渲染后端应在系统选项中可用。
Intel Arc GPU
如果您拥有现代 Intel Arc GPU,可以使用 Blender 为这些设备内置的硬件渲染支持。为此,您需要安装 intel-compute-runtime 软件包。
在撰写本文时,您可能需要设置额外的 环境变量 来启动 Blender
CYCLES_ONEAPI_ALL_DEVICES=1 blender
如果您遇到未检测到 OneAPI 设备的问题,该问题可能与使用 Arch Linux 的 blender 构建版本有关 (FS#77554)。在这种情况下,Blender 的官方构建版本可能会解决此问题。
如需硬件光线追踪支持,请安装 intel-level-zero-raytracing-supportAUR。
AMD 开源驱动上的 HIP
在支持的 GPU 上 (GFX9, CDNA 和 RDNA;详见 官方硬件兼容性列表),可以使用 hip-runtime-amd 通过 Mesa 在 Blender 中获得 HIP 的 GPU 加速。
要在 Blender 中启用 HIP,请安装 hip-runtime-amd,并在 Blender 的偏好设置中选择您的 GPU,操作方式与使用私有驱动相同。
在支持的 GPU 上启用硬件光线追踪
要在 Navi 2x (AMD 6xxx 系列) 及更高版本上启用硬件光线追踪,必须安装 hiprt。最低 Blender 版本要求为 3.5+。
与软件光线追踪相比,这为 Navi 3x 带来了稳定的 20% 速度提升。
专业渲染插件
Blender 在专业领域日益知名。因此,现在除了 EEVEE 和 Cycles 之外,还出现了以插件形式提供的替代渲染方法。以下是已发布或即将用于 Linux 的主要专业渲染插件列表。
BlendNet
BlendNet 是一款开源插件,允许将 CPU 和 GPU 渲染任务分布到多台机器上。
BlendNet 原生集成 AWS、Azure 或 GCP 等主流云服务提供商,同时也支持自托管自己的渲染农场。
云集成
- 安装 blendnetAUR 软件包
- 在 偏好设置 -> 插件 -> 启用 "Render: BlendNet"
- 参考官方 BlendNet wiki 上的说明,在 AWS, Azure 或 GCP 上配置渲染农场。
自托管
blendnetAUR 软件包提供了 systemd 单元和配置,以便快速部署您自己的 CUDA GPU 加速 Blendnet 渲染农场。
一个 BlendNet 渲染农场由一个管理器 (Manager) 实例组成,它将任务分配给多个代理 (Agent) 机器。Blender 插件连接到管理器和代理以调度渲染。有关 BlendNet 架构的更多信息,请参阅 BlendNet wiki。
首先,在管理器、代理和插件机器上安装 blendnetAUR,然后按照以下说明操作。
设置:管理器 (Manager)
- 将
/etc/blendnet/server.key和/etc/blendnet/server.crt复制到所有代理和插件机器的/etc/blendnet/目录下。 - 编辑
/etc/blendnet/manager.json,添加管理者的用户名和密码。 - 编辑
/etc/blendnet/manager.json,添加代理的用户名和密码。 - 启动/启用
blendnet-manager.service单元。
设置:代理 (Agent)
- 编辑
/etc/blendnet/agent.json,添加与管理器中相同代理用户名和密码。 - 启动/启用
blendnet-agent.service单元。
如果安装了 cuda,blendnetAUR 将自动启用 GPU+CPU 加速:您可以通过检查代理日志来确认是否使用了 GPU 加速
$ journalctl -xefu blendnet-agent.service
设置:插件 (Addon)
- 在 偏好设置 -> 插件 -> 启用 "Render: BlendNet"。
- 使用管理器/代理的用户名和密码配置插件。
- 指定位于
/etc/blendnet/server.crt的 CA 证书。 - 关闭偏好设置,打开渲染标签页并切换到 Cycles 渲染引擎(**不要**切换到 BlendNet!)。
- 使用新出现的 "BlendNet Render (local)" Cycles 面板中的
+按钮添加所有代理。 - 参考 BlendNet 渲染指南。
LuxCoreRender
LuxCoreRender 是一种开源渲染方法,也可以利用 OpenCL 进行渲染。要使用它,只需安装 (blender-plugin-luxcorerenderAUR) 软件包,然后在 Blender 的用户偏好设置框中启用 LuxCoreRender 插件。
RenderMan
RenderMan 是一个兼容 Linux 的私有渲染插件,在非商业许可下可免费用于 Blender。请参阅 Renderman 页面 了解如何在 Blender 中设置它。
Pro-Render
Pro-Render 是 AMD 提供的一款开源 Blender 渲染插件,允许任何使用兼容 OpenCL 1.2 的 AMD GPU 的机器创建逼真的 GPU 渲染,从而比 CPU 渲染速度更快。
Blend4Web
Blend4Web 是一个用于在 Web 浏览器中创建和显示交互式 3D 图形的开源框架。它包含一个 Blender 插件,可直接将 3D 场景创建并导出到 Web。在插件设置中可以激活 Blend4Web 特定配置文件。切换到该配置文件后,Blender 界面会发生变化,仅显示与 Blend4Web 相关的设置。请参阅 文档 了解如何安装 Blend4Web SDK。
Verge3D
用于 Blender 的 Verge3D 是由 Blend4Web 原创团队开发的实时渲染器和工具包。它包含 Puzzles 可视化编辑器,允许在无需编码的情况下创建交互式 Web 应用程序。
故障排除
Blender 选择物体速度缓慢
使用 Intel 集成显卡时,选择物体可能需要 5-10 秒。请将 文件 > 用户偏好设置 > 系统 (File > User Preferences > System) 中的 选择 (Selection) 更改为 OpenGL 遮挡查询 (OpenGL Occlusion Queries)。
Blender 未将 AMD 显卡显示为 OpenCL 渲染设备
Blender (目前) 仅支持 AMD 官方私有驱动进行 OpenCL 渲染,这意味着您需要安装以下 AMD OpenCL 驱动程序之一
- 安装 AMDGPU PRO
- 在开源 AMDGPU 驱动的同时安装 opencl-amdAUR 驱动
安装后,AMD GPU 应该出现在 文件 > 用户偏好设置 > 系统 > 计算设备 (File > User Preferences > System > Compute Device) 的可选设备列表中。
注意:Blender 开发者决定切换到另一个 API (HIP) 并弃用 OpenCL 支持。这将发生在 Blender 3.0 版本中(2021 年 12 月 4 日)。更多信息。
Blender 在 i915 上崩溃
仅仅通过调整启动立方体的大小,Blender 就会失去响应,dmesg 显示关于 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]
基于 上游 Bug 和 AskUbuntu 上的一个问题 的临时解决方案
- 使用环境变量
INTEL_DEBUG=reemit启动 Blender,例如将 .desktop 文件的 Exec 行更改为Exec=env INTEL_DEBUG=reemit blender %f - 将抢占超时 (preemption timeout) 增加到 10,000 毫秒。若要使其持久化,请添加 udev 规则
/etc/udev/rules.d/99-i915-increase-preemt-timeout.rules
# Increase Intel preempt timeout # # 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'"
界面文本
如果字体看起来太小或模糊,可以在 用户偏好设置 > 主题 > 文本样式 (User Preferences > Themes > Text Style) 中增加其大小(增加一两个点)。在 用户偏好设置 > 主题 > 系统 (User Preferences > Themes > System) 中将 界面字体 (Interface Font) 选择为粗体字体系列也可以大大减少模糊感。
Python 版本与插件不兼容
Windows 和 macOS 版本的 Blender 使用捆绑的 Python 安装。[1] 另一方面,Arch 的 blender 软件包使用系统的 python,这可能比其他平台更新(见 archlinux/packaging/packages/blender#1)。即使 Blender 本身运行良好,第三方插件也可能加载失败
Extension bl_ext.user_default.example_plugin is incompatible (This Python version (3.X) isn't compatible with (3.11))
在这种情况下,您可以切换到以下任何一种:
- blender-binAUR,它捆绑了预期的 Python 版本。
- https://blender.org/ 上的预编译版本。
- flatpak 版本。
参见
- Blender 手册
- Reddit 上的 Blender wiki
- Sheepit 免费、分布式的 Blender 渲染农场