0

假设我想创建具有“俄罗斯套娃”或普通雪人形状的简单物理对象。正如我所看到的,我有两种选择:
1.创建2个圆形(或可能是自定义)实体并将它们与焊接接头连接,或
2.创建一个具有两个圆形(或可能是自定义)形状的实体在里面。

所以问题是:对于 CPU 来说更昂贵的是:通过关节连接的主体或复杂形状的主体。如果我有一个对象,我可能不会感觉到性能上的差异,但是如果我有很多该类型的对象怎么办?
我知道关节很贵,但定制形状的身体可能更贵?我正在使用 Box2dFlash。

4

2 回答 2

1

如果您不希望雪人身体的两个部分相对于彼此移动,那么一个单一的身体就是要走的路。无论如何,您最好手动定义碰撞形状,因此使用焊接绝对没有任何好处。

可以这样想:如果您使用(a)焊缝,碰撞形状将不会比您简单地对单个物体的碰撞几何形状进行近似复杂;无论您的选择如何,它仍然需要多个碰撞形状或单个复杂的碰撞形状。焊接只是增加了一个额外的步骤。

如果您需要雪人的身体在任何情况下都是动态的(分开或弯曲),那么焊接或常规接头是可行的方法。

于 2013-10-15T13:04:13.053 回答
1

由于问题是关于 CPU 使用的,因此关节比没有关节的单独形状使用更多的 CPU。在许多情况下,圆形可能比多边形更有效,但不是全部。对于 CPU 优化,使用尽可能少的实体和尽可能简单的多边形。对于多边形中定义的每个法线,如果一个对象与另一个对象重叠,则可能需要执行计算。对于圆,最多需要一次计算。

顺便说一句,除非您已经遇到性能问题,否则您不必担心您的形状是否适合 CPU 使用。相反,您应该询问创建的模拟是否是您想要发生的模拟。Box2D 包含许多特殊情况优化,以使其运行顺畅。您还可以通过设置速度和位置迭代变量来降低其每刻的准确性。除非您的几何非常复杂,否则这对效率的影响将远大于几何。

于 2013-10-15T18:34:37.657 回答