1

我不知道如何使用搅拌机,但我需要制作一个跟随渲染的脚本并在出现问题时发送警报。我正在使用 Python 3.5(如果需要,我可以使用其他东西)、Windows 10 和 Blender 2.79

我有一个大问题,我无法在任何地方找到解决方案。我无法读取渲染信息...可能吗?我只能读取当前帧:

bpy.context.scene.frame_current

我需要阅读此图像中包含的所有信息:

在此处输入图像描述

特别:

  • Totale 要渲染的帧
  • 总图块和当前图块

谢谢!

编辑:

我不知道我是否使用了正确的语言……当我谈论渲染时,我的意思是动画的渲染。

编辑2:

我需要控制渲染是否正在进行或由于某种原因崩溃......

4

1 回答 1

2

不幸的是,blender 在渲染时不会向 python 提供信息,反馈仅限于您显示的渲染结果顶部的行。此答案显示了一种bpy.app.handlers用于在某些阶段获取通知的方法。对于监视搅拌机 gui 内渲染的脚本,这可能是您能找到的最好的。

如果您提供一种从搅拌机外部控制渲染的方法,您还有其他一些选择。您可以将 blender 作为CLI 工具启动,-b参数会将其保留在后台(无 gui)并允许您读取其输出以监视它的位置。

我会先运行一个小脚本来获取帧数

blender -b proj.blend --python-expr "import bpy;print(bpy.context.scene.frame_start, bpy.context.scene.frame_end)"

然后,当您渲染动画时,您将获得进度输出,例如

blender -b project.blend -a
...
Fra:3 Mem:17.40M (0.00M, Peak 23.73M) | Time:00:00.10 | Scene, Part 230-240
Fra:3 Mem:17.37M (0.00M, Peak 23.73M) | Time:00:00.10 | Scene, Part 228-240
Fra:3 Mem:17.35M (0.00M, Peak 23.73M) | Time:00:00.10 | Scene, Part 231-240
...

第一个数字是正在渲染的帧,最后两个是刚刚完成的图块和正在渲染的图块总数,您可以查看搅拌器报告的帧时间,但您希望监控接收到的每条线之间的时间间隔并执行某些操作如果输出线之间的时间过长。

于 2018-07-06T05:37:13.063 回答