対象者
このアプリは、WebFX プロジェクトに従う開発者向けに公開されており、プロジェクトのデモの一部です。
新しい聴衆のために
WebFX は、単一の Java コード ベースから 7 つのプラットフォーム (Web、Android、iOS、macOS、Linux、Windows、および Raspberry Pi などの埋め込み) をターゲットにできる無料のオープンソース クロスプラットフォーム ソリューションです。
基盤となるテクノロジー: OpenJFX、Gluon & GWT。
たとえば、https://raytracer.webfx.dev でこの同じアプリの Web バージョンにアクセスできます。
どのプラットフォームでも、アプリケーションのソース コードはまったく同じです (このデモのソース コードにアクセスするには、以下のリンク セクションを参照してください)。
アプリケーションは Java で作成され、JavaFX API を使用してユーザー インターフェイスを構築します。
Gluon ツールチェーン (GraalVM 上に構築) を使用して、Web を除くすべてのプラットフォーム用のネイティブ アプリにアプリケーションの Java コードをコンパイルします (したがって、この Android バージョンも含まれます)。
GWT は、Web バージョンのコンパイルに使用されます。 Java コードを最適化された JavaScript コードにトランスパイルします。
その結果、すべてのプラットフォームのすべての実行可能ファイルが最適化されたパフォーマンスを提供します。
この特定のデモについて
このデモは、CPU 使用率が高いにもかかわらず UI をブロックしないアプリの例を示しています。これは、任意のプラットフォーム (Web 上であっても) で行われます。
アプリケーションがレイ トレーシングを計算している間、UI は引き続き反応します。これまでに計算されたアニメーションを再生しながら、バックグラウンドで計算を続行することもできます。
これは、Web プラットフォーム用の実際の Web Worker に変換される WebFX Worker API と、他のプラットフォーム用の標準 Java スレッドを使用することによって実現されます。
リンク
デモ ソース コード: https://github.com/webfx-demos/webfx-demo-raytracer
WebFX ウェブサイト: https://webfx.dev
WebFX GitHub: https://github.com/webfx-project/webfx