12

GL はすべてのゲーム プラットフォーム (ハンドヘルドも含む) の主流になっているようです。これにより、最新の GPU チップセットを多数の消費者に展開することが求められています。

これは素晴らしいです。

現在出回っている最新の GPU システムでは、一般的な旧式のグラフィックス プログラミング (別名 - VRAM を使用した X rect から Y rect へのブリット) を実行できますか? (Amiga を考えてみてください) それとも、操作は頂点シェーダーとピクセル シェーダーを中心にしているのでしょうか?

これは GL からアクセスできますか? OpenGLES?

テクスチャ付きクワッドのレンダリングは問題ありませんが、ダブル バッファリングとシーン全体の再レンダリングが必要になります。これを回避できるかどうかを見ていました。

4

6 に答える 6

7

glBlitFramebufferルーチン(Framebuffer Object )を確認します。更新されたドライバーが必要です。

デフォルトのフレームバッファを引き続き使用できることを覚えておいてください。ただし、フレームバッファオブジェクトを使用する方が面白いと思います。

スプライトを別々のフレームバッファー(おそらくOpenGLを使用してレンダリング)に保持し、それらを読み取りとして設定し(glReadBuffersを使用)、描画フレームバッファーでブリットします(glDrawBuffersを使用)。とてもシンプルで速いです。

于 2010-03-02T17:55:29.107 に答える
2

さて、libSDLを使用して、スクリーン フレーム バッファへのポインタを取得し、ピクセルに対して必要なことを行うことができます。または、すべての描画をメモリ バッファに実行し、GL テクスチャにロードして、テクスチャ化されたクワッドを描画することもできます。これは、ハードウェア アクセラレーションによりおそらく高速です。

于 2010-02-28T11:24:46.047 に答える
1

「昔ながらの」ブリッティングを簡単にシミュレートできるテクスチャ化されたクワッドを描画している場合、実際にピクセルは GPU によってビデオ メモリからコピーされます。また、OpenGL ではビットマップ操作が可能ですが、2D パスは最適化されていないのに対し、3D パスはコンシューマ グレードのビデオ カードで最適化されているため、非常に遅くなる可能性があることに注意してください。

于 2010-03-01T10:14:32.480 に答える
1

一部の組み込みシステムでは、フレームバッファ ポインタを取得して直接書き込むことができる場合がありますが、最近では、OpenGL|ES を使用してテクスチャをレンダリングする方が適切です。移植性が高くなり、おそらく高速になります。

メイン メモリにバッファを作成し、必要な処理をすべて行ってから、テクスチャとしてレンダリングすることができます。速度を上げるためにテクスチャ データを VRAM に DMA し、それをクワッドでレンダリングできます。これはブリットと同等ですが、CPU サイクルをまったく使用せず、GPU が処理できる速度で実行します。

最近、シェーダーとプログラム可能なパイプラインでできることは驚くべきことです。

于 2010-02-28T11:43:31.867 に答える
0

また、環境が正しく設定されていれば、glCopyPixels はうまくいくようです。

于 2010-03-08T07:11:19.313 に答える