MMO 3D ゲームを作成したいのですが、3D エンジンを探しています。私の質問はjavaFX 8についてです。これを使用して、多くの 3D キューブ、モデル、およびアニメーションをパフォーマンスを損なうことなくレンダリングできますか、またはlwjglを使用するのが最適ですか?
最後の質問は、javaFX 8 を 3D エンジンとして使用できるかどうかです。
質問に答えるには:
パフォーマンスを低下させることなく、多くの 3D キューブ、モデル、およびアニメーションをレンダリングするために使用できますか?
これは多くの人にとって(私が思うに)疑問でした...そして明確な答えはありませんが、それを機能させる方法はあります.
たとえば、私は最近単純なクロス シミュレーターを作成しました (最初は頂点用の球体、次に実際の TriangleMesh)。最初は、更新ループに AnimationTimer を使用するアプローチを取りました。これは機能しましたが、特定の範囲の計算までしか機能しませんでした。 .
私の 2 番目のアプローチは、固定の timeStep 間隔で ScheduledService を使用し、完了時に UI を更新するように設定して、Timer を作成することでした。
パフォーマンスが揺れ始める前に、頂点の数をほぼ 2 倍にすることができました。20k の頂点を持つことができたので、これはかなりの改善でした (お勧めしません)。
結果はこちらの youtube でご覧いただけます。
したがって、実際には、ソリューションの作成にどれだけの時間を費やしたいかが問題です。
javaFX 8 を 3D エンジンとして使用できますか?
繰り返しますが、実際には、フレームワークの開発にどれだけの時間を費やしたいかによって異なります。私は個人的にまさにこの目的のためにツールセットを構築しようとしてきました. すべてがうまくいくわけではありませんが、旅は解決策の半分です.
クロス シミュレーションでの私のアプローチに興味がある場合は、ここですべてのソースを見つけることができます: F(x)yzLib、および他の多くの便利な機能/形状など...
はい、JavaFX 8 は 3D ゲームには十分速いと思いますが、シェーダーに関しては現在の 3D の最先端ではありません。私はそれを理解しようとしてきましたが、Three.js で得られるようなカメラの lookAt メソッドがありません。
Lwjgl と JMonkeyEngine は、現時点では Java 3D ゲーム開発に適したオプションです。
javaFx は単純な 2D ゲームには最適ですが、3D ゲームでは lwjgl または jmonkeyEngine が javafx よりも優れています。3D ゲームには遅すぎると思います (ただし、非常に単純なものでは良いかもしれません)