变形表面


10

我正在尝试完成水平曲面的变形物理行为,但到目前为止,尚不知道如何从实现开始。

无论表面的形状(平面,立方体,球体……)如何,我都希望在游戏实体(玩家,敌人,物体……)的位置上有小凹痕。

解释起来有点复杂,所以我说明了我在说什么,这是一个带有球体的示例:

插图变形表面游戏

因此,这些表面应该能够使其自身稍微变形(看起来像是真正柔软的床或沙发)。我的曲面可能需要很高的顶点数才能获得平滑的变形,但是我的大问题是计算该变形的数学方法。

我正在用OpenGL用C / C ++进行编程,但是在正确方向上的任何建议都可以。

Answers:


5

对于简单的变形,可以在曲面/对象上选择一个点进行操作,然后对其进行变换(例如平移)。然后,以相同的方式对距该点一定距离内的所有点进行变换,但使变换的强度降低,离您选择的点越远。

因此,要使角色在角色下缩进,请选择他/她站立的位置并将其向下移位。

根据您要归档的效果,您可能需要全局,局部或朝向/远离对象中心应用变换,和/或使用不同的功能来模拟不同的材质。

在www.lighthouse3d.com/opengl/terrain/中可以找到一个使用sin / cos衰减函数缩进平面的简单示例。


1
我在链接上收到403禁止错误。
乔治·

1
好吧……那么,“小偷是有秩序的(也直接到相关部分):web.archive.org/web/20100927141645/http
//lighthouse3d.com/…– 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.