"""(Robot cell) Quick look from the picture's own camera and an overlay on the picture, for fitting (headless, nothing saved): blender.exe -b ../RobotCell.blend --python cs_overlay.py -- [tag] previews/fit/wb_.png Workbench, flat colours by material, the picture's framing previews/fit/overlay_.png the picture with the model's outline (silhouette and part edges) drawn over it previews/fit/blend_.png the picture and the render half and half """ import bpy, os, sys, subprocess HERE = os.path.dirname(os.path.abspath(__file__)) FOLDER = os.path.dirname(HERE) OUT = os.path.join(FOLDER, "previews", "fit") os.makedirs(OUT, exist_ok=True) argv = sys.argv[sys.argv.index("--") + 1:] if "--" in sys.argv else [] tag = argv[0] if argv else "a" COL = {"M_RC_Frame": (0.16, 0.16, 0.17), "M_RC_Panel": (0.10, 0.10, 0.11), "M_RC_Black": (0.03, 0.03, 0.03), "M_RC_Glass": (0.25, 0.45, 0.55), "M_RC_Tread": (0.20, 0.24, 0.30), "M_RC_Copper": (0.80, 0.45, 0.25), "M_RC_Chrome": (0.85, 0.85, 0.85), "M_RC_Rubber": (0.01, 0.01, 0.01), "M_RC_Gap": (0.0, 0.0, 0.0), "M_RC_LED": (1.0, 1.0, 1.0), "M_RC_Screen": (0.1, 0.4, 0.6), "M_RC_Decal": (1.0, 1.0, 1.0), "M_RC_Lamp": (1.0, 1.0, 1.0), "M_RC_Yellow": (0.9, 0.7, 0.05), "M_RC_Steel": (0.7, 0.7, 0.72), "M_RC_Red": (0.8, 0.05, 0.03), "M_RC_Orange": (0.9, 0.35, 0.08), "M_RC_Decal_Robot": (0.05, 0.05, 0.05)} sc = bpy.context.scene for m in bpy.data.materials: if m.name in COL: m.diffuse_color = COL[m.name] + (1.0,) for o in bpy.data.objects: if o.name.startswith("UCX_"): o.hide_render = True skip_glass = "--glass" not in sys.argv if skip_glass: for m in bpy.data.materials: if m.name == "M_RC_Glass": m.diffuse_color = (0.25, 0.45, 0.55, 0.0) sc.display.shading.show_xray = False sc.camera = bpy.data.objects["RC_PictureCamera"] sc.render.engine = 'BLENDER_WORKBENCH' sh = sc.display.shading sh.light = 'STUDIO' sh.color_type = 'MATERIAL' sh.show_object_outline = False sh.show_cavity = True sh.cavity_type = 'BOTH' sc.render.film_transparent = True sc.render.resolution_x, sc.render.resolution_y = 1200, 960 sc.render.resolution_percentage = 100 sc.render.image_settings.file_format = 'PNG' sc.render.image_settings.color_mode = 'RGBA' sc.view_settings.view_transform = 'Standard' p = os.path.join(OUT, "wb_%s.png" % tag) sc.render.filepath = p bpy.ops.render.render(write_still=True) py = r"E:\Tools\Programs\Python\python.exe" subprocess.run([py, os.path.join(HERE, "rc_overlay_img.py"), p, tag]) print("OVERLAY OK", p)