Sto provando ad usare OpenGL all'interno di Qt usando QOpenGLWidget, ma sto facendo fatica a trovare qualche esempio pertinente. Sono nuovo di OpenGL, quindi sto cercando di imparare come usarlo, ma le esercitazioni che trovo non sembrano applicarsi particolarmente bene in QOpenGLWidget. In questo momento, tutto ciò che voglio fare è rendere un triangolo con cui iniziare.Come si esegue il rendering di un triangolo in QOpenGLWidget?
Ecco quello che ho finora.
Intestazione:
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;
};
Classe:
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;
}
C'è un esempio che io uso per rendere solo un triangolo di base? Ho provato quello da qui: https://www.khronos.org/assets/uploads/books/openglr_es_20_programming_guide_sample.pdf, ma ha gettato un sacco di errori che non ho potuto risolvere.
Inoltre non so come funzionano i contesti OpenGL in QOpenGLWidget.
* EDIT: Così si scopre che gli esempi erano un pacchetto separato sulla mia distro (Arch Linux). Sono stato in grado di installarli, e sembra che ci sia molto da fare per iniziare.
Grazie per il vostro aiuto!
Hai provato a studiare gli esempi GL (ES) che vengono spediti con Qt? Non c'è nulla di particolare in QOpenGLWidget. – peppe
Dove posso trovare questi esempi? – inefarius
Sono spediti con Qt. Sezione OpenGL. http://doc.qt.io/qt-5/examples-widgets-opengl.html – peppe