優れたクロスプラットフォームのC ++ベクトルグラフィックスライブラリはありますか?[閉まっている]


9

ゲームを作っていて、ベクターグラフィックスを使用したいと考えています。Cairoを使用して再コーディングを開始しましたが、パフォーマンスは恐ろしいものです。だから、私は別のライブラリを探しています。C ++とクロスプラットフォーム(Direct2Dなしなど)に対応している必要があります。このように前に誰かが尋ねた別の質問がありますが、適切な回答がありませんでした。何かがあるはず…?


「以前に尋ねられた質問」とは、gamedev.stackexchange.com / questions / 4788 /…を意味しますか?
テトラッド、2011年

@Tetrad:前の質問は明示的にWindowsのソリューションを要求するため、暗黙的にマルチプラットフォームを除外します。そして、答えはWindows関連のソリューションのみを指しているようです。
コヨーテ

2
@ザック・ヒンチー:クロスプラットフォームとは、正確にはどういう意味ですか?Windows、Linux、OS X?または、ハンドヘルドプラットフォームiOS、Brew、Androidを含めますか?
コヨーテ

2
「何かあるに違いない…?」どうして?一般に、ベクターグラフィックスは、30 + fpsを必要とする人が行うものではありません。Webブラウザーは30fpsでページをロードしますか?いいえ、10fpsで十分です。ベクトルグラフィックスを使用するのは、パフォーマンスよりも品質を重視するためです。したがって、ベクターグラフィックスライブラリは、パフォーマンスよりも品質を重視しています。カイロ自体は遅いわけではありませんが、高品質のベクターグラフィックスレンダラーです。そして、その品質は、パフォーマンスを低下させないことを意味します。
Nicol Bolas

1
@iamcreasy:四角形を大きく/小さく描画することとベクターグラフィックスライブラリを描画するだけでは大きな違いがあります。ゲームはGPUでレンダリングされます。ベクターグラフィックライブラリは使用しません。彼らはカイロやアンチグレインなどの性質のものを使用していません。
Nicol Bolas

回答:


21

このテーマは非常にトリッキーであると思います。マルチプラットフォームソリューションのいくつかはローンチされたようで、単独で生き残ったようには思えません。数か月前にこの問題を調べていました。iOSとAndroidでエンジンを実行する必要があるため、制約がありました。当時、本当に自分に合うものは何も見つかりませんでした。

しかし、私が覚えていることからのいくつかのポインタ:各GUIシステムには何らかの形の描画APIがあります。そのため、QTのようなクロスプラットフォームであるものの中に興味深いものを見つけるかもしれません。

cairoに相当するのはAntiGrainです。パフォーマンスを比較したい場合があります。

OpenFrameworksはベクターグラフィックスをサポートしています。

いくつかのベクトルグラフィックスサポート(および専用の言語)を備えた非常に大きなライブラリはImageMagickです。

下位レベルでは、gnomeプロジェクトのLibxmiLibartが見つかります。

高レベルのAPIではありません-それがあなたに合う確率はどのくらいかわかりません-しかし、標準のOpenVGがあります。ソフトウェアOpenGLおよびOpenGL ESレンダラーを介したOpenVGの複数のポートがあります。Mesa 3DにもOpenVG実装があるようです。ただし、一部のプラットフォームでは、商用ソリューションしか利用できません。

ベクターグラフィックスのAPIを統合する、より高レベルのライブラリがあります。これらの中には、GUIデザイン用のClutterという名前のオープンソースがあり、本格的なゲームデザインで使用されています。scaleform(非オープンソース)があります。このゲームエンジンには、ベクターグラフィックスを描画するための関数がいくつかあります。2DEngine


編集:クラッターはどうやらカイロを使用しています。


3

MonkVGは、OpenGL ES 1.1および2.0をベースにしたクロスプラットフォームのOpenVGエミュレーションです。参照:https : //github.com/micahpearlman/MonkVG

注:私はこのライブラリの最初の作成者および保守者です。非常に自由なBSDライセンスがあります。


これは問題に対するすばらしい貢献ですが、自分が関係しているもの(自分のgithubアカウントなど)を宣伝する場合は注意するのが適切です。
セスバティン

-1

私は気にせず、高解像度の画像とOpenGLでのスケーリングを行っただけです。それは私の状況に十分うまくいきます。


4
あなたは図書館について尋ねましたが、それが言うところの答えを受け入れました、反対方向を選んでください(あなたの答えであるという事実を無視して)。それは良い判断ではありません。(また、@ Coyotoが回答を書くのに15分ほどかかる可能性があるという事実も無視します)。ごきげんよう!
Quazi Irfan

1
これは約3年では遅すぎますが、最近別の回答が提出されて通知が届いたので、ようやくこれを見ました。私は先に進み、私が受け入れられなかった鉱山で、@ Coyoteを受け入れました。申し訳ありませんが、その当時はStackOverflowを完全には理解していませんでした。遅くなることはありませんが、私は願っています-うまくいけば、将来的に質問を見る人々を助けることになるでしょう。
ザックヒンチー、2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.