mirror of
https://github.com/blw1138/Zordon.git
synced 2026-02-05 13:46:10 +00:00
Cleanup Blender job creation
This commit is contained in:
@@ -18,14 +18,13 @@ class BlenderRenderWorker(BaseRenderWorker):
|
||||
self.__frame_percent_complete = 0.0
|
||||
|
||||
# Scene Info
|
||||
self.scene_info = Blender(engine_path).get_project_info(input_path)
|
||||
self.start_frame = int(self.scene_info.get('start_frame', 1))
|
||||
self.end_frame = int(self.scene_info.get('end_frame', self.start_frame))
|
||||
self.project_length = (self.end_frame - self.start_frame) + 1
|
||||
self.scene_info = {}
|
||||
self.current_frame = -1
|
||||
|
||||
def generate_worker_subprocess(self):
|
||||
|
||||
self.scene_info = Blender(self.engine_path).get_project_info(self.input_path)
|
||||
|
||||
cmd = [self.engine_path]
|
||||
if self.args.get('background', True): # optionally run render not in background
|
||||
cmd.append('-b')
|
||||
@@ -85,11 +84,15 @@ class BlenderRenderWorker(BaseRenderWorker):
|
||||
|
||||
def _parse_stdout(self, line):
|
||||
|
||||
pattern = re.compile(
|
||||
cycles_pattern = re.compile(
|
||||
r'Fra:(?P<frame>\d*).*Mem:(?P<memory>\S+).*Time:(?P<time>\S+)(?:.*Remaining:)?(?P<remaining>\S*)')
|
||||
found = pattern.search(line)
|
||||
if found:
|
||||
stats = found.groupdict()
|
||||
cycles_match = cycles_pattern.search(line)
|
||||
eevee_pattern = re.compile(
|
||||
r"Rendering\s+(?P<current>\d+)\s*/\s*(?P<total>\d+)\s+samples"
|
||||
)
|
||||
eevee_match = eevee_pattern.search(line)
|
||||
if cycles_match:
|
||||
stats = cycles_match.groupdict()
|
||||
memory_use = stats['memory']
|
||||
time_elapsed = stats['time']
|
||||
time_remaining = stats['remaining'] or 'Unknown'
|
||||
@@ -104,6 +107,11 @@ class BlenderRenderWorker(BaseRenderWorker):
|
||||
logger.debug(
|
||||
'Frame:{0} | Mem:{1} | Time:{2} | Remaining:{3}'.format(self.current_frame, memory_use,
|
||||
time_elapsed, time_remaining))
|
||||
elif eevee_match:
|
||||
self.__frame_percent_complete = int(eevee_match.groups()[0]) / int(eevee_match.groups()[1])
|
||||
logger.debug(f'Frame:{self.current_frame} | Samples:{eevee_match.groups()[0]}/{eevee_match.groups()[1]}')
|
||||
elif "Rendering frame" in line: # used for eevee
|
||||
self.current_frame = int(line.split("Rendering frame")[-1].strip())
|
||||
elif "file doesn't exist" in line.lower():
|
||||
self.log_error(line, halt_render=True)
|
||||
elif line.lower().startswith('error'):
|
||||
|
||||
Reference in New Issue
Block a user