1

私は新しい OpenGL アプリケーションに取り組んでおり、ディスプレイ リストが OpenGL 3.1 で非推奨になり ((私には) ばかげているように思える他の多くの便利な機能と共に)、Vertex Buffer Objects に置き換えられることを認識しています。NVidia カードで VBO を使用して正常に三角形を描画しましたが、ネットブックの Intel チップでは glGenBuffers をサポートしていないため、この例を実行できませんでした。ここで OpenGL に重大な欠陥があるようです (新しい GPU/GMA と古い GPU の間の互換性の破損)。中小企業として、私のゲームにはできるだけ多くのシステムとの互換性が必要ですが、私のプログラムが新しいグラフィックス カードで動作しないようにしたくありません (OpenGL 4.1 から削除されたディスプレイ リストに依存するため)。仕様)。これにより、グラフィックカード(古いものと新しいもの)で最も幅広いサポートが得られます。表示リスト、

4

3 に答える 3

4

アプリケーションが GMA で実行される場合、必然的にポリゴン数が少なくなります。したがって、新しいビデオ カードのドライバでディスプレイ リストをエミュレートする非効率性は問題にはなりません。帯域幅に余裕があるからです。

それでも効率が気になる場合は、glVertexPointer/を使用glDrawArrayしてバッチサイズを最大化してください。これは表示リストと組み合わせることができますが、リスト内の個別の操作の数が減るため、エミュレーションの問題が少なくなります。

最悪の場合、一部のプラットフォームが実際に表示リストをサポートしていない場合はglCallList、関数呼び出しに置き換えることができます。

于 2011-05-03T23:49:28.307 に答える
3

Intel カードVBO をサポートしていますが、ARB インターフェースを介してのみサポートしています。glGenBuffersARB(他のすべての VBO コードを ARB バージョンを使用するように変換すると共に)試してください。nVidia と Intel GMA で動作します。

于 2011-05-03T23:57:59.203 に答える