簡體   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