ベクターグラフィックスで動作するLibGDXには何も見つかりませんでした。
無痛の代替手段はありますか?
この時点 (2013 年半ば) では、Libgdx でのベクター グラフィックスの簡単なサポートはないようです。まず、一般的にベクター グラフィックスの場合、実際にはSVGを意味します。
「一般的な」SVG ソリューションの問題の一部は、さまざまなコーナー ケースすべてで動作させることが問題のように見えることです。ただし、独自の SVG オブジェクトをレンダリングしようとしているだけの場合は、処理する SVG のより単純なサブセットがあり、何かをハックすることでうまくいく可能性があります (すべての人にとって十分に一般的でなくても)。
さらに、ビットマップを仲介として使用する場合 (ベクトル グラフィックスを画面に直接レンダリングする必要はありません)、Java ベースの SVG パーサーとラスタライザーを見つけるだけで済みます (対して、 Libgdx または LWJGL バックエンド)。
libgdx での SVG ファイルの使用を参照してください。ここでの提案はShapeRenderer
、単純な「スケーラブル」なグラフィックに Libgdx を使用することです。SVG ではありませんが、ユースケースには妥当かもしれません。
Google 検索で、AWT バックエンドを使用するこのGPL 準拠の Java SVG レンダラーが見つかりました。このコードは、Libgdx レンダリングを使用するように適応できるほど単純に見えます。しかし、それがいかに単純であるかを考えると、SVG が実際にどれだけサポートされているか (またはまったく機能するかどうか) は明確ではありません。
Apache Batikプロジェクトは、汎用 Java SVG パーサーおよびレンダラーです。巨大に見えます。SVG を .png 形式にレンダリングする (そして、それらを Libgdx Pixmaps に変換する) ことができる場合があります。(私はこれについての経験がありません。)
(死んだ?) libgdx SVG 拡張プロジェクトがありますが、最も基本的な SVG 解析のみが完了したようです。
私はまだLibGDXも学んでおり、あなたのような同様の問題に直面しようとしています。正投影ビューでの 2D モデルのレンダリング。
LibGDX は、グラフィック用に OpenGL ES で動作し、Blender 3D のプラグインで作成されたモデルのインポートもサポートしています。私はまだこれを試していませんが、これを行うための解決策は次のとおりです。
これを解決する解決策は、Blender 3D でスケーラブルなグラフィックをモデル化することだと思います。SVG ファイルを使用している場合、Blender 3D はそれらのファイルをインポートできるため、Blender 3D を最初のタッチダウンとして使用できます。
追加: 私は今それを行うことができました。ただし、少しひねりがあります。Python スクリプトを使用したメソッドは時代遅れです。上記の最初のリンクへのページのコメントに、xoppa のチュートリアルへのリンクがあります。そこには、 FBX コンバーター ツールを使用してモデルをエクスポートする方法が記載されています。. Blender 3Dで正面に向いた2Dの平面形状を作りました。それをFBXにエクスポートし、コンバータツールを使用してG3DBファイルを作成しました。xoppa のチュートリアルで説明されているように LibGdx の G3dModelLoader メソッドを使用すると、ModelBatch を使用してビューに描画できるようになりました。Orthographic カメラを 0,0,0 (またはニーズに合ったもの) に向け、z 軸を少し戻します。そうしないと、カメラが見えなくなります。これは Orthographic カメラなので、距離は関係ありませんが、どういうわけか 0,0,1 は何らかの意味を持ちます :) また、レンダーの各フレームで GL_DEPTH_BUFFER_BIT をクリアすることも忘れないでください。