问题标签 [bullet]
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.
c++ - GL_ShapeDrawer 包括
我很难将 GL_ShapeDrawer 包含到我的项目中。这是我第一次尝试 C++ 并且有点难以解决。也使用 Visual Studio 2013。我正在玩子弹演示,更具体地说是车辆演示。
我有一个 c++ openGL 项目,其中我设法包含子弹物理,并且我设法将一些演示重新创建到我自己的项目世界中,但是我遇到了 GL_ShapeDrawer 的问题。我不知道如何将其包含到外部依赖项中以使用 drawOpenGL 方法,因为 GL_ShapeDrawer 不是我设法包含的任何库(BulletCollision、BulletDynamics、BulletSoftBody 和 LinearMath)的一部分。
c++ - 带有 OpenGL 的 Bullet 调试抽屉
我一直在摆弄子弹,现在我想绘制调试。我有一个带有工作子弹物理和一切的opengl世界。
我尝试过的是:我创建了一个像这样的类 GLDebugDrawer:
然后在游戏中我包含这个标题并创建它的一个实例。
在初始化 bt 世界的地方,我设置了调试绘制类型,如下所示:
然后我将调试设置为子弹世界,如下所示:
最后,我在渲染子弹体后渲染调试绘图,如下所示:
一定有一些我错过的东西,因为我在运行时没有得到任何线框或任何东西。
c++ - 获取 btCollisionShape 当前变换
我做了一个复合形状compound = new btCompoundShape();
然后我在化合物中添加了一个碰撞形状:
然后将复合形状转换为刚体,然后作为底盘添加到车辆光线投射器中:
车辆连同它的车轮、底盘和炮塔一起移动,但我似乎无法掌握更新的炮塔变换。每当我尝试这样的事情时:
我总是得到炮塔的初始位置,它最初是在哪里创建的。
现在,对于轮子,我可以这样做:
对于机箱,我可以这样做:
但我不知道如何获得炮塔碰撞形状更新变换?
请注意,在我需要这些信息的地方,我可以访问化合物和 turretShape(实际的 btCollisionShape)。
c++ - 从 btScalar 矩阵获取方向向量
我已经创建了一个带有复合体作为底盘的子弹车,复合体由两个车身组成,一个底盘和一个炮塔。
我可以像这样获得炮塔变换和opengl矩阵:
我正在尝试从此矩阵中获取炮塔前向/方向向量。我需要这个,以便我将相机固定到炮塔的位置和方向。
我试过的是这样的:
但这并没有给我正确的向量。
我到底要在哪里寻找这个矩阵中的向量?
c++ - 如何旋转 btCollisionShape
我已经创建了一个带有复合体作为底盘的子弹车,复合体由两个车身组成,一个底盘和一个炮塔。
我可以像这样获得炮塔变换和opengl矩阵:
turretTransform 是 btCollisionShape 对象 (turretShape) 的变换。
我现在正试图围绕它的 Y 轴旋转这个炮塔。
我试过这个:
其中角度是一个浮点数,但没有任何反应。
我肯定遗漏了一些东西,但不完全理解这些轮换是如何工作的。
c++ - 子弹头车轮落后和错误的底盘俯仰方向
我已经创建了一个子弹车,顶部有一个附加的炮塔,如下所示:
这就是我渲染车辆的方式:
使用箭头键,我像这样应用中断或加速力:
等等
摄像头安装在汽车顶部的炮塔上,因此安装在汽车本身上。
问题在于,当汽车开始移动并加速时,车轮似乎落后而底盘向前移动。我想让车轮和底盘更紧,但玩弄汽车悬架设置并没有帮助。
这是演示此行为的视频:单击
我还注意到另一种与汽车在移动、刹车和转弯时的倾斜方式有关的奇怪行为。
增加重力会加重这种行为。当我加速时,底盘向前倾斜,当我刹车时,它向后倾斜。这显然是错误的,因为它应该是相反的。左转时也会发生同样的情况,汽车向左而不是向右倾斜,反之亦然。
这是另一个演示此行为的视频:单击
c++ - 2个物体之间的子弹碰撞回调
我有 2 个物体,一个球体和一个盒子,当一个物体与另一个物体发生碰撞时,它们会做一些动作(即摧毁盒子)。
我尝试了几种方法:
- checkCollideWith 总是返回 true;
- contactPairTest - 这个我不明白怎么用。它需要 3 个参数、2 个对象和一个回调。我认为回调可以是我的代码中的任何函数,但它不是那样工作的。
有人可以举例说明当 2 个 btRigidBodies 碰撞(即 bodyA 和 bodyB)时如何调用方法,例如 CollissionResult()?
c++ - 碰撞后移除物体(子弹物理)
我有这样的设置用于碰撞检测:
我想在检测到碰撞后移除尸体。
该结构可以访问 colObj0Wrap 和 colObj1Wrap (类型 const btCollisionObjectWrapper*),我认为它们是碰撞的 2 个物体。我试过这个:
但这给出了一个错误: const btCollisionObject* 类型的参数与 btCollisionObject* 类型的参数不兼容
我如何从世界上移除这两个身体?
macos - 构建错误:Emscripten 在 Mac OsX 上的 Ammo.js
我在 Mac上构建ammo.js时遇到问题。(操作系统是小牛)。它不编译 C++ 代码,并且 /build 文件夹中的 bindings.cpp 代码中没有任何内容。
我按照此链接中的程序进行操作。这是我得到的第一个日志。
我知道 MacOSX 包含 clang 编译器,但 emscripten guid 被迫从 llvm 存储库安装 llvm 编译器。我想知道我该如何解决它。有人说 MacOsX 有运行 emscripten 的问题。但我想知道这是对还是错。
======更新=====
我在 make.py 文件中找到了名为 Apple 的 LLVM 的“cpp”,而不是我自己构建的 LLVM。在 make.py 文件中,
旧代码
更改代码
但是即使我更改了make.py,问题仍然存在。错误消息如下。
我想知道我该如何解决它。
java - 我可以在开发后期实现 JBullet 物理吗
我是一个半新的 OpenGL 程序员,并且正在学习 VBO 和着色器如何相互交互。我有一个基本的演示设置,它导入模型并在场景中放置一盏灯。现在,将来我想学物理,但我对 JBullet 的了解最少。我应该从头开始实现物理,同时学习更多关于渲染的知识,还是我以后可以添加的东西,假设我的引擎框架对新的 API 有点灵活?
注意:我正在使用 LWJGL,并计划将 JBullet 与 GLSL 一起使用