Я работаю с треугольными сетками с помощью python Open3d, и я хочу добавить отображение текстуры для моего меня sh (я не нашел его в документации), это пример кода с простым кубом меня sh:
import numpy as np
import open3d as o3d
vert=[[0,0,0],[0,1,0],[1,1,0],[1,0,0],
[0,0,1],[0,1,1],[1,1,1],[1,0,1]]
faces=[[0, 1, 2], [0, 2, 3], [6, 5, 4],
[7, 6, 4], [5, 1, 0], [0, 4, 5], [3, 2, 6],
[6, 7, 3], [0, 3, 7], [0, 7, 4], [1, 5, 6],
[1, 6, 2]]
m=o3d.geometry.TriangleMesh(o3d.open3d_pybind.utility.Vector3dVector(vert),
o3d.open3d_pybind.utility.Vector3iVector(faces))
m.compute_vertex_normals()
o3d.visualization.draw_geometries([m])
Я вижу куб: куб меня sh
Теперь я пытаюсь добавить текстуру:
text=cv2.imread('~/Downloads/cupe_uv.png')
plt.imshow(text)
это изображение текстуры: изображение текстуры куба
DX,DY=0.5/2,0.66/2
v_uv=[[DX,DY],[DX,2*DY],[2*DX,2*DY],[2*DX,DY],
[0,DX],[DX,1],[3*DX,2*DY],[3*DX,DY]]
v_uv=np.asarray(v_uv)
v_uv=np.concatenate((v_uv,v_uv,v_uv),axis=0)
m.triangle_uvs = o3d.open3d_pybind.utility.Vector2dVector(v_uv)
m.textures=[o3d.geometry.Image(text)]
o3d.visualization.draw_geometries([m])
Я знаю, что я не устанавливал uv-координаты для отображения всех цветов куба (но некоторые цвета должен быть там ...). В любом случае me sh все еще без текстуры (такой же, как и в начале).