問題タブ [jbullet]
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.
java - 他のオブジェクトを通過するボディ
私は小さな FPS (個人プロジェクト) に取り組んでおり、Java で書かれ、JBullet (弾丸のポート) を使用しています。私は OpenGL を使用した基本的なレンダリング エンジンを手に入れましたが、弾丸はうまく機能します。RigidBody を使用してキャラクターを実装しましたが、私のキャラクターは地面を除くすべてのオブジェクトを通過し続けます。これが何が起こるかのデモです
これは弾丸を含む私の最初のプロジェクトですが、Google (または StackExchange) でこの奇妙な動作をする人は見つかりませんでした。
これが私のコードの要約です。
メインクラス:
プレーヤー:
なぜ私の体は他の体のように物理に関係していないのですか? 重力を元に戻す必要があり、衝突する唯一のオブジェクトは地面です (プレイヤーと同じくらいバグがあるかもしれません)。何かわからなかったようです。
java - 別のスレッドでのステップ シミュレーションでの JBullet NullPointer
次のように実装された別のスレッドで物理が更新されるゲームのセットアップがあります
物理プロセッサ (物理スレッド)
メインスレッドでのオブジェクト作成の例
問題は、ゲームを実行すると、「stepSimulation」の別のスレッドで null ポインター例外が発生することがあるということです。これは、dbvt ブロードフェーズの setAabb が原因でした。
この例外を防ぐために私ができること、またはそれを回避する方法について何か提案はありますか?
bullet - 衝突時に翻訳を無効にする方法は?
私がしたいこと
プレイヤー/キャラクターを剛体と同時に動かしたいです。
私のキャラクターが別の RB と衝突すると、他の RBは移動しますが、私のキャラクターは移動しません。
知りたいこと
衝突時に特定の剛体の移動を無効にすることはできますか? はいの場合、どのように?
opengl - 描画された OpenGL 3D シェイプに Bullet 物理を適用する方法
私は、弾丸の物理学をopengl描画オブジェクト(glVertex3fまたはglVertexAttribPointerを使用した三角形メッシュを使用して作成)に適用する方法があるかどうか疑問に思っていました. 現在、jogl と jbullet を使用して、3D オブジェクトに物理学を適用しています。具体的には、3D オブジェクトの三角形のメッシュ形状に頂点のバッファーを与える場合です。三角形のメッシュ形状に基づいて CollisionShape を作成し、それに物理を適用するために Bullet が必要です。同時に、描画された opengl オブジェクトに物理を適用します。現時点では、物理的な衝突形状は (弾丸で) 移動する可能性がありますが、描画された OpenGL 形状は移動しません。
それ以外の場合は、衝突形状を作成し、各シミュレーション ステップの後に物理が適用された後に衝突形状の頂点を取得し、頂点の位置に基づいてオブジェクトを描画できますか。私は弾丸のHello worldの例を見てきましたが、openglオブジェクトの位置に物理学を適用するのに役立ちます(z、y、x軸に基づいて_、たとえば立方体の角が平面にぶつかるなどのクールなものではありません)ローリングとスピニング。
誰かがこれを実行できるコードまたはデモを提供してくれれば幸いです。または、これを機能させる方法についてのヒントを教えてください。私はすでに弾丸に関するこのチュートリアルを見ました: http://www.raywenderlich.com/53077/bullet-physics-tutorial-getting-started . しかし、弾丸がopenglオブジェクトにどのように適用されるかについての情報が見つからないようです。
java - 一対の三角形の間の重力
[t1.v1, t1.v2, t1.v3]
点とで定義される 3D の 2 つの三角形が与えられます。[t2.v1, t2.v2, t2.v3]
ここで、v Xは変数 を持つ点です(x, y, z)
。
それらの間の重力をどのように計算できますか?
ポイント マスの式:
私のアプリケーションでは、三角形は互いに接近しており、点質量による近似では必要な精度が得られません。
これが四重積分で解決できることは理解していますが、そのような複雑な方程式を作成または解決するための数学的ノウハウはあまりありません。
編集:
math.stackexchange に関する私の同様の (関連する) 質問: https://math.stackexchange.com/questions/1082860/general-solution-for-the-gravity-between-two-3d-triangles/
java - JBullet:動的世界にハイトマップを追加するには?
コードに実装JBullet
します。ボックス、球は完全に機能します。しかし、世界の高さマップに(静的オブジェクトとして)実装する方法がわかりません。どのタイプの形状をどのように使用する必要がありますか?
私のハイトマップ配列はこのようなものfloat[world_size][world_size]
でした。
java - JBullet - 静的なときに凸形状が正しく機能しない
JBullet での衝突には、動的なボックス形状のボディを使用します。それらは互いに正しく衝突します。しかし、私は世界の構築をいじっていて、いくつかの奇妙な問題に遭遇しました.
凸型の RigidBodies (BoxShape または TriangleShape) を (質量を 0 に設定して) 静的にしようとすると、衝突は指定された形状ではなく (0,0,0) の何らかの点でのみ機能します。動的であれば、うまく機能しています。
追加の問題とおそらくいくつかのリンクがあります: BvhTriangleMeshShape または GImpactMeshShape を使用する場合、動的な場合にのみうまく機能し、静的な場合はとにかく衝突しません (BvhTriangleMeshShape が静的なボディに使用されるという事実にもかかわらず)。
これが私が世界を初期化する方法です:
問題のあるオブジェクト:
誰でも私を助けてもらえますか?2010 年 10 月 10 日から JBullet バージョンを使用しています。前もって感謝します。
java - Java - Heightmap (JBullet) でワールド コリジョンを作成する
Jogl、Jbullet、および OpenSimplexNoise (OSN) を使用して、無限にプレイ可能な世界を作成しようとしています。OSN でワールドを生成し、正常にレンダリングしていますが、それをワールド/コリジョン システムに追加する方法がわかりません。
btHeightfieldTerrainShape クラスを見つけましたが、Java で実装されていません。BvhTriangleMeshShape も使用しようとしましたが、その仕組みがわかりません。
私は世代の3つの値を持っています:
- int Smooth: 1 メートルの分割数
- int viewDistance: 1 つの軸に描画するチャンクの数
- int chunkSize: 1 つのチャンクのメーターの数
ハイトマップを生成するためにこのコードを使用しています:
誰かがこれを追加する方法を知っていますか?