Articles of 物理引擎

不规则的椭圆形碰撞检测

我正在使用基于Bullet物理引擎的物理库。 如何创建一个卵形物体或一个宽度与深度不同的圆柱体(即椭圆形)? 我不是在寻找代码,而是为了帮助我理解这个概念的答案,或者是一个有用的近似值。

在三维空间中计算任意轴周围的实时惯性矩

我有一个由多个三角形组成的三维刚体,形成一个封闭的网格。 我知道如何通过将网格分割成更简单的形状来计算任意轴周围的惯性矩,并使用平行轴定理和总结来计算整个事物的角质量。 问题是,在实时模拟中,我将不得不重新计算施加到身体的每个冲量的旋转质量。 在我的2D模拟中,这不是一个问题,因为任何旋转轴都只有一个方向,所以我可以只计算一次角质量。 有没有办法预先计算3D物体的旋转质量,还是有一个简单的方法来做到这一点?

斯诺克/比拉德游戏的物理引擎

可能重复: 有一个游戏池的algorithm吗? 我认为大多数桌球/斯诺克比赛在他们的物理引擎上有很多问题。 他们远离现实,你不能真正享受比赛(尤其是当斯诺克是你的爱好:)) 所以我想尝试做一个自己的物理引擎(和自己的斯诺克游戏)。 我认为物理引擎是这样一个游戏中最重要的部分。 所以我的问题是: 有没有人知道我可以开始的开放物理学? 有没有关于这种物理问题的文献?

如何在Android上实现物理透视效果?

我正在做一个看起来像PaperToss的项目。 而不是扔一页,你扔硬币。 假设我有一个三维坐标为A(x,y,z)的硬币。 在1/100秒之后,我把这一点提前,硬币从A(x,y,z)移动到A'(x',y',z')。 这样,我有两个问题需要解决。 t时刻硬币在哪里? 我怎样才能在屏幕上显示? 对于2.,我想过使用正交投影和透视投影 。 我被告知OpenGL可以帮助我,但我不知道如何。 我怎样才能解决1和2?

检查每个人的位置和删除或不(box2d性能特定)

我有一个平台(一个不是无限长的地面)的简单游戏。 在比赛期间,我平均有大约10-30个球会掉落在平台上。 有重力,所以我认为他们会一直下去,直到比赛结束。 我的问题是我应该把一个函数检查render()函数的边界内的位置, render()函数在每一帧中调用。 或者我应该让这些球掉下来。 而让box2d继续计算他们的速度和速度等? 所以基本上我想知道哪个花费更less,检查每个人的位置或者计算掉落物体的速度和位置。 我认为他们发生在同一频率,每帧一次。 或者这对10-30个球是微不足道的,我可以忽略它?

如何从fbx导入时识别盒子和球体

我可以从FBX文件导入场景到我的引擎,我想要导入球体,盒子和胶囊作为对撞机。 那么,我可以检查是否导入的实例是其中之一? 谢谢。

圆形柔软的身体? Matter.js或其他js引擎?

我正在使用Matter.js物理来创建柔体。 我能够创建一个这样的机构: 但是我不确定这是不是我想要的“软体”。 确实,这个身体并不是完全僵硬的,当它碰撞并被拖拽的时候,会有这种弹性的感觉。 我正在寻找一个与凝胶相似的身体。 这个图片可能在视觉上帮助解释这个概念 我想知道如何制造这些types的机构。 它是一样的,因为事情.js柔体,但具有非常具体的属性types? 我只能把身体做成刚性的方形,而不是像我希望的那样模塑和圆形。 我也很有趣地操纵物理体内的游戏中的相互作用,这会增加或减less物理体尺寸,这又使我再次得出这样的结论:我想要的物体的types必须是相当可塑的。 可以matter.js处理这个或我必须改变物理引擎? 任何解决scheme来处理这个? 注意:我使用Phaser.js来处理一些游戏中的组件,但是物理处理中的物理问题很重要,因为我相信Phaser集成物理学不能模拟这种复杂的物体。 谢谢 编辑:这是非常相似的这个https://stackoverflow.com/questions/18298329/box2d-roll-soft-body-ball?rq=1 。 我只需要用js引擎来做到这一点。 有没有?

解决球体碰撞之间的旋转问题

我开发了一个碰撞检测器来返回碰撞数据,如碰撞正常,碰撞点,相互穿透等。 现在我正在开发一个碰撞求解器。 碰撞求解器正确计算碰撞后的线性运动,但不能计算碰撞后的旋转。 这是解决问题的图像 为了计算碰撞后的速度,我给每个物体施加一个impulse ,这个脉冲能够正确计算线性运动。 现在,要计算旋转变化,我需要应用下面的公式 ImpulsiveTorque = RelativePoint.cross(Impulse); RotationChange = InverseInertiaTensorWorld.transform(ImpulsiveTorque); 问题是ImpulsiveTorque很小,以产生可见的旋转变化。 以下对应于我的球形球碰撞检测器 sphereAndSphere : function(one, two){ var oneToTwo = one.position.sub(two.position); var oneToTwoLength = oneToTwo.length(); if (oneToTwoLength < 0 || oneToTwoLength > one.radius + two.radius){ return -1; } var normal = oneToTwo.divideByScalar(oneToTwoLength); var data = new Collision(); data.normal = normal; data.point = one.position.add(oneToTwo.multiplyByScalar(0.5)); […]

物理模型模拟

我正在构建一个游戏,我想模拟某些刚体动力学。有人建议我一些在Ubuntu上工作的引擎。另外,因为我没有太多的时间来实现它,所以这将是有益的,如果它是一个容易的跟…共事。 我有一个ODE.Am跨越一个寻找其他人可以帮助我模拟碰撞和角运动。

与静态场景和弹跳球游戏。 如何?

如何用一个静态场景和可以反弹的球来制作一个游戏? 一般来说,这是用来做什么的? 物理引擎? 即使这是一个简单的例子?