OpenGL®VBOとは何ですか?
コンピュータープログラミングにOpen GraphicsLibrary®(OpenGL®)コンピューターグラフィックスライブラリを使用する場合、頂点バッファーオブジェクト(VBO)は、3次元(3D)オブジェクトを構築してグラフィックスのメモリに保存できるデータ構造です。カードまたはグラフィックスハードウェア。 これにより、OpenGL®VBOを非常に迅速にレンダリングでき、即時モード描画を使用する他の手法よりもはるかに少ないシステムリソースを使用できます。 速度の向上とグラフィックオーバーヘッドの削減に加えて、OpenGL®VBOは、OpenGL®表示リストとは異なり、メモリ内にあるときに変更できる動的なデータ構造です。 OpenGL®VBOの概念は、実際にはOpenGL®Architecture Review Board(ARB)によって後で標準化されたOpenGL®ライブラリの拡張機能として、同じ名前の異なる機能を元々含めていたハードウェアメーカーから始まりました。
OpenGL®VBOは、基本的に他の2つのタイプのOpenGL®データ構造の組み合わせです。 頂点座標、法線、色などのジオメトリの情報はすべて、処理のためにOpenGL®に渡すことができる構造化配列に保存できるため、頂点配列の基本機能が含まれます。 ただし、頂点配列とは異なり、OpenGL®VBOはレンダラーのサーバー側に格納され、頂点情報のためにクライアント側に絶えずアクセスする必要はありません。
VBOをグラフィックメモリに保存できるようにすることで、ディスプレイリストの一部のプロパティも使用します。 主な違いは、OpenGL®VBOは変更可能であり、表示リストは変更できないことです。 また、VBOは表示リストのようにグラフィックメモリにコピーされるとは限らないため、メモリに存在する必要があるデータ構造は1つだけです。
OpenGL®VBOが最終的にレンダリングされるとき、それが保存されているグラフィックメモリとグラフィック処理ユニット(GPU)からの距離は非常に小さいため、低速のシステムハードウェアを最初に移動する必要なく、非常に高速なラスタライズが可能です。 ただし、場合によっては、VBOの使用がグラフィックカードハードウェアでサポートされません。 これは、VBOを使用することによる追加の利点を削除するプログラミング問題、または一部のグラフィックカードと互換性のないプログラムにつながる可能性があります。
OpenGL®VBOの使用時の処理方法を最適化するのに役立つ方法がいくつかあります。 これらの1つは、グラフィックスカードまたはOpenGL®にヒントを提供して、VBOがメモリ内のどこに配置されるべきかを判断するのに役立ちます。 提供されるヒントに応じて、VBOはグラフィックカードのグラフィックメモリに直接保存するか、必要に応じてシステムのメインランダムアクセスメモリ(RAM)に保存することができます。