如何将平滑应用于网格的特定区域

2024-10-04 05:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python和Trimesh一起工作。 我有一个变形人体的网格,我想在上面应用一个平滑操作,但只在它的一个特定区域,比如脖子周围的区域

到目前为止,使用未变形的基本实体模型网格,我已提取了一个子网格,其中包含我希望对任何给定网格应用平滑处理的RoI的MeshLab,然后在python代码中加载变形网格和基本子网格,我在它们之间进行映射以找到相互对应的顶点ID:

dist, vertex_ids = trimesh.proximity.ProximityQuery(deformed_mesh).vertex(base_submesh.vertices)

由此,我可以使用以下方法渲染变形网格的RoI:

mesh_to_smooth = trimesh.Trimesh(deformed_mesh.vertices[vertex_ids], base_submesh.faces)

该子画面上的平滑操作效果良好: trimesh.smoothing.filter_laplacian(mesh_to_smooth)

我现在的问题是,我不知道如何将变形网格的平滑RoI替换回它

提前谢谢你的提示


Tags: toids网格区域basevertexsmoothmesh