4

私の全体的な目的の概要を説明するために、Google Earth のようにズームおよびパンできる一連の世界の政治的境界 (国) と州を表示したいと考えています。私のデータセットは、表示したい境界を定義するのに約 1,200,000 の緯度/経度ポイントを持つのに十分詳細です。ハードウェア グラフィックス アクセラレーションを利用するために、JavaFX 3D の使用を検討しています。

これを行うと許容できるパフォーマンスが得られますが、javafx.scene.shape.Polyline がレンダリングされる方法で問題が発生しています。360x200 単位の 2D 平面付近のシーングラフで世界の政治的境界を表すポリラインを描画しようとすると、ズームインすると線が低解像度の画像であるかのようにひどくピクセル化されます。

私が本当に欲しいのは、線オブジェクトからどれだけ近いか、どれだけ離れているかに関係なく、線が画面上で一定の「幅」でレンダリングされることです。間違った形状オブジェクトを使用している可能性がありますが、他のオブジェクトは明らかに私がやりたいことに適合しませんでした。同じ結果で「Path/LineTo」も試しました。

F(X)yzは有望に見えますが、サードパーティのライブラリは避けたいと思っていました。

過去に私は元のjava3dを使用していましたが、この問題が発生したことを覚えていません。そこで、LineArray を使用しました。

JavaFX 3D (java 1.8) を使用して、どれだけ「近い/遠い」かに関係なく、同じように見える線/光線/ベクトルを描画する方法について提案がありますか、それとも F(X)yz が私の最良の選択肢ですか? レンダリング設定のヒント?

4

1 に答える 1

3

しばらく前に同様の質問をしましたが、 JavaFX には 3D コンポーネントがないため、F(X)yz が依然として最善の方法であると思います。

あなたの特定のケースでPolyLine3Dは、あなたが望むものです。内部でメッシュ ビューを使用して、3D 環境内でハードウェア アクセラレーションを有効にします。別の方法は、境界線を自分で三角測量し、 を使用することTriangleMeshです。線の幅を同じサイズに保つ必要があるため、マップをズームするたびにこれを行う必要があります。

于 2015-12-02T12:29:45.777 に答える