Gri*_*fin 29 physics rigid-bodies game-physics
Box2d 中刚体的定义是
一块物质非常强大,以至于块上任何两个物质之间的距离是完全恒定的.
这正是我不想要的,因为我想制作2D(最终可能是3D),弹性,可变形,易碎,甚至是粘稠的物体.
我希望离开这个社区的是资源,它教会我如何弯曲,破坏和互动对象.我不关心这些物体的分子或化学性质,当我试图寻找如何计算一块木头,金属,橡胶,粘性物质,液体,有机物质等时,我常常发现这一切.在施加力之后可能看起来像.
此外,我是一个非常直观的人,因此图表等对我来说非常有帮助.
================================================== ==============================
忽略这些问题,它们已经过时了,我只是为了上下文的目的而将它们保留在这里
这里有没有简单的2D软体物理引擎?
最好是免费还是开源?
如果不花费数年时间就可以自己创作吗?
3.我可以使用像bullet和box2d这样的现有引擎作为开始并简单地转换他们的代码,或者考虑到我1年的编程经验和子弹是3D,这会导致更多的问题吗?
4.最后,如果我要转换另一个库,那么它是最好的改变box2D已经是2d代码,Bullet已经是软代码,还是混合了两个源代码?
谢谢!
Mik*_*ola 17
(1)Bullet和PhysX都支持某些容量的可变形对象.Bullet是开源的,PhysX可以免费使用.它们都有windows,mac,linux和所有主要控制台的端口.
(2)如果你真的知道自己在做什么,你可以一起破解,甚至可能有效.但是,除非您对Box2D的顺序脉冲约束求解器如何工作以及为保持系统稳定所需的措施类型有一定的了解,否则可能会出现错误.也就是说,在类似游戏的环境中,有很多方法可以让可变形对象在最小的情况下工作.第一种选择是采用变形的第二(或更高)阶近似.这可以让你以与处理刚性运动相同的方式处理变形,只是现在你有一些额外的自由度.例如,参见以下文件:
http://www.matthiasmueller.info/publications/MeshlessDeformations_SIG05.pdf
第二种方法是压力软体,其基本上将物体建模为具有一些距离约束和压力的一组粒子.这就是PhysX和Bullet所做的,现在它是一种非常标准的技术(例如,Gish使用它):
HTTP://citeseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.4.2828%26rep%3Drep1%26type%3Dpdf
如果你在谷歌周围,你可以找到许多实施它的教程,但我不能保证他们的质量.最后,最近有一种尝试使用逼真的弹性模型和有限元类型方法以"正确"的方式尝试变形对象.这仍然是一个积极研究的领域,所以它不适合胆小的人.例如,您可以查看今年SIGGRAPH程序中的任意数量的论文:
http://kesen.realtimerendering.com/sig2011.html
(3)可能不是.虽然某些2D风格的游戏可以与3D物理引擎(例如自上而下类型的游戏)一起使用以获得特殊效果.
(4)根据我刚才的说法,你现在应该知道答案.如果你是冒险的,有时间去杀人和学习的意愿,那么我说去吧!当然,一开始会很难,但随着时间的推移,它变得越来越容易.另外,学习新东西很有趣!
另一方面,如果你现在只想要结果,那么就不要这样做.这将花费很多时间,你可能会失败(很多).如果您只是想制作游戏,那么请坚持使用现有的库,并以它为您提供的任何抽象为基础.
快速和部分答案:
现在的答案:
希望这有帮助