【问题标题】:Render using a blender script in google colab在 google colab 中使用搅拌机脚本进行渲染
【发布时间】:2022-01-05 16:44:17
【问题描述】:

我正在尝试使用 google colab pro 提供的 GPU 在搅拌机中运行脚本。

我使用以下代码来安装和配置 Blender:

import os
os.environ["LD_PRELOAD"] = ""

!apt remove libtcmalloc-minimal4
!apt install libtcmalloc-minimal4

os.environ["LD_PRELOAD"] = "/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0"

!wget https://download.blender.org/release/Blender2.93/blender-2.93.0-linux-x64.tar.xz
!tar -xf blender-2.93.0-linux-x64.tar.xz

# if you still get any errors regarding LD_PRELOAD you can check whether a good path is applied (if the version of library has not changed)
!dpkg -L libtcmalloc-minimal4 

!ln -s /content/blender-2.93.0-stable+blender-v293-release.84da05a8b806-linux.x86_64-release/blender /usr/local/bin/blender
!blender -v

之后,我按如下方式运行我的脚本:

!blender -b -noaudio --python /content/code/generate_images.py -E CYCLES -a --cycles-device CUDA 

但它给出了以下错误:

Unable to open a display

脚本 generate_images.py 包含一系列操作(相机和灯光被创建,相机沿着预先定义的位置轨迹移动),并且在相机的每个位置渲染图像。 我注意到当到达以下行时会出现错误:

bpy.ops.render.render(write_still=True)

脚本在我的笔记本电脑本地完美运行。你对这个问题有任何线索吗?

【问题讨论】:

  • 搅拌机可以做headless rendering。看起来您可能只需要传入 --background 标志?
  • 参数-b应该和--background一样
  • 请不要在问题部分包含解决方案;而是选择在下面的“答案”部分添加一个答案作为自我答案。这让其他人在以后查看您的问题时更容易找到。

标签: python google-colaboratory render blender bpy


【解决方案1】:

我能够通过添加解决问题

bpy.context.scene.render.engine = 'CYCLES'

在要在 Blender 中执行的 python 脚本中,就在之前

bpy.ops.render.render(write_still=True)

【讨论】:

    【解决方案2】:

    您应该在机器上渲染一次,然后再将其带到 colab 进行渲染

    【讨论】:

      最近更新 更多