|
@@ -0,0 +1,58 @@
|
|
|
+import os
|
|
|
+import argparse
|
|
|
+
|
|
|
+str_command = "{0} --startindex {1} --images {2} --samples {3} --folder {4} {5}"
|
|
|
+
|
|
|
+def main():
|
|
|
+
|
|
|
+ parser = argparse.ArgumentParser(description="Run and relaunch computation of pbrt-v3")
|
|
|
+
|
|
|
+ parser.add_argument('--pbrt', type=str, help='executable pbrt file', required=True)
|
|
|
+ parser.add_argument('--scenes', type=str, help='folder with all pbrt scenes', required=True)
|
|
|
+ parser.add_argument('--output', type=str, help='output folder for scenes', required=True)
|
|
|
+ parser.add_argument('--samples', type=int, help='number of expected samples for this run', required=True)
|
|
|
+ parser.add_argument('--images', type=int, help='number of expected images for this run', required=True)
|
|
|
+ parser.add_argument('--file', type=str, help='file with expected pbrt scenes to launch', required=True)
|
|
|
+
|
|
|
+ args = parser.parse_args()
|
|
|
+
|
|
|
+ p_pbrt = args.pbrt
|
|
|
+ p_scenes = args.scenes
|
|
|
+ p_output = args.output
|
|
|
+ p_samples = args.samples
|
|
|
+ p_images = args.images
|
|
|
+ p_file = args.file
|
|
|
+
|
|
|
+ with open(p_file, 'r') as f:
|
|
|
+ lines = [ l.replace('\n', '') for l in f.readlines() ]
|
|
|
+
|
|
|
+ for l in lines:
|
|
|
+
|
|
|
+ scene_path = os.path.join(p_scenes, l)
|
|
|
+
|
|
|
+ folder = l.split('/')[-1].replace('.pbrt', '')
|
|
|
+ print(folder)
|
|
|
+ output_folder = os.path.join(p_output, folder)
|
|
|
+
|
|
|
+ # check restart from
|
|
|
+ start_index = 0
|
|
|
+ current_nb_images = p_images
|
|
|
+
|
|
|
+ if os.path.exists(output_folder):
|
|
|
+
|
|
|
+ n_elements = len(os.listdir(output_folder))
|
|
|
+
|
|
|
+ # update start index and number of expected images now
|
|
|
+ start_index = n_elements
|
|
|
+ current_nb_images = p_images - n_elements
|
|
|
+
|
|
|
+
|
|
|
+ if current_nb_images > 0:
|
|
|
+ print('Run {0} images with {1} samples using {2} as first index for : {3}'.format(current_nb_images, p_samples, start_index, l))
|
|
|
+ main_command = str_command.format(p_pbrt, start_index, current_nb_images, p_samples, p_output, scene_path)
|
|
|
+ os.system(main_command)
|
|
|
+ else:
|
|
|
+ print('All expected images already generated for : {0}'.format(l))
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ main()
|