BoyInC0de
望君持之以恒
采纳率100%
2020-05-10 17:34

OpenGL 模型加载 QT4 MSVC2017 Assimp 程序 有偿求帮助

5
已采纳

问题
QT4.11
用的MSVC2017编译器
调用的Assimp, glm, stb_image库,

程序出问题的地方调用的QT核心库:

<QOpenGLFunctions_3_3_Core>

现在想实现多模型的载入. 但是我发现如果我在继承了QOpenGLWidget的GLManager类中

class GLManager : public QOpenGLWidget{
            Model *model;
            QOpenGLFunctions_3_3_Core* core;
}

调用函数:

void GLManager::initializeGL(){
        core = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_3_Core>(); 
        model = new Model(core, "D:/cube.obj");
}
void GLManager::paintGL(){
        ourModel->Draw(ResourceManager::getShader("model"));
}

是可以使用的,
但是当我把这句话new Model(core, "D:/cube.obj");不放在GLManager::initializeGL()中时, 就不能正确的画出.

代码有点长, 就不贴具体实现了, 主要就是参考的learnopengl的代码
网址:https://learnopengl-cn.github.io/03%20Model%20Loading/03%20Model/

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • baidu_39473413 baidu_39473413 10月前

    调用makecurrent()函数, 来获取OpenGL上下文, 就可以了!

    点赞 评论 复制链接分享
  • dabocaiqq dabocaiqq 11月前