变形OpenGL球体

时间:2012-02-25 07:43:44

标签: opengl-es 3d computer-vision

这是关于如何创建OpenGL不规则球体。我搜索过网络,但所有文件都告诉我们如何创建常规球体。

我需要的效果是模拟气泡,当用户触摸气泡时,它应该在触摸时动作,并且球形气泡应该在触摸位置改变其形状。说,凹入触摸部分。

我无法找到一种可行的方法来进行这种模拟。我应该改变触摸部分的顶点位置吗?或者我可以使用着色器来实现此效果吗?

与此同时,我不知道如何逼真地模拟凹面,是否有任何数学程序来描述这样的过程?

谢谢!

2 个答案:

答案 0 :(得分:2)

首先,您需要使用测地线样式球体而不是通过纬度/长度顶点创建球体。这将更加可预测地变形。

从那里,有几种方法可以做到这一点。我能想到的一种方法是创建图形,其中每个节点都索引到网格中的顶点,每个节点都包含指向其邻居的链接。然后,当按下顶点时,它可以“拉”其邻居。一种便宜的方法是简单地重新定位按下的顶点,然后将邻居拉向新位置,保持原始距离(非常简单的矢量数学)。然后,重复这些邻居,直到拉出每个邻居的距离达到足够小的阈值。

完成后,网格可能必须重新上传到GPU。

答案 1 :(得分:1)

当我变形对象时,我只使用从起始顶点到结束顶点的动画。动画可以有大约200帧左右。我不确定如何计算从起始顶点到结束顶点的步骤。也许有一些三角函数?在您的示例中,我将使用按钮创建一个球体,并将其用作目标框架。我不确定着色器如何帮助你。