2013-06-26 6 views

答えて

5

この時点(2013年中頃)にLibgdxでベクターグラフィックスをサポートしているようには思えません。まず、ベクトルグラフィックスの場合、実際にはSVGを意味します。

「一般的な」SVGソリューションの問題の一部は、さまざまなコーナーケースすべてで機能するようにすることが問題になっているようです。しかし、あなた自身のSVGオブジェクトをレンダリングしようとしているだけであれば、SVGのサブセットがよりシンプルになり、ハッキングすることができます。

さらに、ビットマップを仲介者として使用したい場合(ベクトルグラフィックスを画面に直接レンダリングする必要はありません)、JavaベースのSVGパーサとラスタライザを見つける必要があります(対1つはLibgdxまたはLWJGLバックエンドを使用します)。

Using SVG files with libgdxを参照してください。ここでの提案は、Libgdx ShapeRendererをシンプルな "スケーラブル"なグラフィックに使用することです。そのSVGはありませんが、あなたのユースケースでは合理的かもしれません。

Google検索でAWTバックエンドを使用しているGPL'd Java SVG rendererが検索されました。このコードは、Libgdxレンダリングを使用するのに適しているほど簡単です。しかし、どれほどシンプルかを考えれば、SVGのどれくらいが実際にサポートされているのか(あるいはSVGがまったく動作するのかどうかははっきりしない)

Apache Batikプロジェクトは、一般的なJava SVGパーサーおよびレンダラーです。それは巨大に見える。 SVGを.png形式にレンダリングする(そして、それらをLibgdx Pixmapに変換する)ことができます。 (私にはこれに関する経験はありません)

libgdx SVG extension projectがありますが、最も基本的なSVG解析だけが完了したようです。

4

私はLibGDXもまだ学んでおり、あなたのような類似の問題に直面しています。 Orthographic Viewで2Dモデルをレンダリングする。

LibGDXはグラフィックス用のOpenGL ESとともに動作し、Blender 3D用のプラグインで作成されたモデルのインポートもサポートしています。 私はまだこれを試してみましたが、ここではそうするためのソリューションですしていない。

Importing Models from Blender

Processing code

私はこの問題を解決するためのソリューションはBlenderの3Dであなたのスケーラブルなグラフィックスをモデル化するだろうと推測します。 SVGファイルを使用している場合、Blender 3Dはこれらのファイルをインポートできるため、Blender 3Dを最初のタッチダウンとして使用できます。

ADD: 私はこれを行うことができました。しかし、少しひねりがあります:Pythonスクリプトのメソッドは古くなっています。上の最初のリンクのページのコメントには、xoppa's tutorialsへのリンクがあります。ここにはFBX converter toolのモデルをエクスポートする方法が記載されています。私は、Blender 3Dの正面図に面した2次元平面形状を作りました。 FBXにエクスポートし、コンバータツールを使用してG3DBファイルを作成しました。xoppaのチュートリアルで説明したLibGdxのG3dModelLoaderメソッドを使用すると、ModelBatchを使用してビューに描画できます。 Orthographicカメラを0,0,0(またはあなたのニーズに合ったもの)にして、z軸上に少し戻ってください。そうでなければ、それを見ることはできません。それは正射投影カメラなので、どれくらい遠いのかは関係ありませんが、どういうわけか0,0,1はなんらかの感覚を作ります:) レンダリングの各フレームのGL_DEPTH_BUFFER_BITをクリアすることを覚えておいてください。

関連する問題