ゲームを作っていて、ベクターグラフィックスを使用したいと考えています。Cairoを使用して再コーディングを開始しましたが、パフォーマンスは恐ろしいものです。だから、私は別のライブラリを探しています。C ++とクロスプラットフォーム(Direct2Dなしなど)に対応している必要があります。このように前に誰かが尋ねた別の質問がありますが、適切な回答がありませんでした。何かがあるはず…?
ゲームを作っていて、ベクターグラフィックスを使用したいと考えています。Cairoを使用して再コーディングを開始しましたが、パフォーマンスは恐ろしいものです。だから、私は別のライブラリを探しています。C ++とクロスプラットフォーム(Direct2Dなしなど)に対応している必要があります。このように前に誰かが尋ねた別の質問がありますが、適切な回答がありませんでした。何かがあるはず…?
回答:
このテーマは非常にトリッキーであると思います。マルチプラットフォームソリューションのいくつかはローンチされたようで、単独で生き残ったようには思えません。数か月前にこの問題を調べていました。iOSとAndroidでエンジンを実行する必要があるため、制約がありました。当時、本当に自分に合うものは何も見つかりませんでした。
しかし、私が覚えていることからのいくつかのポインタ:各GUIシステムには何らかの形の描画APIがあります。そのため、QTのようなクロスプラットフォームであるものの中に興味深いものを見つけるかもしれません。
cairoに相当するのはAntiGrainです。パフォーマンスを比較したい場合があります。
OpenFrameworksはベクターグラフィックスをサポートしています。
いくつかのベクトルグラフィックスサポート(および専用の言語)を備えた非常に大きなライブラリはImageMagickです。
下位レベルでは、gnomeプロジェクトのLibxmiとLibartが見つかります。
高レベルのAPIではありません-それがあなたに合う確率はどのくらいかわかりません-しかし、標準のOpenVGがあります。ソフトウェアOpenGLおよびOpenGL ESレンダラーを介したOpenVGの複数のポートがあります。Mesa 3DにもOpenVG実装があるようです。ただし、一部のプラットフォームでは、商用ソリューションしか利用できません。
ベクターグラフィックスのAPIを統合する、より高レベルのライブラリがあります。これらの中には、GUIデザイン用のClutterという名前のオープンソースがあり、本格的なゲームデザインで使用されています。scaleform(非オープンソース)があります。このゲームエンジンには、ベクターグラフィックスを描画するための関数がいくつかあります。2DEngine
編集:クラッターはどうやらカイロを使用しています。
MonkVGは、OpenGL ES 1.1および2.0をベースにしたクロスプラットフォームのOpenVGエミュレーションです。参照:https : //github.com/micahpearlman/MonkVG
注:私はこのライブラリの最初の作成者および保守者です。非常に自由なBSDライセンスがあります。
私は気にせず、高解像度の画像とOpenGLでのスケーリングを行っただけです。それは私の状況に十分うまくいきます。