| 129 | # --------------------------------------------------------------------------- |
| 130 | |
| 131 | def parse_args(): |
| 132 | scene = DEFAULT_SCENE |
| 133 | out = None |
| 134 | samples = DEFAULT_SAMPLES |
| 135 | device = DEFAULT_DEVICE |
| 136 | view = "Standard" |
| 137 | if "--" in sys.argv: |
| 138 | argv = sys.argv[sys.argv.index("--") + 1:] |
| 139 | else: |
| 140 | argv = [] |
| 141 | i = 0 |
| 142 | while i < len(argv): |
| 143 | a = argv[i] |
| 144 | if a == "--scene" and i + 1 < len(argv): |
| 145 | scene = argv[i + 1]; i += 2; continue |
| 146 | if a == "--out" and i + 1 < len(argv): |
| 147 | out = argv[i + 1]; i += 2; continue |
| 148 | if a == "--samples" and i + 1 < len(argv): |
| 149 | samples = int(argv[i + 1]); i += 2; continue |
| 150 | if a == "--device" and i + 1 < len(argv): |
| 151 | device = argv[i + 1].upper(); i += 2; continue |
| 152 | if a == "--view" and i + 1 < len(argv): |
| 153 | view = argv[i + 1]; i += 2; continue |
| 154 | i += 1 |
| 155 | if scene not in SCENES: |
| 156 | raise ValueError(f"Unknown --scene {scene!r}; valid: {list(SCENES.keys())}") |
| 157 | if out is None: |
| 158 | out = SCENES[scene]["default_out"] |
| 159 | return scene, out, samples, device, view |
| 160 | |
| 161 | |
| 162 | # --------------------------------------------------------------------------- |