OpenGL:一些基本概念和第一个程序

基本概念

1、着色器

GPU由大量的小型可编程处理器(shader core)组成,这些迷你的处理器上运行的迷你程序成为着色器。

2、管线

这是一个形象的说法,把 OpenGL 的模型比作一个生产线。

该模型内的数据流通常是单一路径的,程序发送给 OpenGL 的处理指令形成的数据进管线的开端,然后流经一个个阶段直到管线的末端。

3、基元

OpenGL 中的基本渲染单元。包括点、线、三角形(分别有一、二、三个点)。

我们在屏幕上看到的渲染的所有的东西都是这三种基元的集合。

4、顶点

(三维)坐标空间内的一个点,点、线、三角形分别有一、二、三个顶点。

5、光栅器

用作将三维形式的三角形转成一系列在屏幕渲染的像素的硬件。

6、管线前端的工作

处理顶点和基元,将图形处理后把它们组成的点、线、三角形传递给光栅器。

7、管线后端的工作

光栅器处理之后得到的是像素,管线后端处理这些像素,包括深度参数、模板测试、片段着色、混合、更新输出图像。

第一个 OpenGL 程序

#ifndef OPENGLWIDGET_H
#define OPENGLWIDGET_H

#include <QOpenGLWidget>

class openglWidget : public QOpenGLWidget
{
    Q_OBJECT
public:
    openglWidget(QWidget * parent = nullptr);
protected:
    virtual void paintGL();
};

#endif // OPENGLWIDGET_H


#include "openglwidget.h"
#include <QOpenGLExtraFunctions>

openglWidget::openglWidget(QWidget *parent)
    :QOpenGLWidget(parent)
{
}

void openglWidget::paintGL()
{
    static const GLfloat red[] = {1.0f,0.0f,0.0f,1.0f};//RGBA

    QOpenGLExtraFunctions * funs = QOpenGLContext::currentContext()->extraFunctions();
    funs->glClearBufferfv(GL_COLOR,0,red);
}

OpenGL 的函数命名遵循一些约定。所有函数以 gl 开头,本例中,后缀 fv 表示该函数使用一组向量(v)、浮点(f) 值。

glClearBufferfv():清除当前绑定的绘制帧缓冲区的各个缓冲区。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值