用途:为 Actor SDG 生成确定性的灯光变体,不修改基础 USD 舞台。每个输出是一个 USD 子层(sublayer),用于覆盖另一舞台的选定属性,可通过 environment.prop_asset_paths 配合 Isaac Sim Replicator Agent(IRA)使用。
前提条件:通过 $ISAAC_SIM_DIR 暴露的 Isaac Sim 安装或源码构建;本地 USD 舞台或 omniverse:// 舞台 URL;可写输出目录(建议位于 $WORKSPACE_DIR 下);需使用 Isaac Sim Python 启动器,因为生成器依赖 pxr。
主要能力:脚本 scripts/lighting_variation_generator.py 扫描舞台并生成灯光覆盖子层及 manifest.csv。它修改已有的 DomeLight、DistantLight、SphereLight、RectLight、CylinderLight 和 DiskLight 图元,不创建灯光;覆盖强度、色温、曝光和可选色调,不随机化灯光变换或纹理。
使用方式:先做干跑校验:"$ISAAC_SIM_DIR/python.sh" skills/actor-sdg-generate-lighting-variations/scripts/lighting_variation_generator.py warehouse.usd --dry-run(Windows 用 python.bat)。默认变体数 10、种子 42、强度倍率 0.3–3.0、色温 2700–7500K、曝光 -2.0–2.0、色调 0.0。生成示例:"$ISAAC_SIM_DIR/python.sh" skills/actor-sdg-generate-lighting-variations/scripts/lighting_variation_generator.py warehouse.usd --count 10 --output-dir "$WORKSPACE_DIR/lighting_variations" --seed 42 --intensity-range 0.3 3.0 --temperature-range 2700 7500 --exposure-range -2.0 2.0 --color-tint 0.0。相同舞台、种子、参数和输出名产生相同结果,具有幂等性。默认拒绝覆盖同名输出文件,需用户批准后加 --overwrite。
验证与限制:确认退出码为 0、.usda 文件数与 --count 一致、读取 manifest.csv 和一个子层、确认仅含灯光覆盖意见,并将一个生成路径加入 environment.prop_asset_paths 渲染代表性帧。文件生成成功不代表每个变体渲染良好,大规模运行前应检查代表性帧。omniverse:// 输入需在 Isaac Sim 运行时中通过认证的 Omniverse 连接。常见问题:无支持的灯光图元、No module named pxr(需用 Isaac Sim Python 启动器)、舞台无法打开、输出文件已存在。