diff --git a/render-worker/scripts/turntable_render.py b/render-worker/scripts/turntable_render.py index 77f5523..78d8cf0 100644 --- a/render-worker/scripts/turntable_render.py +++ b/render-worker/scripts/turntable_render.py @@ -363,6 +363,12 @@ def main(): _idx = argv.index("--sensor-width") _sensor_width = float(argv[_idx + 1]) if _idx + 1 < len(argv) else None + # Named argument: --material-override + _material_override = None + if "--material-override" in argv: + _idx = argv.index("--material-override") + _material_override = argv[_idx + 1] if _idx + 1 < len(argv) else None + # Ensure scripts dir is on path for shared module imports _scripts_dir = os.path.dirname(os.path.abspath(__file__)) if _scripts_dir not in sys.path: @@ -447,6 +453,14 @@ def main(): for part in parts: _apply_smooth(part, SMOOTH_ANGLE) + # Apply material override if set + if _material_override: + print(f"[turntable_render] material_override active: all parts → {_material_override}", flush=True) + if _usd_mat_lookup: + _usd_mat_lookup = {k: _material_override for k in _usd_mat_lookup} + if material_map: + material_map = {k: _material_override for k in material_map} + # Material assignment: USD primvar path first, then name-matching fallback if material_library_path and _usd_mat_lookup: _apply_material_library_direct(parts, material_library_path, _usd_mat_lookup) @@ -531,6 +545,14 @@ def main(): for i, part in enumerate(parts): _apply_smooth(part, SMOOTH_ANGLE) + # Apply material override if set (object-rotation mode) + if _material_override: + print(f"[turntable_render] material_override active (obj-rot): all parts → {_material_override}", flush=True) + if _usd_mat_lookup: + _usd_mat_lookup = {k: _material_override for k in _usd_mat_lookup} + if material_map: + material_map = {k: _material_override for k in material_map} + # Material assignment: USD primvar path first, then name-matching fallback if material_library_path and _usd_mat_lookup: _apply_material_library_direct(parts, material_library_path, _usd_mat_lookup)