当前位置:   article > 正文

Open3D Mesh deformation_open3d arap

open3d arap

Mesh deformation

如果我们想根据少量的约束来变形三角形网格,我们可以使用网格变形算法。Open3D通过[SorkineAndAlexa2007]实现了尽可能严格的方法,该方法优化了以下能量函数
∑ i ∑ j ∈ N ( i ) w i j ∣ ∣ ( p ′ i − p ′ j ) − R i ( p i − p j ) ∣ ∣ 2 , ∑_i∑_{j∈N(i)}w_{ij}||(p′_i−p′_j)−R_i(p_i−p_j)||^2, ijN(i)wij(pipj)Ri(pipj)2,

R i R_i Ri是我们想要优化的旋转矩阵 p i , p ′ i p_i,p′_i pi,pi分别是优化前后的顶点位置。 N ( i ) N(i) N(i)是顶点i的邻居的集合。权重 w i j w_ij wij是余切权重。

Open3D 在deform_as_rigid_as_possible中实现了此方法。此方法的第一个参数constraint_ids是一组引用三角形网格中的顶点的参数。第二个参数constrint_pos定义优化后这些顶点应位于哪个位置。优化过程是一个迭代方案。因此,我们还可以通过 max_iter定义迭代次数。

armadillo = o3d.data.ArmadilloMesh()
mesh = o3d.io.read_triangle_mesh(armadillo.path)

vertices = np.asarray(mesh.vertices)
static_ids = [idx for idx in np.where(vertices[:, 1] < -30)[0]]
static_pos = []
for id in static_ids:
    static_pos.append(vertices[id])
handle_ids = [2490]
handle_pos = [vertices[2490] + np.array((-40, -40, -40))]
constraint_ids = o3d.utility.IntVector(static_ids + handle_ids)
constraint_pos = o3d.utility.Vector3dVector(static_pos + handle_pos)

with o3d.utility.VerbosityContextManager(
        o3d.utility.VerbosityLevel.Debug) as cm:
    mesh_prime = mesh.deform_as_rigid_as_possible(constraint_ids,
                                                  constraint_pos,
                                                  max_iter=50)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Smoothed ARAP 平滑的 ARAP

Open3D 还实现了 ARAP 目标的平滑版本,定义为

∑ i ∑ j ∈ N ( i ) w i j ∣ ∣ ( p ′ i − p ′ j ) − R i ( p i − p j ) ∣ ∣ 2 + α A ∣ ∣ R i − R j ∣ ∣ 2 ∑_i∑_{j∈N(i)}w_{ij}||(p′_i−p′_j)−R_i(p_i−p_j)||^2+αA||R_i−R_j||^2 ijN(i)wij(pipj)Ri(pipj)2+αARiRj2
,
这会惩罚相邻旋转矩阵的偏差。 α是正则化项的权衡参数,并且A是表面积。

平滑化的目标可以通过deform_as_rigid_as_possible将参数energy与参数Smoothed 一起使用。

https://zhuanlan.zhihu.com/p/25846219
https://zhuanlan.zhihu.com/p/25804146

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/728869
推荐阅读
相关标签
  

闽ICP备14008679号