【问题标题】:VBO doesn't work Dynamic (Memory Allocate)VBO 不工作动态(内存分配)
【发布时间】:2023-04-06 16:41:02
【问题描述】:

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

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

【问题讨论】:

    标签: opengl vbo dma


    【解决方案1】:

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

    【讨论】:

    • 谢谢Ben先生。这个dma复制到平面数组时我成功了。我不知道数组需要是平面的。谢谢!
    猜你喜欢
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2013-07-01
    相关资源
    最近更新 更多