如何解决Physx:为什么这些刚体永远不会静止?
我正在使用 physx-4.1,除了我偶尔会遇到一个问题,即我的刚体在放置在表面上时基本上会抖动/振荡,一切都完美无缺。我不确定如何标记这个问题,如何处理它,或者它来自哪里。大多数情况下不会发生这种情况,我可以在一个场景中使用三个立方体,但可能只有一个会这样做。
这个立方体在世界坐标中将在每个坐标中前后摇晃约 0.02 或 0.03。地形是静态动态演员,立方体是动态演员。我从顶点数据中处理了这两个问题,这是迄今为止我遇到的唯一问题。
这是我用来创建场景/物理的代码。
void Physics::initPhysics()
{
m_foundation = PxCreateFoundation(PX_PHYSICS_VERSION,m_allocator,m_error_callback);
m_pvd = physx::PxCreatePvd(*m_foundation);
physx::PxPvdTransport* transport = physx::PxDefaultPvdSocketTransportCreate(PVD_HOST,5425,10);
m_pvd->connect(*transport,physx::PxPvdInstrumentationFlag::eALL);
m_scale.length = 1; // typical length of an object
m_scale.speed = 10; // typical speed of an object
m_physics = PxCreatePhysics(PX_PHYSICS_VERSION,*m_foundation,m_scale,true,m_pvd);
PxInitExtensions(*m_physics,m_pvd);
m_material = m_physics->createMaterial(0.5f,0.5f,0.5f);
m_dispatcher = physx::PxDefaultcpudispatcherCreate(2);
m_cooking = PxCreateCooking(PX_PHYSICS_VERSION,physx::PxCookingParams(m_scale));
m_serialization_registry = physx::PxSerialization::createSerializationRegistry(*m_physics);
}
void Physics::addScene(const std::string& name)
{
physx::PxSceneDesc scene_desc(m_scale);
scene_desc.gravity = physx::PxVec3(0.0f,0.0f,-9.81f);
scene_desc.cpudispatcher = m_dispatcher;
scene_desc.filterShader = physx::PxDefaultSimulationFilterShader;
m_scenes[name] = m_physics->createScene(scene_desc);
}
我尝试过使用 m_material
,尤其是恢复系数。它可能会解决问题,但如果我更改立方体的初始方向,它最终会再次弹出。我还尝试在子步骤中模拟物理,看看是否可以在不改变的情况下增加稳定性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。