Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: deMax от Декабрь 26, 2014, 11:41



Название: QOpenGLBuffer
Отправлено: deMax от Декабрь 26, 2014, 11:41
Рисую skybox, потом модель:
Код:
    glVertexPointer(3, GL_FLOAT, 0, part->v.begin());
    glTexCoordPointer(2, GL_FLOAT, 0, part->vt.begin());
    glNormalPointer(GL_FLOAT,0, part->vn.begin());
    foreach (Part::FaceGroup faceGroup, part->faceGroup) {
        Surface *surface = faceGroup.surface;
        if(!surface) {qWarning()<<faceGroup.name; break;}
        GLfloat color[4];

        Surface::fillGLfloat(surface->ambient, &color[0]);
        glMaterialfv(GL_FRONT, GL_AMBIENT, &color[0]);
        Surface::fillGLfloat(surface->diffuse, &color[0]);
        glMaterialfv(GL_FRONT, GL_DIFFUSE, &color[0]);

        if(!surface->textureNameAmbient.isEmpty()) {
            glBindTexture(GL_TEXTURE_2D, textureIds[surface->textureNameAmbient]);
            glEnable(GL_TEXTURE_2D);
        } else if(!surface->textureNameDiffuse.isEmpty()) {
            glBindTexture(GL_TEXTURE_2D, textureIds[surface->textureNameDiffuse]);
            glEnable(GL_TEXTURE_2D);
        } else
            glDisable(GL_TEXTURE_2D);

        glDrawElements(GL_TRIANGLES, faceGroup.f.size(), GL_UNSIGNED_INT, (GLint*)&faceGroup.f[0]);
    }

Если в initilizeGL разкоментировать строчку, экран становиться черный
    vbo.create();
  //  vbo.bind();
    vbo.allocate(vertData.constData(), vertData.count() * sizeof(GLfloat));


Название: Re: QOpenGLBuffer
Отправлено: gil9red от Декабрь 26, 2014, 12:14
Хорошо, а в чем проблема? :)


Название: Re: QOpenGLBuffer
Отправлено: deMax от Декабрь 26, 2014, 12:20
Хорошо, а в чем проблема? :)
экран становиться черный, закоментировать - видны все объекты, просто добавил 3 строчки в initilezeGl с массивом из примера. Они даже в рисовании не учавствуют, а экран черный и рисуется только тестовая линия, в самом конце рисования:  glBegin(GL_LINES);