我正在和我的朋友们一起开发一些游戏,使用Ogre3D和子弹物理学。我设法让我们的游戏角色移动(只是简单的运行和转弯)。
我想我可以在这节课上实现“跳跃”:
btCollisionWorld::ClosestRayResultCallback res(btFrom, btTo);.然而,我最大的问题是碰撞优化。
我试过:
仅在平面上运动的FPS为60~80 = ok。但是当我的角色与任何其他刚体物体发生碰撞时,FPS会下降到7。
我不知道怎么解决这个问题。我不使用DynamicCharacterController或KineticCharacterController。字符由setLinearVelocity()和rigidbody->getWorldTransform().setRotation(quat)函数控制。
更多信息:
PhysicsManager::GetInstance()->getDynamicsWorld()->stepSimulation(evt.timeSinceLastFrame,8);发布于 2015-04-01 16:01:21
我以前也有过这个问题,我不知道这是不是你的情况,但我们正在实施该死的(游戏),当我们模拟厨房时,我们使用炉子的网格作为碰撞物体(btDbvtTriangleMeshShape),每次角色靠近炉子时,FPS就会下降……
解决方案是对每个炉子使用一个简单的碰撞形状(比如带有几个盒子的btCompound ),然后FPS问题就消失了:
希望您的问题与此类似,这样您就可以通过减少所使用的碰撞形状的复杂性来解决它。
如果不是这样的话,请向我展示在处理您的角色时运行的代码(同时,强烈推荐使用KinematicCharacterController,并且更推荐从PhysX转到more ;D)。
最好的。
https://stackoverflow.com/questions/28084697
复制相似问题