我正在寻找一些瘦身和模型。 Box2D中有弹性线/毛/刺/线,我想知道最好的方法是什么。我用谷歌搜索并看到了一些叫做线段(http://www.box2d.org/forum/viewtopic.php?f=8&t=1437)的东西,但它似乎只是Flash端口的扩展 - 我希望以平台无关的方式做到这一点。
我猜我将不得不用薄盒链做到这一点,但有没有人有任何建议或注意事项?
更新:由于下面的反馈,目前的选项是:
在段之间连接弹性距离接头(参见图表 - 类似于人们接近软体的方式)。
Drop Box 2D并使用verlet / particle系统,如果必须进行最小的碰撞(不幸的是我不可能)。
答案 0 :(得分:4)
这取决于他们需要多少物理世界,以及你想要与“头发”的所有部分碰撞的准确程度。如果碰撞不是最重要的,您可以使用链中减少的箱数进行近似,并根据其位置的样条进行渲染。如果涉及非常小的碰撞,你甚至可以使用verlet集成,这非常容易编码并且在CPU上更轻。
虽然只有10个,但我希望你可以用旋转关节完全模拟它们,虽然不是限制我会控制它们,以便他们不断尝试拉直链条,但调整每个关节的最大扭矩,以便他们不要有足够的力量完全伸直。如果你走这条路,要记住的一点是它有助于使基部附近的部分更重,并且朝向末端逐渐变浅。电机强度也需要在尖端较弱。
答案 1 :(得分:2)
你们提出了关于表现的好点。
尝试模拟每条线将非常昂贵。 您可以做的是模拟在表面上均匀分布的少量股线。 然后使用这些股线作为参考来绘制中间股线。
投入一些随机性可以产生很好的效果。
我写了一篇关于模拟相关树干的文章,可能对某些人有用:http://aaronfarr.com/coding/simulating-a-tree-in-box2dweb/
更新:我使用这个想法汇总了草模拟的演示:http://aaronfarr.com/coding/simulating-grass-using-box2d/
答案 2 :(得分:1)
可能我最好的建议是结合使用这些东西。如果我觉得我真的必须这样做并且必须至少在物理模拟中完成它,我会结合使用旋转关节和粒子。我会根据物体的移动方式绘制不同的粒子文件。
对不起,我不能给你具体的例子,因为我从来没有必要做这样的事情。