近日在OpenGL红宝书上看到这样的讲解。
其核心意思是,在创建VBO时用
glBufferData(GL_ARRAY_BUFFER, length, NULL, GL_STATIC_DRAW);
来初始化buffer占用的内存(此内存在GPU端),其中的 NULL 表示并未初始化数据(即此buffer中的数据是随机值,类似在C语言中刚刚创建一个数组 int x[10]; 的情况)。
这样,就不必在CPU端申请大量内存了。接下来需要初始化buffer数据时,用
1 IntPtr pointer = buffer.MapBuffer(MapBufferAccess.WriteOnly); 2 var array = (vec3*)pointer.ToPointer(); 3 for (int i = 0; i < length; i++)网友评论


