Qt中的OpenGL基础

参考链接:

https://www.bilibili.com/video/BV1UL411W71w/?spm_id_from=333.999.0.0

重点:状态机->设置状态+应用状态
之前与之后的状态被称为上下文
3.2以后,使用核心渲染模式,难以理解,但自定义效果更好,效率更高
opengl跨平台,采用其自带的数据类型更不容易报错
GPU渲染基本过程:顶点数据(obj数据)->顶点着色器(导入obj,获取顶点坐标,核心模式可自定义操控)->形状(图元)装配(坐标连线)->几何着色器(插值补充,核心模式可自定义操控)->光栅化(分割成像素)->片段着色器(像素赋值,核心模式可自定义操控)->测试与混合(多个像素片段融合)

一般流程:

  1. 创建id
  2. 根据id生成对象(记录员),用于记录状态
  3. 将创建的对象与需要记录状态的目标绑定
  4. 设置状态(此时记录员默默记录状态,不需要人为提醒)
  5. 让记录员休息,状态设置为0
    每记录一个状态,都需要一个记录员
    要在paintGL以外位置触发重新绘制(更新状态),需要update()(属于widget,可以直接使用)
    要从paintGL,resizeGL,initializeGL以外的位置调用标准OpenGL API函数,需要首先调用makeCurrent()
posted @ 2024-01-31 16:51  小阮向阳  阅读(132)  评论(0编辑  收藏  举报