1

今日、私は Physx と Physx ビジュアル デバッガーをいじってみましたが、いつものように、初心者には問題と質問があります。苦手な英語力でできる限り自分の問題を説明しようと思います。

1) なんとか physx シーンを作成できました。動的アクターを追加して操作しました。Visual Debugger で動きが見えます。これは標準の PxSphereGeometry ボールです。しかし、シーンに 2 番目のボールを追加すると、2 番目のボールは表示されませんが、衝突が発生することがわかります。これがコードです。誰かが私に何が問題なのかを指摘できれば、私は非常に感謝しています:

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 と衝突しますが、Visual Debugger で aTrActor を確認することはできませんが、衝突は完全に表示されます。

2) Nvidia のドキュメントは非常に貧弱です。私のような初心者がそれを通り抜けるのは拷問です。そこで、3D モデルをインポートしてシーンに追加する方法を知りたいと思いました。3ds max、maya などの Physx プラグインがあることは知っています。このプラグインでモデルをエクスポートしたとします。それをアプリにインポートしてシーンに追加するにはどうすればよいですか?

3) シーンの作成中

sceneDesc.gravity = PxVec3(0.0f, -9.81f, 0.0f);

、私たちが地球上に持っている真の重力を得るには、どのような値を提供すればよいですか

4) アクターに質量を割り当てることはできますが、質量の測定単位がわかりません。たとえば、aSphereActor->setMass(1); を設定するとします。aSphereActor は 1kg、グラム、または何になりますか?

皆様、本当にありがとうございました。私はあなたの助けに感謝します。

4

1 に答える 1

2

まず、今四半期に最初の Physx プロジェクトを行っています。(読んで、私はこれを作っているかもしれません)
1)
  aTrActor の作成をチェックしていませんが、それはあなたの問題ではないと思います。
  描画/更新コールバックに TrActor があるかどうかを確認します。
2)
  Dunno
3)
  -9.81 m/s^2 は地球の重力の加速度です。
  PxVec3 は各軸に対する重力だと思います。
  したがって、PxVec3(0.0, -9.81, 0.0) は、x または z の加速度がなく、y の加速度が -9.81 m/s^2 です。
4)
  #3 への答えは、単位がメートル法であることを示唆しています。
  おそらく標準ですべてをまとめて投げることができますが、メトリック>標準imoです。

日付を見ただけで、これはダビタの助けにはならないかもしれませんが、うまくいけば誰かの役に立つでしょう.

于 2013-02-10T04:26:48.657 に答える