0xZohar's picture
Add missing code/cube3d/render/render_ldr.py
ada93da verified
# render_ldr.py
import bpy, sys, os
# -------- 参数(按需改) --------
ldr_path = "/public/home/wangshuo/gap/assembly/data/blue classic car/modified_blue classic car.ldr"
output_png = "./output.png"
# 可选:LDraw零件库位置(很多插件会在首选项里配置;这里仅演示)
ldraw_dir = "/public/home/wangshuo/gap/assembly/data/LDRAW/ldraw" # 含 /parts /p 等子文件夹
# --------------------------------
# 确保插件已启用(名称以你安装的插件为准,常见 io_scene_ldraw)
try:
bpy.ops.import_scene.ldraw # 如果没报错,说明有这个 operator
except AttributeError:
raise RuntimeError("请先在 Blender 中安装并启用 LDraw 导入插件(ImportLDraw)。")
# 清空默认场景
bpy.ops.wm.read_factory_settings(use_empty=True)
# 导入 LDraw
# 具体参数名可能随插件版本不同,最常见的是 filepath / ldraw_path
kwargs = {"filepath": ldr_path}
if os.path.isdir(ldraw_dir):
kwargs["ldraw_path"] = ldraw_dir
bpy.ops.import_scene.ldraw(**kwargs)
# 简单放置一个相机与灯光
scene = bpy.context.scene
if not scene.camera:
bpy.ops.object.camera_add(location=(0, -8, 5), rotation=(1.1, 0, 0))
scene.camera = bpy.context.object
# 太阳光
bpy.ops.object.light_add(type='SUN', location=(5, -5, 10))
# 渲染设置
scene.render.engine = "CYCLES" # 或 "BLENDER_EEVEE"
scene.cycles.samples = 64
scene.render.resolution_x = 1024
scene.render.resolution_y = 1024
scene.render.filepath = output_png
# 渲染
bpy.ops.render.render(write_still=True)
print("Saved:", output_png)