今天,我嘗試在PhysX和Physx可視化調試器中玩耍,並且一如既往地,新手有問題和疑問。我會盡我所能地用自己的英語能力來描述我的問題。PhysX 3的幾個新手問題
1)我設法創建了一個physx場景。添加了一個動態演員並操縱它。我在Visual Debugger中看到它是運動。這是一個標準的PxSphereGeometry球。但是,當我在場景中添加第二個球時,第二個球不可見,但我可以看到碰撞發生。下面的代碼,如果任何人都可以點我有什麼地方錯了,我會非常感激:
PxMaterial* mMaterial;
mMaterial = mPhysics->createMaterial(0.5f, 0.5f, 0.5f); //static friction, dynamic friction, restitution
if(!mMaterial)
error("createMaterial failed!");
PxVec3 position(0, 50, 0);
PxRigidDynamic* aSphereActor = PxCreateDynamic(*mPhysics, PxTransform(position), PxSphereGeometry(3), *mMaterial, 1.f);
PxRigidDynamic* aTrActor = PxCreateDynamic(*mPhysics, PxTransform(PxVec3(3, 1, 1)), PxSphereGeometry(3), *mMaterial, 1.1f);
if(!aSphereActor)
error("Unable to create sphere actor");
aSphereActor->setMass(1);
aTrActor->setMass(10);
PxRigidStatic* plane = PxCreatePlane(*mPhysics, PxPlane(PxVec3(0,1,0), 0), *mMaterial);
if (!plane)
error("create shape failed!");
mScene->addActor(*plane);
mScene->addActor(*aSphereActor);
mScene->addActor(*aTrActor);
while(true)
{
mScene->simulate(1.0f/30.0f);
if(!mScene->fetchResults(true))
error("cant fetch result");
Sleep(10);
}
在這個場景中,aSphereActor與aTrActor碰撞,但我看不到aTrActor在可視化調試,但是碰撞完全可見。
2)Nvidia的文檔非常差。對於像我這樣的新手來說,這是一種折磨。所以我想知道如何導入3D模型並將其添加到場景中。我知道有一個用於3ds max的PhysX插件,maya等等。假設我有一個與此插件一起導出的模型,我如何將它導入到我的應用中並將其添加到場景中?
3)在創建現場
sceneDesc.gravity = PxVec3(0.0f, -9.81f, 0.0f);
的,我應該提供什麼樣的價值得到真正的重心,一來我們在地球上
4)我可以大規模分配給演員,但是我不知道質量在哪個測量單位。例如,如果我設置了aSphereActor-> setMass(1); aSphereActor將1kg,克或什麼?
非常感謝大家。我感謝您的幫助。