Скрипт Python для Blender: информация о Get Render - PullRequest
0 голосов
/ 05 июля 2018

Я не знаю, как использовать блендер, но мне нужно сделать скрипт, который следит за рендерингом и отправляет сигнал тревоги, если что-то не так. Я использую Python 3.5 (я мог бы использовать что-то еще, если это необходимо), Windows 10 и Blender 2.79

У меня большая проблема, и я нигде не могу найти решение. Я не могу прочитать информацию рендера ... это возможно? Я могу читать только текущий кадр:

bpy.context.scene.frame_current

Мне нужно прочитать всю информацию, содержащуюся на этом изображении:

enter image description here

в частности:

  • Общая рамка для визуализации
  • Всего плиток и текущих плиток

Спасибо!

EDIT:

Я не знаю, использую ли я правильный язык ... когда я говорю о рендере, я имею в виду рендер анимации.

EDIT2:

Мне нужно проконтролировать, идет ли рендер или по какой-то причине происходит сбой ...

1 Ответ

0 голосов
/ 06 июля 2018

К сожалению, 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
...

Первое число - это рендеринг кадра, последние два - только что законченный тайл и общее количество рендеринга тайлов, вы можете видеть отчеты блендера времени для фрейма, но вы хотите отслеживать, как долго между каждой полученной строкой и сделайте что-нибудь, если это займет слишком много времени между выходными строками.

...