三维变形

原文链接

三维变形

三维变形广泛应用于计算机图形相关的各种应用里。常见的变形类型有:

  • 基于控制网格的变形
  • Laplacian网格编辑
  • 空间分片刚性变形

基于控制网格的变形

这类变形的基本思想,是基于这么一个表示:模型 = 控制网格 * 基于控制网格的坐标

变形的基本方法有两步:首先构造控制网格,然后计算出模型基于控制网格的坐标。在变形的时候,用户通过操作控制网格,来达到模型的相应变形。

控制网格是模型的一个简单近似,它比较容易编辑操作。常见的控制网格有三角形网格,四边形网格。

基于控制网格的坐标,一般具有各自的特点,常见的有这么几类:

  • Mean Value Coordinates:全局空间的一个仿射变换,计算速度快。

mvc

  • Harmonic Coordinates:基于局部空间的一个调和变换。如下图所示,左图是原始模型,中间是MVC的变形结果,右图是HC的变形结果。明显可以看出,在控制网格局部凹陷比较严重的区域,基于局部空间的变形结果优于基于全局空间的变形。

hc

  • Green Coordinates:基于局部空间的一个近似刚性变换。如下图所示,左图是原始模型,中间是GC的变形结果,右图是MVC的变形结果。明显可以看出,GC的结果在保持模型的刚性上具有一定的优势。

gc


Laplacian网格编辑

网格微分坐标:如下图所示,它刻画网格的局部细节,也就是信号处理里的高频信号。网格在变形的过程中,尽量保持住局部的微分坐标不变,就能保持住网格的局部细节。

differentialcoordinates

微分坐标可以应用于各种网格编辑操作,如细节转移:

detailtransfer

细节混合:

detailmixing

网格移植:

meshtransplant


空间分片刚性变形

基于控制点的变形,原理是分片刚性变形。在点云中采样N个控制点,每个控制点附着一个刚性变换。控制点越多,变形的非刚性越强。控制点数为1的时候,即为刚性变形。

deformpointlist

  • 三维变形应用里,导入需要变形的点云。注:也可以导入网格,因为网格也可以看作是一个点云(抛掉网格连接关系)
  • 初始化控制点:设置控制点数目,默认值为300. 点数越多,变形越精确,但是速度也会越慢。如图a所示。
  • 控制点选择:控制点分为两种类型,一种是固定的(红色),一种是可以动的(蓝色). 把需要变形区域的控制点选择为蓝色. 选择方式是通过鼠标右键框选添加或者去掉控制点。如图b所示
  • 变形操作:通过移动蓝色控制点来变形。右键拖动控点到目标位置,控制点变为绿色,目标位置为灰色。如图c所示。
  • 最后变形,如图d所示

有兴趣的读者,欢迎参考视频版本

猜你喜欢

转载自www.cnblogs.com/threepark/p/11703259.html