Spaces:
Paused
Paused
| # 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) | |