OpenGL3.3初篇

opengl早期使用的是 立即渲染模式(固定渲染管线) 优点是绘制图像方便,但是自由度和效率不高(也就是3.3版本以前)
目前所有的更高版本都是建立在3.3版本之上,所以3.3比较重要
OpenGL本身就是一个巨大的状态机:一系列的变量描述OpenGL此刻应当如何运行。
OpenGL的状态:通常被称为OpenGL上下文

状态设置函数:这类函数将会改变上下文

状态使用函数:这类函数将会根据OpenGL的状态执行一些操作

2d坐标:精确的表示一个点在2d空间的位置

2d像素:是这个点的近似值,受到屏幕/窗口分辨率的限制(目前还不理解)

图元:OpenGL需要知道我们给的数据所要表示的是什么渲染类型(比如说我们要把这三个坐标渲染成一个点 还是一个三角形, 就是GL_POINT,GL_LINES这种)我们给出的这些提示就叫图元

图像渲染管线:
第一部分是顶点着色器(作用是将3d坐标转换为电脑所需要的3d坐标,并且也允许对顶点属性做一些基本处理)
第二部分(图元装配)将顶点着色器的所有顶点装配成指定图元的样子
第三部分(几何着色器)目前的感觉就是对从顶点着色器传递进来的顶点进行更多的变化
第四部分(光栅化阶段)他会把图元映射为最终屏幕上相应的像素,生成供片段着色器着色的片段(OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据)
第五部分(片段着色器)主要是用来计算一个像素的最终颜色,片段着色器通常包含3d场景的数据(比如光照,阴影,光的颜色等等)这些数据被用来计算最终的像素颜色
最后阶段(Alpha测试和混合)在所有对应颜色确定以后,这个阶段会检测片段的对应深度(和模板(stencil))值和alpha值(定义了一个物体的透明度)并且对物体进行混合

gladLoadGLLoader函数 (初始化glad)
gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);gladLoadGLLoader函数作用 任何的OpenGL接口调用都必须在初始化GLAD库后才可以正常访问。如果成功的话,该接口将返回GL_TRUE,否则就会返回GL_FALSE。反正是用来初始化glad的 怎么用还不知道

你可能感兴趣的:(opengl)