opengl知识点

  • opengGL: 是一套图形绘制的API的接口标准、规范,由各个显卡厂商提供实现库。
    OpenGL自身是一个巨大的状态机(State Machine),我们通常使用如下途径去更改OpenGL状态:设置选项,操作缓冲。
    状态设置函数(State-changing Function),这类函数将会改变上下文。
    状态使用函数(State-using Function),这类函数会根据当前OpenGL的状态执行一些操作,使用当前OpenGL上下文来渲染。
    eg:
// 创建对象
unsigned int objectId = 0;
glGenObject(1, &objectId);
// 绑定对象至上下文
glBindObject(GL_WINDOW_TARGET, objectId);
// 设置当前绑定到 GL_WINDOW_TARGET 的对象的一些选项
glSetObjectOption(GL_WINDOW_TARGET, GL_OPTION_WINDOW_WIDTH, 800);
glSetObjectOption(GL_WINDOW_TARGET, GL_OPTION_WINDOW_HEIGHT, 600);
// 将上下文对象设回默认, 解绑对象
glBindObject(GL_WINDOW_TARGET, 0);
  • GLFW: 是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。

  • GLAD: 是用来管理OpenGL的函数指针的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。GLAD可以帮助开发者忽略底层实现,专注于接口开发。

  • 顶点数组对象:Vertex Array Object,VAO

  • 顶点缓冲对象:Vertex Buffer Object,VBO

  • 索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO

当今大多数显卡都有成千上万的小处理核心,它们在GPU上为每一个(渲染管线)阶段运行各自的小程序,从而在图形渲染管线中快速处理你的数据。这些小程序叫做着色器(Shader),openGL着色器是用OpenGL着色器语言(OpenGL Shading Language, GLSL)写成的。
一个图形渲染管线的每个阶段的抽象展示:
在这里插入图片描述
注:蓝色部分代表的是我们可以注入自定义的着色器的部分。
学习网站:
learnopengl-cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值