Blender
Blender 是最为知名的开源3D建模程序。
安装[编辑 | 编辑源代码]
安装软件包 blender包 。
GPU 渲染[编辑 | 编辑源代码]
Blender支持大多数硬件加速渲染。在根据你的硬件准备好系统(见下文)后,你可以在编辑 > 偏好设置... > 系统中选择显卡作为渲染设备。
NVIDIA显卡[编辑 | 编辑源代码]
Blender支持CUDA和OptiX两个渲染后端用于NVIDA显卡,大多数现代NVIDIA显卡都受支持。为了使用这些后端,需要安装cuda包。之后系统选项中应该能够看到相关选项。
Intel Arc显卡[编辑 | 编辑源代码]
如果你有一块现代Intel Arc显卡,你可以使用Blender内建的硬件支持,前提是已经安装了intel-compute-runtime包。
在本文撰写之时,你可能需要为Blender指定一个额外的环境变量:
CYCLES_ONEAPI_ALL_DEVICES=1 blender
AMD 开源驱动上的 HIP[编辑 | 编辑源代码]
对于支持的GPU而言 (GFX9, CDNA, 以及 RDNA, 详情请参考官方的硬件兼容列表),安装hip-runtime-amd包来通过HIP获得Blender的GPU加速功能,使用Mesa驱动。
要在Blender中启用HIP,安装hip-runtime-amd包并在Blender偏好设置中选择你的GPU。
专业的渲染插件[编辑 | 编辑源代码]
Blender在专业领域以及工业上越来越知名。因此,目前已有不少EEVEE和Cycles渲染引擎的替代品,它们以插件的形式存在。以下列出了在Linux上发布或者即将发布的专业渲染插件列表。
BlendNet[编辑 | 编辑源代码]
BlendNet 是一个开源的插件,它能让多台机器上的CPU和GPU协作渲染。
BlendNet内置了对主要云服务的支持,例如AWS, Azure 或者 GCP, 而且也支持您自己的渲染农场。
集成云服务器[编辑 | 编辑源代码]
- 安装软件包 blendnetAUR。
- 在偏好设置 -> 插件 -> Render: BlendNet 中启用BlendNet插件
- 按照官方BlendNet wiki的指引,配置好AWS、Azure或GCP上的渲染农场
自建服务器[编辑 | 编辑源代码]
blendnetAUR 提供了systemd单元和配置,这让您能便利地部署您自己的CUDA GPU加速的Blendnet渲染农场。
BlendNet渲染农场由一个“管理员”实例与多个代理机器组成。 blender插件连接到管理员,借此安排渲染作业。 参看 BlendNet wiki 以了解更多和BlendNet架构有关的内容。
首先,请在管理员、代理和安装插件的机器上都安装好 blendnetAUR,然后按照以下步骤执行。
设置: 管理员[编辑 | 编辑源代码]
- 复制
/etc/blendnet/server.key
和/etc/blendnet/server.crt
到所有管理员、代理和安装插件的机器上的/etc/blendnet/
目录. - 编辑
/etc/blendnet/manager.json
,添加管理员用户名和密码。 - 编辑
/etc/blendnet/manager.json
,添加代理用户名和密码。 - 启动/启用
blendnet-manager.service
服务。
设置: 代理[编辑 | 编辑源代码]
- 编辑
/etc/blendnet/agent.json
添加和管理员机器中相同的代理用户名和密码。 - 启动/启用
blendnet-agent.service
服务。
如果安装来cuda包,blendnetAUR会自动启用GPU+CPU加速:你可以通过查看代理机器的日志来检查GPU加速是否启用:
$ journalctl -xefu blendnet-agent.service
设置: 插件[编辑 | 编辑源代码]
- 在偏好设置 -> 插件 -> Render: BlendNet 中启用BlendNet插件。
- 为插件配置管理员/代理的用户名和密码。
- 指定
/etc/blendnet/server.crt
中的CA证书。 - 关闭偏好设置,打开渲染属性并启用Cycles渲染引擎 (不是BlendNet!)
- 通过"BlendNet Render (local)"的Cycles面板中
+
添加所有代理。 - 根据BlendNet 渲染说明完成剩余步骤。
LuxCoreRender[编辑 | 编辑源代码]
LuxCoreRender[失效链接 2024-07-30 ⓘ]是一个使用OpenCL的开源渲染方法。安装blender-plugin-luxcorerenderAUR并在用户偏好中启用LuxCoreRender插件以使用该渲染器。
RenderMan[编辑 | 编辑源代码]
RenderMan是一个兼容Linux的私有渲染插件,在非商业协议下可自由使用,参见相关内容。
Pro-Render[编辑 | 编辑源代码]
Pro-Render是一个来源于AMD的开源插件,能够让兼容OpenCL 1.2的设备创建逼真的GPU渲染,与CPU渲染相比加速了渲染速度。
Blend4Web[编辑 | 编辑源代码]
Blend4Web是一个用于在网络浏览器中创建并显示3D图像的开源框架。包含一个Blender插件来直接创建并导出3D场景到网页。在插件设置中激活Blend4Web专有配置文件,当切换到这个配置后,Blender界面会改变为仅显示与Blender4Web相关的设置。参见相关文档来安装Blender4Web SDK。
Verge3D[编辑 | 编辑源代码]
Verge3D是一个实时渲染器,工具包来源于Blend4Web的原创团队。包含Puzzles视觉编辑器来允许不通过代码创作可交互网页应用。
解决问题[编辑 | 编辑源代码]
Blender在选择对象时会很卡顿[编辑 | 编辑源代码]
当使用集成Intel显卡时,可能要5-10秒才能选择一个对象。在File > User Preferences > System 中将 Selection 改为 OpenGL Occlusion Queries。
Blender未把AMD显卡列在OpenCL渲染设备中[编辑 | 编辑源代码]
Blender(目前)仅支持AMD官方专有驱动来启用OpenCL,意味着你需要安装以下任意一个AMD OpenCL驱动:
- AMDGPU PRO
- opencl-amdAUR驱动搭配开源AMDGPU驱动
安装后AMD GPU应该会出现在渲染设备中,通过 File > User Preferences > System > Compute Device 选择。
Blender 在 i915 上崩溃[编辑 | 编辑源代码]
仅仅更改初始界面中的立方体大小,就会导致Blender无响应,dmesg显示关于GPU挂起的信息:
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,也就是说将Blender .desktop文件的Exec行内容改为Exec=env INTEL_DEBUG=reemit blender %f
- 增加preemtion超时限制到 10 000 ms。要永久改变这个值,添加一个udev规则:
/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'"
界面文字[编辑 | 编辑源代码]
如果自己过小或模糊,字体大小可以通过User Preferences > Themes > Text Style增加(一或两磅)。在User Preferences > Themes > System选择加粗字体作为界面字体可以明显降低模糊。
参阅[编辑 | 编辑源代码]
- Blender manual
- Reddit 上的 Blender wiki
- Sheepit 免费、分布式的Blender渲染农场