基本问题
普遍的应用是对一个三维物体推动或拉动某一处,求出三维物体最后会变形成什么样。
如上图所示:以一个表面为例,S是一个完整的三角网格。现在固定住最外圈的F部分。顶部黄色H是可以拖动的部分,现在将H拖动到某个地方,问整个网格形变最终结果。
拉普拉斯算子
都有一个拉普拉斯算子
拉普拉斯算子蕴含着曲面的局部特征信息,网格曲面的拉普拉斯坐标其在网格变形、网格平滑、网格去噪等方面都有着重要的应用。
能量方程构建
顶点有n个
其中前m个顶点属于S,H区域。
移动以后的点为
其中前m个顶点属于S,H区域。
按照拉普拉斯算子定义,我们希望变形后拉普拉斯算子尽量不变。同时s,h区域的点要尽量接近给定的点。
要使下列式子尽量满足
能量方程如下
我们如果可以解出上述式子使得能量最小,那么就确定了最终的点的位置了。
对式子进行拆分,可以发现是一个最小二乘问题。
可以对x,y,z进行拆分得到下式
上面x,y,z是独立的可以分开求解
向量T一共有(n+m)行
最小二乘问题求解
设有一个f(x,y,z)函数,求最小值,最简单的方法就是求驻点。
求驻点直接求偏导,并令其等于0即可。
只要对上述4项分别求导即可。
同理其他求导如下
令导数为0解得
应用
- 物体变形,物体挤压变形,旋转变形
- 模型配准问题,游戏皮肤覆盖,衣服穿着,材料包裹
- 动画制作