-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathring_bottom.py
96 lines (80 loc) · 2.85 KB
/
ring_bottom.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import numpy as np
import random
import numpy as np
import trimesh
from mesh_to_sdf import mesh_to_voxels
import pyrender
import time
########################################################此文件用于给环加底##################################
# 加载对象 mesh
object_mesh = trimesh.load('/home/dermark/objtrans/grab/grabtestout/mug/mug.obj')
voxels_object = mesh_to_voxels(object_mesh, 30, pad=True)
# 初始解和温度
##############################################################mug.obj IOU=0.05#######################################################
r1=0.03916953592359328
r2=0.008981290161180593
t1=0.02177906989869799
r1=0.046283247191516726
r2=0.010816698597708447
t1=0.018510055040169445
# r1=0.034711361856383904
# r2=0.013768967210576619
# t1=0.014209711993012297
# r1=0.046283247191516726
# r2=0.010816698597708447
# t1=0.018510055040169445
# r1=0.03911836657700861
# r2=0.014644198493995744
# t1=0.013413340914796387
# r1=0.05360923067023439
# r2=0.014318538416088884
# t1=0.006342405930606931
r1=0.04495271721048496
r2=0.005162737282101836
t1=0.009912068278225241
transform=np.array([
[1, 0, 0, t1],
[0, 0, -1, 0],
[0, 1, 0, 0],
[0, 0, 0, 1]
])
# 创建 pyrender 场景
scene = pyrender.Scene()
camera = pyrender.PerspectiveCamera(yfov=np.pi / 2)
camera_pose = np.array([
[1.0, 0.0, 0.0, 0],
[0.0, 1.0, 0.0, 0],
[0.0, 0.0, 1.0, 2.0],
[0.0, 0.0, 0.0, 1.0]
])
scene.add(camera, pose=camera_pose)
cuboid = trimesh.creation.torus(major_radius=r1, minor_radius=r2,transform=transform)
base_size=[0.1,0.005,0.1]
base_transform=np.array([
[1, 0, 0, t1],
[0, 0, -1, 0],
[0, 1, 0, -r1-r2],
[0, 0, 0, 1]
])
base = trimesh.creation.box(extents=base_size, transform=base_transform)
#cuboid=trimesh.load('/home/dermark/objtrans/kan2.obj')
# 为透明物体设置材质并启用 alpha 混合
material = pyrender.MetallicRoughnessMaterial(
baseColorFactor=(1.0, 0.0, 0.0, 0.2), # 半透明红色
alphaMode='BLEND' # 启用透明度混合
)
material2 = pyrender.MetallicRoughnessMaterial(
baseColorFactor=(0.0, 1.0, 1.0, 0.2), # 半透明红色
alphaMode='BLEND' # 启用透明度混合
)
#object_pyrender = pyrender.Mesh.from_trimesh(object_mesh,material=material)
mesh=pyrender.Mesh.from_trimesh(cuboid+base, material=material2,smooth=False)
mesh_node = scene.add(mesh)
objectt=pyrender.Mesh.from_trimesh(object_mesh, material=material,smooth=False)
obj_node = scene.add(objectt)
viewer = pyrender.Viewer(scene, use_raymond_lighting=True, point_size=2, run_in_thread=True,render_transparent=True)
combined_mesh = trimesh.util.concatenate([cuboid, base])
output_file = '/home/dermark/objtrans/grab/grabtestout/mug/mug_primitive.obj'
combined_mesh.export(output_file)
print(f"Model has been saved to {output_file}")
#cuboid.export("duckboid.obj")