OpenGL ES 2.0顶点转换algorithm

我正在使用OpenGL ES 2.0开发图像扭曲的iOS应用程序。

我对设置,pipe道等有很好的把握,现在正在进行math运算。

由于我的图像变形经验是零,我正在接触一些algorithm的build议。

目前,我在网格types的方式设置点的初始顶点,它将图像平分为正方形。 然后,我在每个方块的中间放置一个额外的顶点。 当我绘制索引时,每个正方形都包含四个X形的三angular形。请参见下图:

opengl图像顶点映射

在用photoshop稍微玩一下之后,我注意到Adobe为他们的木偶使用了一个稍微复杂的algorithm,但是对于他们的标准warp,使用了一个更简单的algorithm。 你认为最适合我在这里/个人的喜好是什么?

其次,当我移动一个顶点时,我想对所有其他顶点应用加权变换来平滑边缘(而不是我下面只有选定顶点被变换的位置)。 我应该在这里应用什么样的algorithm?

操作图像变形

由于顶点着色器独立处理每个顶点,所以顶点不易互相影响。 但是,因为没有太多的顶点,所以在CPU上完成工作并且dynamic地更新每帧的顶点属性应该没有问题。

因为你所寻找的就是当你的表面像橡胶板一样被拉动的时候,那么继续前进和实现一个橡胶板的dynamic模拟呢? 杰夫·兰德 ( Jeff Lander)的全3D模拟布很多很好的文章。 你的应用程序可以是这些技术的简化。 我以前在3D中实现过这样的模拟 。 我需要一个力量吸引我生成的顶点到他们原来的网格位置。 在模拟开始之前,可能会有类似的力将顶点吸引到它们所在的像素上。 这将使它们在单独放置时回弹到默认状态,并逐渐减less拖动到更远angular的影响。