【发布时间】:2015-10-09 22:30:57
【问题描述】:
我正在尝试使用 QOpenGLWidget 在 Qt 中使用 OpenGL,但我很难找到任何相关示例。我是 OpenGL 的新手,所以我正在尝试学习如何使用它,但是我发现的教程似乎不适用于 QOpenGLWidget。现在,我要做的就是渲染一个三角形开始。
这是我目前所拥有的。
标题:
namespace Ui {
class Widget;
}
class Widget : public QOpenGLWidget, protected QOpenGLFunctions
{
public:
explicit Widget(QWidget *parent = 0);
~Widget();
protected:
void initializeGL();
void resizeGL(int, int);
void paintGL();
private:
Ui::Widget *ui;
};
类:
Widget::Widget(QWidget *parent) :
QOpenGLWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
void Widget::initializeGL()
{
// Set up the rendering context, load shaders and other resources, etc.:
initializeOpenGLFunctions();
glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
}
void Widget::resizeGL(int w, int h)
{
// Update projection matrix and other size-related settings:
}
void Widget::paintGL()
{
// Draw the scene:
glClear(GL_COLOR_BUFFER_BIT);
}
Widget::~Widget()
{
delete ui;
}
有什么例子可以用来渲染一个基本的三角形吗?我从这里尝试了一个:https://www.khronos.org/assets/uploads/books/openglr_es_20_programming_guide_sample.pdf,但它引发了很多我无法解决的错误。
我也不知道 OpenGL 上下文在 QOpenGLWidget 中是如何工作的。
*编辑:所以事实证明,这些示例是我的发行版(Arch Linux)上的一个单独的包。我能够安装它们,看起来还有很多可以开始的地方。
感谢您的帮助!
【问题讨论】:
-
您是否尝试过研究 Qt 附带的 GL (ES) 示例? QOpenGLWidget 没有什么特别之处。
-
在哪里可以找到这些示例?
-
它们随 Qt 一起提供。 OpenGL 部分。 doc.qt.io/qt-5/examples-widgets-opengl.html
标签: c++ qt opengl opengl-es opengl-es-2.0