1

Cairoを使用してベクトルベースのゲームを作成するための C# フレームワークを設計しています。現在、TaoMono.Cairoを使用して、SDL サーフェスに描画する Cairo コンテキストを作成し、そのサーフェスを画面に描画しています。ソースコードはこちらから入手できます。

最初は、かなりの速度で大量のものをレンダリングして、非常にうまく機能していると思っていましたが、1080p でフルスクリーンで実行しようとしたところ、突然遅くなりました。

私はそれについて多くのことを読んでいましたが、レンダリングに OpenGL を使用すると、SDL を使用するよりも 2D 描画のパフォーマンスが向上する可能性があると誰かが言っているのをどこかで見ました...これは事実ですか? それは価値があるでしょうか?または、私が見逃している他のオプションはありますか?

画面にいくつかの図形を描画するのが非常に難しいことは、私にはクレイジーに思えます。特に、カイロの残りの部分がどれほど素晴らしいかを考えると.

4

1 に答える 1

1

Cairo については具体的にはわかりません。特にそれはモノラル バリアントであるためです。しかし、しばらく前に Tao と同様の WPF レンダリング ツールキットであるHelix 3Dを使用してメッシュ セットをレンダリングする一見単純なエンジンを開発したときに、サンプルと小さなメッシュをレンダリングすると問題なく動作しましたが、より大きな解像度でより大きな領域をレンダリングしようとすると、パフォーマンスが低下しました。

要するに、これらのツールキットが日常のレンダリングや小さなプロジェクトに最適であるという事実にあると思いますが、ゲームや、高解像度でも適切に動作するはずのものを開発しようとしている場合、その最適化と微調整 OpenGL とそれらの背後にある DirectX は比類のないものであり、ほとんどの場合、小さな魚よりも優れています。

個人的には、DirectX の使用に切り替えたとき、Helix 3D とまったく同じメッシュ セットをレンダリングするときに、ほぼ完璧なパフォーマンスが得られました。そうです、より大きなフレームワークを扱うことには一定のメリットがあります。おそらくそれだけの価値があります。

于 2013-07-25T21:33:45.607 に答える