繁体   English   中英

Blender的Python脚本:获取渲染信息

[英]Python script for Blender: Get Render informations

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

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

bpy.context.scene.frame_current

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

在此处输入图片说明

尤其:

  • 要渲染的总体框架
  • 总图块和当前图块

谢谢!

编辑:

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

EDIT2:

我需要控制渲染是否由于某种原因而崩溃或崩溃...

不幸的是,Blender在渲染时没有向python提供信息,反馈仅限于您显示的渲染结果顶部的行。 此答案显示了使用bpy.app.handlers在某些阶段获取通知的方法。 对于监视混合器gui中的渲染的脚本来说,这可能是最好的。

如果您提供了一种从Blender外部控制渲染的方法,那么您还有其他选择。 您可以将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
...

第一个数字是正在渲染的帧,后两个数字是刚完成的图块和正在渲染的总图块,您可以查看该帧的时间混合器报告,但是您想监视每行接收之间的间隔时间并执行一些操作如果输出线之间的时间太长。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM