-2

私は小さな Java ゲーム ライブラリを作成しており、C++ メソッドを呼び出して API から描画するのではなく、より Java 指向の描画用の描画コードを作成したいと考えていました。とにかく、他のグラフィックス API よりも遅いのではないかと心配しています。それで、これは良い選択肢でしょうか?もう 1 つの質問は、役立つ OpenCL チュートリアルが見つからないということです (最初に学ぶ必要があります)。

4

3 に答える 3

5

OpenCL はグラフィックス APIではありません。これはレンダリングを目的としたものではなく、通常はあまりうまく機能しません。

さらに、OpenCL は OpenGL ほど「Java 指向」ではありません。これはまだ C ベースの API であるため、「C++ メソッドを呼び出して API から引き出す」ことになります。

于 2013-04-25T08:20:55.360 に答える
2

OpenCLはグラフィック API ではありませんが、ビデオカード (または他の特定のデバイス) を使用して非グラフィカル計算 ( GPGPU )実行できる異種計算フレームワークです。プレーンな C インターフェイスを使用するため、オブジェクト指向の方法。バインディングを見つけることができますが (Java の場合: JOCL )。

于 2013-04-25T08:23:45.077 に答える
0

また; いくつかの優れたオブジェクト指向の Java グラフィックス ライブラリが利用可能であることを認識しています。たとえば、Jmonkey エンジン。

私の知る限り、グラフィックカードと通信する高速グラフィックスが必要な場合は、openGL* を使用する必要があります (openCL とは異なり、グラフィックス用です)。すべての Java API はこれを舞台裏で行います。LWJGL のようなものは、基本的に OpenGL のメソッドを Java に公開するだけで、非常に薄いレイヤーで行います。オブジェクト指向はまったくありません。他のものは、ユーザーが OpenGL に気付かずにそうします。これらは「シーン グラフ」タイプのグラフィック エンジンである傾向があり、完全にオブジェクト指向です。

あなたが望むのは、エンドユーザーには「Java のように感じる」ものを作成することですが、フードの下で OpenGL を使用する場合は、LWJGL のようなものから始めて、その上に構築します。これが JMonkey エンジンの機能です。

これはすべて、3D で作業していることを前提としています。2D で作業している場合、パフォーマンスが問題になることはほとんどありません。

したがって、完全な Java グラフィックス ソリューションが良いアイデアであるかどうかについての質問に答えるには、グラフィックス カードと通信しないため、作業を行うために CPU に依存することになります。2D の場合: これはおそらく問題なく、遅くなりますが、非常に高速よりも低速でも非常に高速です。3D: 現実的なシーンでリアルタイムの速度で動作させることができるとは思えません。

*またはdirectXですが、それにも同じ問題があります

于 2013-04-25T08:50:03.230 に答える