2D软体物理引擎?


9

嗨,我最近学习了SFML图形库,并想使用或制作一个非刚体2D物理系统来使用它。我有三个问题:

Box2d 中刚体的定义是

一块物质如此强大,以至于该物质上任何两个比特之间的距离都是完全恒定的。

这正是我所不想要的,因为我想制造弹性,可变形,易断裂和重新连接的物体。1.是否有任何简单的2D物理引擎,但是具有这些特性?最好是免费还是开源?

2.即使不是基于刚体,我是否也可以使用box2d并对其进行处理以创建它?

3.最后,如果有一个像这样的简单物理引擎,我是否应该继续创建一个新的物理引擎,仅仅是为了体验并增强物理数学知识?如果我想修改现有引擎的代码或创建具有真正独特物理原理的游戏,我觉得这会有所帮助。

谢谢!


1
曾经有一个名为JelloPhysics(C#)的引擎,但是该站点似乎已关闭。这里有一个视频:youtube.com/watch?
v=SvqY_pgA6DU

Answers:


6

您可以使用刚体系统创建柔体和流体动力学。背后的物理原因?好吧,本质上来说,原子是小的刚体。当然,这并非完全正确,但为简单起见,您可以这样查看。而软体显然是由原子制成的。

那么,如何使用Box2D这样的刚体引擎创建“软体”?

基本技术是使用关节将体内的点绑定在一起。例如,如果使用距离关节将线列表的两端连接在一起(这意味着两个关节之间的距离必须恒定),则其行为大致就像一块布。

但这只是一个粗略的描述。Box2D的Java端口开发者之一ewjordan已经完成了Box2D的许多“基础工作”。这是一个很好的起点:http : //www.box2d.org/forum/viewtopic.php?f=8&t=1978


需要混合使用拉伸/压缩弹簧以保持软体的“形状”,并计算体积以使其整体完整。
乔纳森·康奈尔

是的,但是如果我们要谈论Box2D,那么所有这些实际上都是通过关节完成的。当然,他将不得不手动更改其行为,但这就是他必须开始的地方。例如,对于类似Gish的Blob中恒定的音量效果,JBox2D具有ConstantVolumeJoint。
TravisG 2011年

是的,我对Box2D不太熟悉,我只知道有些同事是如何使用PhysX来模拟气泡的。^
Jonathan Connell

1

您正在寻找的术语是软体物理学。

维基百科有一个不错的清单。它们都是3D AFAICS,但应该不错。

还要检查这个 SO问题。

游戏物理引擎开发是一本很棒的书(它是刚体,但是所有的数学和物理学都在那里;它也是3D的,但是转移到2D却微不足道)。它在移动到刚体和碰撞之前实现了基于粒子的系统。


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.