Tôi đang cố gắng sử dụng OpenGL bên trong Qt sử dụng QOpenGLWidget, nhưng tôi đang gặp khó khăn trong việc tìm kiếm bất kỳ ví dụ có liên quan nào. Tôi mới sử dụng OpenGL, vì vậy tôi đang cố gắng tìm hiểu cách sử dụng nó, nhưng các hướng dẫn mà tôi thấy dường như không áp dụng đặc biệt tốt trong QOpenGLWidget. Ngay bây giờ, tất cả những gì tôi muốn làm là vẽ một hình tam giác để bắt đầu.Làm cách nào để hiển thị hình tam giác trong QOpenGLWidget?
Đây là những gì tôi có cho đến nay.
Tiêu đề:
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;
};
Class:
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ó bất kỳ ví dụ tôi có thể sử dụng để chỉ làm một tam giác cơ bản? Tôi đã thử một từ đây: https://www.khronos.org/assets/uploads/books/openglr_es_20_programming_guide_sample.pdf, nhưng nó đã ném rất nhiều lỗi mà tôi không thể làm việc ra ngoài.
Tôi cũng không biết ngữ cảnh OpenGL hoạt động như thế nào trong QOpenGLWidget.
* CHỈNH SỬA: Vì vậy, hóa ra là các ví dụ là một gói riêng biệt trên bản phân phối của tôi (Arch Linux). Tôi đã có thể cài đặt chúng, và có vẻ như có rất nhiều thứ để bắt đầu.
Cảm ơn sự giúp đỡ của bạn!
Các bạn đã cố gắng nghiên cứu các ví dụ GL (ES) được vận chuyển với Qt? Không có gì đặc biệt về QOpenGLWidget. – peppe
Tôi có thể tìm thấy những ví dụ này ở đâu? – inefarius
Chúng được giao với Qt. Phần OpenGL. http://doc.qt.io/qt-5/examples-widgets-opengl.html – peppe