1

我通过 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)。请帮我。

对不起,我的英语太差了。。

4

1 回答 1

1

阵列需要平坦。你想要一个new GLdouble[3*(nStack+1)*(nSlice+1)]传递给OpenGL。如果需要,您可以创建指针数组来帮助您对其进行索引,但平面数组将是您传递给 OpenGL 的内容。

于 2012-01-20T05:40:01.630 回答