OpenGL顶点着色器在Qt Creator中显示为空错误

问题描述 投票:0回答:1

我在Windows的Qt Creator的Qt5应用程序中使用以下顶点着色器:

attribute highp vec3 rv_Position;
uniform   highp mat4 u_ModelViewProjectionMatrix;
uniform   highp float u_Opacity;
uniform   highp vec3 u_color;
varying   highp vec4 outColor;

void main(void)
{
    gl_Position = u_ModelViewProjectionMatrix * vec4(rv_Position,1);
    outColor = vec4(u_color, u_Opacity);
}

由以下draw函数调用:

void Plane::draw()
{
    glCullFace(GL_BACK);
    glFrontFace(GL_CCW);
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    m_program.bind();
    m_vao.bind();

    QMatrix4x4 matrix;
    matrix = m_camera->projectionMatrix() * m_camera->viewMatrix() * this->modelMatrix();
    m_program.setUniformValue("u_ModelViewProjectionMatrix", matrix);
    m_program.setUniformValue("u_Opacity", m_opacity);
    m_program.setUniformValue("u_color", m_globalColor);

    glDrawElements(GL_TRIANGLES, 4, GL_UNSIGNED_INT, nullptr);

    m_vao.release();
    m_program.release();
}

所有成员m_something均已初始化好。

运行程序时,出现此错误消息:

screenshot

这不提供信息。可能是什么原因?

c++ qt opengl qt5 vertex-shader
1个回答
0
投票

我忘记将顶点着色器文件添加到Qt Creator项目的资源文件(.qrc)中。添加它可以修复错误。

© www.soinside.com 2019 - 2024. All rights reserved.