VBOとは?
状態:-
閲覧数:1,376
投稿日:2018-08-07
更新日:2018-08-16
表記
英語
・Vertex Buffer Object
日本語
・頂点バッファオブジェクト
頂点情報を格納したバッファ
GPU側のメモリにあるバッファ
・GPU上にバッファ領域を確保し、そこにgl.bufferDataであらかじめ頂点データを送り込んで、CPU側ではそれをVBO(オブジェクト)として管理する
・頂点データはGPU上にある(CPU側では、データそのものでなくポインタを持っているようなイメージ)
VBO の情報はバッファにデータを格納した段階で GPU 上に転送される
→ VBO の生成方法(VBO へのデータの格納方法)を工夫することにより、GPU 上でのメモリの配置に影響を与えることができる
以降の処理
・CPU->GPUへの頂点データの転送処理がない
・CPU側からは実質的なデータは送らず(頂点データはすでにGPU上にあるから)、ただ、「あなた(GPU)のバッファ上にある、このVBO(頂点データ)を描画しろ」という指令を出すだけ
VBOの特徴 / 改善の余地が残されている点
VBOの特徴
高速
→ WebGLではVBO使用が前提となっている
改善の余地が残されている点
VBO の生成方法(VBO へのデータの格納方法)を工夫することにより、GPU 上でのメモリの配置に影響を与えることができる
工夫とは?
・メモリ上にデータを配置する際、頂点単位でデータがまとまって格納される ようにする
・GPU本来の性能を引き出すWebGL頂点データ作成法