目录

Qt+OpenGL_part1

OpenGL,Qt实现:1入门篇(已更完)_哔哩哔哩_bilibili

OpenGL3.3以上是现代模式(可编程管线):

状态机

状态设置函数(State-changing Function)

状态应用函数 (State-using Function)

OpenGL的状态通常被称为上下文(Context)。

OpenGL3.2以下是传统模式(固定管线):立即渲染模式(Immediate mode)

GLFW:创建支持OpenGL的窗口(定义上下文)(处理用户输入)。

GLAD:使代码可以用于不同的OpenGL驱动。

通常需要通过函数指针调用显卡的函数。

0-2.什么是OpenGL_哔哩哔哩_bilibili

OpenGL核心模式(Core-profile):

可编程模式,更灵活,更高效

灰色不可编程

(以前每个流程都是写死的)

其中:几何着色器是有默认的部分的(用的不多)

顶点着色器和片段着色器(我们必须写代码)

0-3.OpenGL对象_哔哩哔哩_bilibili

1-1Hello Widget_哔哩哔哩_bilibili

glClearColor(0.2f,0.3f,0.3f,1.0f);//set

glClear(GL_COLOR_BUFFER_BIT);//use

最简单的应用:

cpp 复制代码
#ifndef OPENGLWIDGET_H
#define OPENGLWIDGET_H

#include <QOpenGLWidget>
#include <QOpenGLFunctions_3_3_Core>

class OpenGLWidget : public QOpenGLWidget,QOpenGLFunctions_3_3_Core
{
    Q_OBJECT
public:
    explicit OpenGLWidget(QWidget *parent = nullptr);
protected:
    virtual void initializeGL();
    virtual void resizeGL(int w, int h);
    virtual void paintGL();
signals:

public slots:
};

#endif // OPENGLWIDGET_H
cpp 复制代码
#include "openglwidget.h"

OpenGLWidget::OpenGLWidget(QWidget *parent) : QOpenGLWidget(parent)
{

}

void OpenGLWidget::initializeGL()
{
    initializeOpenGLFunctions();
}

void OpenGLWidget::resizeGL(int w, int h)
{

}

void OpenGLWidget::paintGL()
{
    glClearColor(0.2f,0.3f,0.3f,1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
}
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
Better Rose11 分钟前
【2025“华中杯”大学生数学建模挑战赛】C题:就业状态分析与预测 详细解题思路
c语言·开发语言·数学建模
网络安全研发随想17 分钟前
C语言核心结构+难点精讲+工程技巧
c语言·开发语言·算法
superior tigre30 分钟前
C++学习:六个月从基础到就业——面向对象编程:虚函数与抽象类
开发语言·c++·学习
ademen36 分钟前
关于 IntelliJ IDEA 中频繁出现的 Kotlin 及其核心作用
java·开发语言·kotlin
m0_zj1 小时前
41.[前端开发-JavaScript高级]Day06-原型关系图-ES6类的使用-ES6转ES5
开发语言·javascript·es6
海棠蚀omo2 小时前
C++笔记-list
开发语言·c++·笔记
烟雨柳成烟2 小时前
C++学习Day0:c++简介
开发语言·c++·qt·学习
末央&2 小时前
【C++】特化妙技与分文件编写 “雷区”
开发语言·c++·算法
一个天蝎座 白勺 程序猿2 小时前
Python(19)Python并发编程:深入解析多线程与多进程的差异及锁机制实战
开发语言·python
GSDjisidi3 小时前
日本IT|车载C#开发工程师的前途及职业发展
开发语言·c#