欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小羊的OpenGL学习笔记(一)

程序员文章站 2022-07-04 15:01:47
...

1、glsl代码放在const GLchar* 字符串中,使用

	glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
	glCompileShader(vertexShader);

在运行程序时进行动态编译。

2、关于glGenBuffers()和glBindBuffer()的理解,这篇博客说的非常好

https://blog.csdn.net/qq_36383623/article/details/85123077

3、关于定点着色器和片段着色器

顶点着色器常常用来对场景中几何图形坐标进行矩阵变换。顶点的坐标作为一个矩阵输入到顶点着色器中,它会将VertexBuffer中的所有顶点进行矩阵变换。由于使用了硬件加速,这个过程非常高效,大大快于自己用ActionScript编写的代码。

片段着色器是可编程管道中的最最核心的部分。其普遍的作用就是计算各种各样的三角形像素颜色,从为着色顶点图形(vertex-colored geometries)计算的顶点属性颜色,和为纹理图形为计算的纹理及相关的UV纹理坐标。

简单来说,顶点着色器,虽然叫着色器,但是一般是用于矩阵变换的,把输入的数据归一化到视域内。而片段着色器,才是真正的“着色器”,确实是用来上色的。(当然,顶点着色器也可以上色)

4、写OpenGL程序的一般流程

//开始

① 包含各种头文件

② 函数原型声明

③ GLSL代码定义

④ 各种常量

//main函数

int main()

{

1 标准开局+GLEW_TRUE

 

2.窗口相关

2.1构建窗口,绑定回调

2.2 生成窗口,调节窗口属性、视点属性

 

3.着色器相关

3.1 生成、编译着色器

3.2 链接着色器,记得把分着色器删掉

 

4.图元相关

4.1 顶点数据输入

4.2 VAO,VBO,EBO定义,将顶点传到内存里去

4.3 链接顶点属性,解绑内存

 

5.循环,绘图

5.1 查回调,赋底色

5.2 VAO进去,应用着色器,画图

5.3 解绑,替换内存分区

 

6.收尾:释放内存,关闭进程

}

 

新手上路,难免理解不到位。若有纰漏,请各位前辈不吝拍砖,非常感谢!