近日在OpenGL红宝书上看到这样的讲解。

 

其核心意思是,在创建VBO时用

glBufferData(GL_ARRAY_BUFFER, length, NULL, GL_STATIC_DRAW);

来初始化buffer占用的内存(此内存在GPU端),其中的 NULL 表示并未初始化数据(即此buffer中的数据是随机值,类似在C语言中刚刚创建一个数组 int x[10]; 的情况)。

这样,就不必在CPU端申请大量内存了。接下来需要初始化buffer数据时,用