OpenGL顶点着色器在Qt中显示空错误[关闭]

问题描述 投票: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.