0xZohar commited on
Commit
ada93da
·
verified ·
1 Parent(s): 5e5b381

Add missing code/cube3d/render/render_ldr.py

Browse files
Files changed (1) hide show
  1. code/cube3d/render/render_ldr.py +45 -0
code/cube3d/render/render_ldr.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # render_ldr.py
2
+ import bpy, sys, os
3
+
4
+ # -------- 参数(按需改) --------
5
+ ldr_path = "/public/home/wangshuo/gap/assembly/data/blue classic car/modified_blue classic car.ldr"
6
+ output_png = "./output.png"
7
+ # 可选:LDraw零件库位置(很多插件会在首选项里配置;这里仅演示)
8
+ ldraw_dir = "/public/home/wangshuo/gap/assembly/data/LDRAW/ldraw" # 含 /parts /p 等子文件夹
9
+ # --------------------------------
10
+
11
+ # 确保插件已启用(名称以你安装的插件为准,常见 io_scene_ldraw)
12
+ try:
13
+ bpy.ops.import_scene.ldraw # 如果没报错,说明有这个 operator
14
+ except AttributeError:
15
+ raise RuntimeError("请先在 Blender 中安装并启用 LDraw 导入插件(ImportLDraw)。")
16
+
17
+ # 清空默认场景
18
+ bpy.ops.wm.read_factory_settings(use_empty=True)
19
+
20
+ # 导入 LDraw
21
+ # 具体参数名可能随插件版本不同,最常见的是 filepath / ldraw_path
22
+ kwargs = {"filepath": ldr_path}
23
+ if os.path.isdir(ldraw_dir):
24
+ kwargs["ldraw_path"] = ldraw_dir
25
+ bpy.ops.import_scene.ldraw(**kwargs)
26
+
27
+ # 简单放置一个相机与灯光
28
+ scene = bpy.context.scene
29
+ if not scene.camera:
30
+ bpy.ops.object.camera_add(location=(0, -8, 5), rotation=(1.1, 0, 0))
31
+ scene.camera = bpy.context.object
32
+
33
+ # 太阳光
34
+ bpy.ops.object.light_add(type='SUN', location=(5, -5, 10))
35
+
36
+ # 渲染设置
37
+ scene.render.engine = "CYCLES" # 或 "BLENDER_EEVEE"
38
+ scene.cycles.samples = 64
39
+ scene.render.resolution_x = 1024
40
+ scene.render.resolution_y = 1024
41
+ scene.render.filepath = output_png
42
+
43
+ # 渲染
44
+ bpy.ops.render.render(write_still=True)
45
+ print("Saved:", output_png)