问题标签 [bulletphysics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3156 浏览

rotation - 在 Bullet Physics 中即时更改 btRigidBody 的位置/方向

我知道它违反了物理定律,但尽管在游戏中瞬间改变身体的位置和方向通常有实际原因,但大多数物理模拟库都不允许这样做,所以 Bullet Physics 也不会。

因此,我将不胜感激对此的任何建议或评论。

顺便说一句,我想到了需要那些即时变化的瞬移。还有一个更奇特的应用可能是惯性——例如,当倾斜或旋转带有加速度计的便携式设备时,物体相对于用户来说看起来是静态的。增强现实不应该听起来俗气。

0 投票
1 回答
2801 浏览

c++ - BulletPhysics“setLinearVelocity”不动

我正在尝试使用 OpenGL 和 BulletPhysics 创建一个具有 RigidBody 的 FPS 播放器。唯一的问题是让盒子移动。我尝试使用 setLinearForce、applyForce 和许多其他方法,但就是不想移动。它仍然对碰撞做出响应,但如果它因为碰撞而移动(我正在扔一个球来测试它的物理特性)并且我按下键盘上的任何移动按钮,它就会停止。如果它是静止的,我按下按钮让它移动它就不会反应(保持静止)。

这是播放器的课程。

好的,这就是课程。请注意,RefreshPosition 有两个参数:x 和 z 位置(我不想更改 y 位置)。这两个变量代表玩家的方向(0 到 1),乘以 20 得到速度(最大值 = 20)。

我希望我给了你足够的信息......

0 投票
1 回答
2091 浏览

performance - 配置 Bullet Physics 以提高速度

如何配置子弹引擎的速度,而不是物理精度?例如,是否可以增加摩擦力,使物体更快地静止?

目前,我只能执行以下速度优化:

0 投票
1 回答
247 浏览

physics - 基于物理的步行(从一个新的零开始)

看到这个视频,我很惊讶,很自然地,我想尝试自己做。http://www.youtube.com/watch?v=P_DeZUg9HiY

有谁知道他是如何让角色走路的?看1:15的视频。你认为他在腿上使用了什么样的 Bullet 物理约束?他是在制造某种弹簧吗?

0 投票
0 回答
109 浏览

java - jBullet - 6DOFConstraint 剧烈振荡

我制作了一个简单的多循环蛇身。我在每个身体之间有一个6DOFConstraint,角度是通过增加/减少旋转的上限和下限来控制的,从而改变角度。

绕水平轴旋转效果很好,但是当绕垂直轴旋转时,一旦达到大约1.05rads的角度,两个物体就会剧烈振动。

屏幕截图可以在这里找到,其中的描述更详细地介绍了我所做的事情:

http://www.youtube.com/watch?v=OQu-YyxLvbw

以下屏幕截图显示了蛇的“头部”在约束仍然存在的情况下线性分离,以尝试消除发生碰撞问题的可能性:

http://www.youtube.com/watch?v=6wso6HDjqXA

我尝试了以下技术来解决问题,但都没有奏效:

  • 将恢复(弹性)设置为非常低——同样的情况
  • 将线性阻尼和角度阻尼都设置为 0
    到 1 之间的值范围——同样的情况
  • 将角度设置为从大于 1.05 开始 - 发生同样的情况。
  • 继续增加超过 1.05 的角度,看看是否平静下来——相反的情况会发生,它会变得更加猛烈。
  • 试穿单关节——同样的情况
  • 检查深度渗透 - 不存在
  • 线性分离两个物体以排除碰撞问题,但保持关节相同——同样发生。
  • 将蛇(除了头部以外的所有部分的质量 = 0f)漂浮在地面上以消除地面相互作用 - 也会发生同样的情况
  • 在锁定位置关闭重力 - 行为延迟到 1.43rads
  • 增加蛇的大小(比例),因为众所周知,jBullet 在较小的项目上存在渲染问题——没有变化。
  • 尝试将身体更改为胶囊形状 - 没有变化
0 投票
1 回答
3329 浏览

opengl-3 - 如何在OpenGL 4.0中实现Bullet的btIDebugDraw接口

Bullet 在旧 OpenGL 中实现了 btIDebugDraw 接口,用于绘制物理世界以进行调试。界面是这样的:

OpenGL 1.1 实现在立即模式下工作,在每次函数调用时将顶点向下发送到 GPU。例如。这里是drawLine()

要将其转换为 OpenGL 4.0,我正在考虑使用定义为此类成员的顶点数组对象,例如 mVAO 和 VBO 也将成为成员。我将在 GLDebugDrawer 的 ctor 中设置 VAO,然后生成顶点并将其发送到 VBO,并在 drawLine() 中渲染它

但是因为每次调用 drawLine() 时我都会发送顶点,所以我似乎没有使用 VAO 的强大功能,而是非常糟糕地模拟了立即模式!

在这个接口中实现线条绘制功能的更好方法是什么,其顶点可以在每次调用中改变?

我想稍后在我的 android 应用程序中使用此代码来检查我的物理特性,因此我正在重写 OpenGL 4.0 中的接口,我认为它更容易转换为 openGLES 2.0 。

我正在考虑在每次 drawLine() 调用时将顶点记录在向量中,然后在 Bullet 对 btIDebugDraw 函数的所有调用完成后更新 VBO。然后我不需要间歇性地向 GPU 发送顶点对,因为 Bullet 调用 btIDebugDraw 函数。

到目前为止,我在这里得到了一些关于管理顶点数据的信息:http: //developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/TechniquesforWorkingwithVertexData/TechniquesforWorkingwithVertexData.html

0 投票
1 回答
488 浏览

physics-engine - 子弹物理标题:没有这样的文件或目录

当我尝试在我的项目中使用头文件时(我之前创建了 .a 文件和链接),我收到下一个错误:

我按照本教程创建库 .a :

http://vgamec.blogspot.com.es/2011/09/instalar-bullet-physics-para-codeblocks.html

有谁知道为什么我不能使用图书馆?

PD 我使用 Codeblocks 12.11 和编译器 GCC 版本 4.7.1,32 位。

0 投票
1 回答
4583 浏览

game-engine - 如何在 Blender 中更改重力轴/方向

我正在 Blender Game Engline 中制作视频游戏,并且希望能够调整重力拉动物体的方向。我可以在脚本中更改场景 Z 重力,但这是沿 Z 轴的一维。

如果能够设置 X、Y 和 Z 重力,或者让所有东西同时围绕原点(或任意点)旋转,我会很好。

如果我可以让飞机施加重力或力场并让它围绕中心以设定的距离旋转(整个游戏世界被包裹在一个球体中),我也可以构建一个系统。

基本上,我希望能够从 python 脚本中自动对所有动态对象施加力,而无需 . 我怎样才能做到这一点?

0 投票
1 回答
253 浏览

bulletphysics - btGeneric6DofSpringConstraint not working properly

I am trying to connect two bodies (one static and one dynamic) using a spring in Bullet. I am using the btGeneric6DofSpringCOnstraint.

The dynamic body hangs from the static body.

During the simulation, I am changing the mass of the dynamic body:

However, no matter what mass I use, the body is still hanging at a same distance from the static body.

Any idea of why this is happening?

0 投票
2 回答
616 浏览

c++ - 如何在 Bullet 中设置碰撞对象的颜色?

所以在那里我做了一个很好的调试抽屉......并让所有世界对象都被淹没......现在我想要一些用特殊颜色绘制(例如子弹播放器,敌人网格表示)。那么如何指定网格颜色以便dynamicsWorld->getDebugDrawer()->debugDrawWorld();正确绘制呢?我在btCollisionShapebtCollisionObject API=( 那么如何设置颜色呢?