К сожалению, blender не предоставляет информацию для python во время рендеринга, обратная связь ограничена строкой в верхней части результата рендеринга, который вы показываете. Этот ответ показывает способ использования bpy.app.handlers
для получения уведомлений на определенных этапах. Для скрипта для мониторинга рендера внутри графического интерфейса blenders это, вероятно, лучшее, что вы найдете.
Если вы предоставляете способ управления рендерингом из-за пределов блендера, у вас есть несколько других вариантов. Вы можете запустить blender как CLI tool , аргумент -b
будет держать его в фоновом режиме (без графического интерфейса пользователя) и позволять вам читать его вывод для мониторинга, где он находится.
Я бы сначала запустил небольшой скрипт, чтобы узнать количество кадров
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
...
Первое число - это рендеринг кадра, последние два - только что законченный тайл и общее количество рендеринга тайлов, вы можете видеть отчеты блендера времени для фрейма, но вы хотите отслеживать, как долго между каждой полученной строкой и сделайте что-нибудь, если это займет слишком много времени между выходными строками.