论文笔记——Deformation Transfer for Triangle Meshes(2004-SIGGRAPH)
一、核心思想
首先,文章题目名为《Deformation Transfer for Triangle Meshes》,即三角网格的形变迁移。这一理论的核心观点可以参考下图,已知条件需要包括三个信息:
1、源始网格 ,也就是下图中第一行的第一匹马;
2、与 对应的发生形变的网格 ,也就是第一行后面的各种各样的马;
3、目标网格 ,也就是我们想要让他像 形变方式一样的目标,即图中第二行的第一只骆驼。
通过上述三点已知条件,从而得到生成的形变网格 , 也就是第二行后面各种各样的网格。需要注意的是,每一对 和 , 或者 和 ,也就是图中的每一列,在形态上是一致的。
根据形变迁移的理论, 和 之间一定存在着确定的形变关系,那么 和 之间也一定存在着相类似的形变关系。
作者在摘要中提到,他们提出的是一种通用的方法, 和 之间不需要拥有相同数量的顶点、三角形或者相同的点与点之间的连接方式。
二、算法分析
1、Deformation Transfer (形变迁移)
形变迁移的目的是将源变形所表现出的形状变化传递到目标上。
我们知道三点成面,这也是三角网格的由来。在二维平面中,一个三角形如何发生变化都不会离开这个平面维度,但是空间中,一个三角形发生形变,就有很大的可能离开它原始的平面。因此,作者引入了一个三角形面外的一个点作为辅助,来探寻该三角形的空间变化。
首先令 和 ,,分别表示三角形形变前后的三个顶点,那么第四个顶点可以通过以下公式(原文公式(1)
)得到:
同理 也有相应的计算方式。是计算垂直于三角形所在平面的单位向量,而整个式子就是将该单位向量平移到三角形上。这里之所以选择加 ,和后面的简化运算有关。当然,这里可以用 或者 ,那么本式,和后面的公式都要对应的替换。
补充知识: 坐标叉乘运算
假设,四个点的坐标依次为 , ,, ,那么 和 都是3 4的矩阵。两者之间可以通过一个3 3的仿射矩阵 和偏移量 联系在一起,如下(原文公式(2)
):
原文说到,为了消去 ,就对每一项减去 ,就可以得到 ,其中(原文公式(3)
):
第一次看到这里的时候,比较懒,直接默认这是成立的,而这一次为了这篇博客,我就稍微的思考了一下:
已知:
把 代入第一个式子,得:
左右调整一下之后,得:
于是就可以得到原文公式(3)
。所以 ,于是 。
(待续。。。。。。。。。。。。。。。。。。。。。。。。。。)