【问题标题】:No output from glDrawElements with IVA带有 IVA 的 glDrawElements 没有输出
【发布时间】:2012-02-17 10:23:39
【问题描述】:

我正在用 cocoa 编写一个 opengl 程序,但在使用交错顶点数组进行渲染时遇到了问题。 Opengl 是使用 NSOpenglview 设置的,特定的渲染由单个对象完成。渲染使用静态“立方体”对象,该对象的设置类似于以下代码,但不使用索引绘图或 iva。

我的初始化代码

    node = [[Octnode alloc]initWithTreeHeight:0 nodeSize:1.0 orign:&origin memoryPointer:vertexData];

    indexArray[0] = 0;
    indexArray[1] = 1;
    indexArray[2] = 2;


    glGenBuffers(1, &vertexBufferObject);
    glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);
    glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_DYNAMIC_DRAW);
    glBindBuffer(GL_ARRAY_BUFFER, 0);

    glGenBuffers(1, &indexBufferObject);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferObject);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, 36 * sizeof(unsigned int), indexArray, GL_DYNAMIC_DRAW);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);

    glGenVertexArraysAPPLE(1, &vertexArrayObject);
    glBindVertexArrayAPPLE(vertexArrayObject);

    glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);

    glEnableVertexAttribArray(0);
    glEnableVertexAttribArray(1);
    glEnableVertexAttribArray(2);

    glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), 0);
    glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), (void*)sizeof(vertex));
    glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(colouredNormalVertex), (void *) ( sizeof(vertex) + sizeof(colour)));

    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBufferObject);

    glBindVertexArrayAPPLE(0);

渲染代码 glBindVertexArrayAPPLE(vertexArrayObject); glDrawElements(GL_LINES, 3, GL_UNSIGNED_INT, 0); glBindVertexArrayAPPLE(0);

添加数组的数据是在 octnode init 中配置的,使用 bebugger 进行检查显示了我的预期。

【问题讨论】:

    标签: cocoa opengl


    【解决方案1】:

    在为缓冲区提供数据时,我没有传递数据的大小,而是传递了指针的大小

    glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_DYNAMIC_DRAW);
    

    至少应该是

    glBufferData(GL_ARRAY_BUFFER, sizeof(voxelData), vertexData, GL_DYNAMIC_DRAW);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多