2013-06-05 42 views
14

非常に簡単なJava 3Dエディタ(実験用)を作成したいと思います。私は基本的なJavaFXの使用法を知っており、十分なOpenGLの知識を持っています。しかし、私のOpenGLの経験は、C/C++で作業していることです。JavaFXでOpenGLを使用するには?

JavaFxアプリケーションで「キャンバス」を作成し、その上にOpenGLビューポートをマップできますか?

+0

インターネットには多くの例はありませんが、実装はここで見ることができます:http://www.java-gaming.org/topics/lwjgl-javafx-integration/27801/view.html – Appleshell

+0

これは使用できますプロジェクトをベースとして:https://github.com/Spasi/LWJGL-FX –

答えて

14

内部的には、JavaFXはレンダリングパイプラインとしてOpenGLを使用できるため、競合を避けるために、2つの間の統合に注意が必要です。 JavaFXの

リチャード・ベア、openjfx development mailing listに掲載のJavaFXチームのリードで

OpenGLNode:私は8の更新のために(例えば)に行わ見たい

ことの一つは、OpenGLNodeを持つことですまたはNativeSurfaceNodeかそれらの行に沿ったものなので、あなた自身のD3D/OpenGLをやっている場合は、それらの生のコマンドをグラフィックスカードに送ることができますが、あなたのノードはシーングラフに合成されます。

今後のJavaFXリリースのアップデートには、OpenGLNodeが含まれている可能性があります。 このような機能は、JavaFXの一般的なリリースでは、JavaFXの最初のリリース後に次のJavaFX機能がリリースされるまで、2014年9月頃にリリースされる予定です。

サードパーティのOpenGL/JavaFXの統合

あなたはJavaFXのとOpenGLの統合を開始するそう長く待つ必要はありません。実装を開始するために必要なソースコードはすべてOpenJFX repositoryで公開されていますので、lwjgljoglなどのライブラリを使用して、そのコードのカスタム統合を構築できます。

この回答は、開発者がJavaFXとOpenGL API用の既存のJavaラッパーとの統合を開始した時代のものです。一部の開発者は既にこのような作業を開始しています。現在の統合プロジェクトとそのステータスについては、lwjgl javafxまたはjogl javafxのGoogle検索を実行してください。

最も簡単な統合は、サードパーティのライブラリをオフスクリーンバッファにレンダリングし、必要に応じてバッファからJavaFX WritableImageまたはにピクセルを転送して、OpenGLレンダリングされたグラフィックをJavaFXシーングラフに合成させることです。

JavaFXの3D APIの代替

のJavaFXは、JavaFXのシーングラフに3Dモデルを影付き複合フォンの機能を提供し、独自の軽量の3D APIを持っています。 JavaFX 3D APIは、完全なOpenGL API統合のすべての機能を提供するわけではありませんが、JavaFX 3D APIを使用するのは比較的簡単です。説明、コード例は3D features in Java 8 is on the open-jfx wikiです。

インタラクティブメッシュには無料の3D model importer for JavaFXが用意されています。複雑な陰影を付けられた3DモデルをJavaFXシーングラフに簡単に表示できます。

には、提案したJavaFXベースの3Dエディタの基礎を作成するためにフォークできる3D Viewer projectがあります。

Nashorn JavaScriptエンジンにはスイッチがあり、use JavaFX and its 3D features from JavaScriptにすることができます。そうすれば、JavaFXの3D機能にアクセスするために、別のjvm言語を使用することができます。

+5

だから、ほぼ1年が経過しました... OpenGLNodeについてのニュースはありますか? –

+4

Sargeがなければ、答えにリンクされているメーリングリストに尋ねることができます。 – jewelsea

+1

これは、JavaFXにこのように追加されたものです。これが実現することを望みます。 –

2

はい、是非、JOGLを使用して、OpenGLを使用してJavaでできるすべてのものをC/C++で効果的に達成できます。

+8

JOGLまたはLWJGLを使ってJavaからOpenGLを使用することはできますが、既存のJavaFXウィンドウに実装するのは簡単ではありません。 – Appleshell

+0

これは多くの質問には答えません。質問はどのようにして、答えはちょうど一般的な方向を指しているかを質問する。 – Suma

関連する問題