問題タブ [jmonkeyengine]

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.

0 投票する
1 に答える
1968 参照

java - JMonkeyエンジンで起動画面を編集する

デフォルトのJMonkeyプロジェクトの起動画面を編集して、JMonkeyを表示する画像をカスタム画像(プロジェクトのロゴ)に置き換えることができます。SimpleApplicationプロジェクトを実行したときに表示される画面を意味します。Linuxマシン(重要な場合はLinux Mint 13)とOpenJDK7でJMonkeySDKを実行しています。

0 投票する
0 に答える
453 参照

java - JME APPLET (ブラウザがライブラリを読み込めません)

シンプルな JME アプレットを作成しましたが、ネイティブ ライブラリに問題があります。実行するとエラーが発生します。ライブラリを Java コンソールに表示されるカタログに移動すると、このエラーは消え、すべて正常に動作します。次の例もうまく機能します: http://jmonkeyengine.com/demo/applet/。抽出がうまくいかないようです。

0 投票する
1 に答える
1787 参照

java - 気の利いた GUI レイアウト

私は JME3 ゲーム エンジンは初めてですが、Android XML GUI レイアウトがかなり優れていることは知っています。ここには単純なレイアウトがあり、何が間違っているのかわかりません。ここに私のXMLコードがあります:

テキストを表示するまで、すべてうまくいきます。さまざまな配置を試し、テキストを別のパネルに移動しようとしましたが、何をしてもテキストが画面の中央に表示されません。これまでのところ、常に左上隅にあり、テキストの右下部分しか見えません。シンプルなものでなければならないと確信していますが、私はこれに慣れていないので、何も気づいていません。事前に助けてくれてありがとう。

0 投票する
1 に答える
1014 参照

java - 外側のクラスのメンバー変数は内側のクラスにヌルです

JME3とNiftyGUIを使用してゲームに取り組んでいます。Niftyメンバー変数を持つ外部クラスがあります。また、内部クラスは、アクセス修飾子に関係なく、その変数にアクセスできる必要があります。Niftyコンストラクターで、新しいオブジェクトをコンストラクターに割り当てます。ただし、内部クラスでその変数にアクセスすると、問題が発生します。少しデバッグを行ったところ、内部クラスがNiftyメンバー変数がnullであると見なし、その理由がわからないことがわかりました。外側のクラスではnullではありません。これはJME3ゲームなので、内部クラスにAppStateインターフェイスを実装させようとしましたが、それでもNiftyメンバー変数がnullとして表示されます。コードは次のとおりです。

quitButton()メソッドを呼び出す終了ボタンをクリックするとどうなりますか。それはうまくいきます。showDialog()これにより、問題が発生する場所が呼び出されます。showDialog()メソッドにはこの行があり、あるべきではないときにnullになるpopup = new Nifty().createPopup("popup");行にあります。mNiftyどんな援助も大歓迎です。

0 投票する
1 に答える
5198 参照

java - Jmonkey 衝突検出

私は Jmonkey プログラミングが初めてで、衝突の相互作用について質問したいと思います。私のコードはおそらく地形から衝突を見つけているようで、これを解決する方法がわかりません。私の目標は、プレイヤーが敵のゴースト コントロールと衝突して出力としてメッセージを表示した場合に最初に検出される人物になることです。私のコードは継続的な衝突を表示し、その後クラッシュします...

0 投票する
1 に答える
156 参照

java - BoundingVolume 内のすべてのポイントを返す方法

私は jmonkeyengine を実験していますが、バウンディング ボリューム内にあるすべてのポイントを (定義済みの大きなポイント セットから) 返す必要があることに遭遇しました。ボリューム自体を作成するのは簡単ですが、含まれているすべてのポイントのマップを取得したいと考えています。

コミュニティにはアイデアがありますか?必要に応じて他のライブラリを使用したいと思っています。コミュニティ サポートと BoundingCapsule シェイプのおかげで、jmonkey に惹かれています。

編集:すべてのポイントを反復処理し、.contains を使用することを検討しましたが、残念ながら、スペースには数十万のポイントと比較的小さなカプセルが含まれています。確かに、私が見逃している賢い数学がいくつかあるに違いありません。

0 投票する
1 に答える
305 参照

java - Java jMonkey のバグ、if ループ内の out.write

ボールが跳ね回る小さな jMonkey プログラムがあります。各ボールの 3d ベクトルを毎秒記録したいと考えています。

コードを実行すると:

テキスト ファイルが完全に空白です。しかし、私が実行すると:

私の実際のデータの間に途方もない量の文字があるだけで機能します。

何もしません。少なくとも

またはそれ以上。

私は何か間違ったことをしていますか?そうでない場合、どうすればこれを回避でき、同じタスクを達成できますか?

0 投票する
2 に答える
3296 参照

java - Java3Dと同様のjMonkey最適化

編集:リアルタイム描画を行うために、openglとopenclの間の「相互運用性」でjmonkeyengineとjoclのベースであるlwjglの使用を開始し、100k個の粒子をリアルタイムで計算して描画できるようになりました。たぶん、jmonkeyエンジンのマントルバージョンは、このドローコールオーバーヘッドの問題を解決することができます。

数日間、Eclipse(java 64ビット)でjMonkeyエンジン(ver:3.0)を学び、GeometryBatchFactory.optimize(rootNode);コマンドを使用してシーンを最適化する方法を試してきました。

最適化なし(球の位置を変更する機能あり):

ここに画像の説明を入力してください

さて、1fpsのみがpci-express帯域幅とjvmオーバーヘッドの両方から発生します。

最適化あり(球の位置を変更する機能なし):

ここに画像の説明を入力してください

三角数を増やしても29fpsになりました。

Java3DにはsetCapability()、最適化された形式でもシーンオブジェクトを読み書きできるようにするメソッドがありました。jMonkey engine 3.0はこの主題に対応している必要がありますが、その痕跡は見つかりませんでした(チュートリアルと例を検索しましたが、失敗しました)。

質問: jMonkey 3.0でシーンread/write position/rotation/scaleのノードの機能を設定するにはどうすればよいですか?optimized最初の質問に答えられない場合、最適化コマンドを使用すると三角数が増える理由を教えてください。グラフィックカードにアクセスして変数を自分で変更するための新しいメソッドを作成する必要がありますか(joglかもしれませんか?)?

シーン情報:16kパーティクル(16x16解像度の球)+ 1ポイントライト(およびその4096の解像度のシャドウ)。

pci-expressを介して、ミリ秒で数千のフロート番号を簡単に送信できると確信しています。

  • 追加情報:10ミリ秒かかる粒子位置を更新するためにAparapi-kernelsを使用しています(力を計算するために16k * 16kの相互作用)(最適化モードでは何も変更されません:()aparapiはそれらの最適化されたデータにアクセスできますか?

最適化の場合、batchNode.batch();オブジェクト番号を減らした1fpsを次に示します。

ここに画像の説明を入力してください

オブジェクト数は数百になりましたが、fpsはまだ1です!

球の位置だけをgpuに送信し、頂点の位置を計算させる方が、cpuで頂点を計算し、さらに巨大なデータをgpuに送信するよりも優れている可能性があります。

誰も助けてくれませんか?すでにbatchNodeを試しましたが、十分に役立ちませんでした。

jMonkeyの人々はすでに車輪の再発明を行っており、現在の状況に満足しているため、3DAPIを変更したくありません。もう少しパフォーマンスを絞り込もうとすると(シャドウをキャンセルすると100%の速度が得られますが、品質も重要です!)。

このJavaプログラムは、LOD(数百万の粒子)を使用したマーチングキューブアルゴリズムを備えた小惑星衝突シーンシミュレーター(小惑星のサイズ、質量、速度、角度の選択があります)になります。

マーチングキューブアルゴリズムは、三角数を大幅に減らします。質問に答えられなかった場合は、Java用のマーチングキューブ(またはO(n)凸包)アルゴリズムが受け入れられます!データ:ソースとしてのx、y、z配列、およびターゲットとしての三角ストリップ配列(等値面メッシュポイント)

ありがとう。

ストリームに関するいくつかのサンプルを次に示します(はるかに低い解像度)。

1)重力による立方体の岩のグループの崩壊: ここに画像の説明を入力してください

2)排除力が現れ始めます: ここに画像の説明を入力してください

3)排除力+重力により、グループはより滑らかな形状になります。 ここに画像の説明を入力してください

4)グループは球を形成します(予想通り): ここに画像の説明を入力してください

5)次に、大きな恒星の体が近づきます: ここに画像の説明を入力してください

6)触れようとしています: ここに画像の説明を入力してください

7)衝撃の瞬間: ここに画像の説明を入力してください

Barnes-Huttアルゴリズムと切り捨てられたポテンシャルの助けを借りて、粒子数は10倍(おそらく100倍)多くなります。

マーチングキューブアルゴリズムではなく、nbodyを包むゴーストクロスは、低解像度の船体を与えることができます(BHよりも簡単ですが、より多くの計算が必要です)

ゴーストクロスはnbody(重力+除外)の影響を受けますが、nbodyはそれを包む布の影響を受けません。Nbodyはレンダリングされませんが、クロスメッシュはより少ない三角形の数でレンダリングされます。

ここに画像の説明を入力してください ここに画像の説明を入力してください

MC以上が機能する場合、これにより、プログラムは約200倍多くのパーティクルの包装布をレンダリングできます。

0 投票する
1 に答える
3102 参照

jmonkeyengine - jmonkeyは回転して前進方向を変えますか?

モデルをどのように回転させ、回転によって前方方向を変更するのですか?

私は回転しますが、軸を中心に回転するだけで、前方は同じです。

これはおそらく初心者の質問ですが、私はお尻を蹴っています。

0 投票する
2 に答える
2088 参照

jmonkeyengine - jMonkeyEngine3 プロジェクトで junit ライブラリを解決する方法

JMonkeyEngine は初めてです。jMonkeyEngine3 SDK をダウンロードしてインストールし、Hello サンプル アプリケーションを作成しようとしましたが、常に次のようなダイアログが表示されます。

JUnit ライブラリがダウンロードされていません

Resolve Reference Problems と Ant Library Manager を使用してみましたが、JUnit ライブラリのオプションが 1 つもありません。この問題を解決する方法を教えてください。よろしくお願いします。