opengl4.0使用小结

opengl使用小结

    • glad和glfw的下载配置
    • opengl
    • vao vbo fbo
    • 着色器
    • 感觉

首先需要两个库的支持,窗口库和opengl显卡接口库,可能表达的不太准确,反正就是那个意思。
使用到了glad库,封装了不同的硬件显卡驱动opengl接口,直接调用就可以,glew也可以实现glad的功能。还需要一个窗口库,可以使用glfw,或者freeglut,或者qt也可以。
我用的是glad 和 glfw,以及glad和qt 两种。

glad和glfw的下载配置

网上很多相关资料。不在赘述

opengl

需要连接opengl32.lib这个库。
网上可编程管线的内容项目代码比较少,很多都是固定管线的。因为项目做简单的仿真功能,需要接触opengl,选择了高版本4.0,方便以后扩展。新的总是好的。
固定管线不需要写glsl语言,实现一些简单的三维效果很简单,比如说画一些几何体,线段,点啥的。
可编程管线就强大多了,而且增加了许多新功能新特性。
我觉得画一些简单静态三维模型,固定管线也足够了,资料也多,使用也方便。
主要是看自己的需求。

vao vbo fbo

他们的意思不再接受,记录下使用过程
glBindBuffer();
glBufferData();
申请完vbo后,需要给他分配空间,是显卡的空间。需要先绑定vbo在分配,可以分配并初始化,也可以只分配先给它null。后面再更新数据。
glBufferSubData
用来更新vbo。也可以用来覆盖之前的vbo数据。

创建自己的fbo,至少需要给它分配颜色缓冲,深度缓冲。

使用完,记得delete。

着色器

顶点着色器分为输入和输出两部分,负责的功能是把输入的数据进行矩阵变换位置,计算光照公式生成逐顶点颜⾊,⽣成/变换纹理坐标.并且把位置和纹理坐标这样的参数发送到片段着色器.。

片元着色器的作用是处理由光栅化阶段生成的每个片元,最终计算出每个像素的最终颜色。归根结底,实际上就是数据的集合。这个数据集合包含每一个像素的各个颜色分量和像素透明度的值。

感觉

opengl是个巨大的状态机,用面向过程的眼光看待它。。任何一个接口,放在一个不同的地方,接下来的渲染可能就发生了很大的改变。即使就差那么一两句代码。

你可能感兴趣的:(opengl)