fix: display.txt 缺少渲染参数导致盒子不透明
外部引擎(C/C++)直接写 display.txt 时只输出基础物理参数 (DT/NSTEP/method 等),缺少 alpha/ball_color/box_color 等渲染参数,draw.py 读取不到 alpha 回退默认 0.2。 修复: 1. param.json 新增渲染参数(alpha/ball_color/box_color/...) 2. C/C++ 引擎 SimParams 新增对应字段 & JSON 读取 3. C/C++ write_display_txt 写入所有渲染参数 header 4. param.json ball_color/box_color 用数组统一存储
This commit is contained in:
+13
@@ -895,6 +895,19 @@ def run_engine(engine, input_dir, output_dir, config):
|
||||
"gravity_strength": float(config.get("gravity_strength", 1.0)),
|
||||
"driving_force": int(config.get("driving_force", 0)),
|
||||
"save_trajectory": int(config.get("save_trajectory", 0)),
|
||||
# 渲染参数(用于 display.txt header)
|
||||
"alpha": config.get("alpha", 0.2),
|
||||
"ball_radius": float(config.get("ball_radius", 0.5)),
|
||||
"ball_color": [float(config.get("ball_color_r", 0.9)),
|
||||
float(config.get("ball_color_g", 0.2)),
|
||||
float(config.get("ball_color_b", 0.2))],
|
||||
"box_color": [float(config.get("box_color_r", 0.8)),
|
||||
float(config.get("box_color_g", 0.8)),
|
||||
float(config.get("box_color_b", 0.85))],
|
||||
"use_marker": int(config.get("use_marker", 0)),
|
||||
"camera_distance": float(config.get("camera_distance", 40.0)),
|
||||
"camera_elevation": float(config.get("camera_elevation", 0)),
|
||||
"camera_azimuth": float(config.get("camera_azimuth", 0)),
|
||||
}
|
||||
param_path = os.path.join(script_dir, "engines", engine, "param.json")
|
||||
os.makedirs(os.path.dirname(param_path), exist_ok=True)
|
||||
|
||||
Reference in New Issue
Block a user