我通过DMA尝试VBO。 但它不起作用。
Svertex = new GLdouble**[nSlice+1];
Snormal = new GLdouble**[nSlice+1];
Scolor = new GLdouble**[nSlice+1];
Sindicesup = new GLbyte[3];
for(int i=0; i < nSlice+1; i++){
Svertex[i] = new GLdouble*[nStack+1];
Snormal[i] = new GLdouble*[nStack+1];
Scolor[i] = new GLdouble*[nStack+1];
for(int j=0; j < nStack+1; j++)
{
Svertex[i][j] = new GLdouble[3];
Snormal[i][j] = new GLdouble[3];
Scolor[i][j] = new GLdouble[3];
}
}
----------------------------------------------------------
glBufferData(GL_ARRAY_BUFFER,8*11*11*3,
Svertex,GL_DYNAMIC_DRAW);
我怀疑glBufferData。(我可能错了ArrayPointer)。 请帮助我。
抱歉,我的英语很差..
答案 0 :(得分:1)
阵列需要保持平坦。您希望一个new GLdouble[3*(nStack+1)*(nSlice+1)]
传递给OpenGL。您可以创建指针数组以帮助您根据需要对其进行索引,但是平面数组将是您传递给OpenGL的内容。