2012-02-25 77 views
0

这是关于如何创建OpenGL不规则球体。我搜索了网页,但所有文档都告诉如何创建一个规则的球体。变形OpenGL球体

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

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

同时,我不知道怎么能模拟凹现实,有没有什么数学过程来描述这样一个过程?

谢谢!

回答

1

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

+0

所以,你的意思是创建一个新的3D模型来呈现被触摸的泡泡状态。但是,还剩下两个问题:1.触点上的最终物体形状如何?我需要一个数学程序来生成它。 2.用户可以触摸气泡的任何位置,我如何使用一个模型来适应? – 2012-02-25 07:58:34

2

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

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

一旦完成,网格可能不得不重新加载到GPU。

+0

我可以知道什么是测地线球体? – 2012-02-25 11:33:40

+0

那么,一些球体基本上是一个包裹成一个球体的顶点网格。这会在极点产生许多顶点,在赤道产生更少的顶点。测地球在其表面周围具有均匀的顶点分布。 – 2012-02-25 21:18:21