0

我是 Qt 的新手,我正在制作一个生成 3D 对象的应用程序,其中包含用户在 GUI 中提供的一些点。用户定义点,然后在同一个窗口中,QOpenGLWidget 绘制最终对象。但是,QOpenGLWindow 不绘制模型(只有 GlCLearColor)。我尝试了相同的功能,但在 main 中的 app.exec() 之前调用了它,它工作正常。

我不知道发生了什么。在使用 vao 和 vbo 之前,我曾尝试调用 makeCurrent() ,但它不起作用。

我还没有创建任何线程,也没有 fbo。

当我在使用 vao 和 vbo 之前尝试 makeCurrent 时,我得到:“QOpenGLBuffer::bind:缓冲区在当前上下文中无效”“QOpenGLShaderProgram::bind:程序在当前上下文中无效。”

编辑我在 vao、vbo 和着色器绑定之前重试了当前状态,并且消息消失了,但小部件没有绘制对象。

绘制后我也尝试过 QOPenGLWidget::update() 。它不会通过调整大小来绘制。我正在使用 OpenGL 4.1 核心配置文件和 Qt 5.12.3

4

1 回答 1

0

我已经解决了!我只是忘记在着色器中设置统一值之前设置当前值。

于 2019-07-20T17:15:51.150 回答