Можно ли с помощью open3D отобразить нормаль на поверхности меша?

Я использую Open3D для создания сетки, и в официальной сети мы можем вычислить нормаль треугольника треугольной сетки, но как визуализировать нормаль поверхности?

Спасибо вам за помощь

1 ответ

Как только вы вычислили нормали, вы можете визуализировать нормали, нажав ctrl + 9 в визуализаторе, например

import open3d as o3d

mesh = o3d.io.read_triangle_mesh('path_to_mesh')
mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh])

Это даст вам что-то вроде этого: Если вы хотите видеть нормали вершин как линии, я не уверен, что это поддерживается в open3d для сеток. Но вы можете преобразовать сетку в облако точек:

pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.asarray(mesh.vertices))
pcd.estimate_normals()

а затем визуализируйте нормали, нажав nв визуализаторе. Это даст вам что-то вроде этого:

Другие вопросы по тегам