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