着色器语言(OpenGL Shading Language) ,GLSL是着色器语言的通称,是一门编程语言,用于创建做编程的着色器,OpenGL 着色器语言允许应用程序显示的指定在处理顶点和片段时所指定的操作.
学习目标
理解使用OpenGL 2.0 着色器语言编写的可编程着色器的结构和内容
OpenGL 图像管线和可编程着色器
OpenGL 操作分为两个部分,第一部分对顶点进行处理,第二部分对片段进行处理。这些操作可以通过代码进行控制,但是程序内部的执行顺序不能进行控制,这种操作模式被称为"固定功能的管线".
OpenGL 固定功能管线
顶点数据
先上一张图了解一下顶点处理过程
顶点处理管线
顶点管线可能不会对上面所有的值进行更新,这些值都是应用程序根据glVertex()* 和 其他顶点数据调用所输入的数据进行计算的.
顶点着色器不是代替了所有的顶点管线中的操作,在顶点着色器执行完之后,下面的操作仍然可以出现:
1.透视除法
2.窗口映射
3.图元装配
4.平截头(视景体)和用户裁剪
5.背面剔除
6.双面光照选择
7.多变形模式处理
8.多变形偏移
9.深度范围截取
片段处理
同样先上一张图,方便大家理解
片段处理管线
片段着色器可以处理的操作有:
1.提取纹理单元,用于纹理贴图
2.纹理应用
3.雾
4.主色和辅助色颜色混合
提示:无论是否使用片段着色器,OpenGL 总是会执行下面的操作:
5.单调或平滑着色
6.像素覆盖计算
7.像素所有权测试
8.裁剪操作
9.点画模式应用(OpenGL 3.1 已经删除掉了)
10.alpha 测试(OPenGL 3.2 已经删除了)
11.深度计算
12.模板测试
13.alpha 测试
14.对像素进行逻辑操作
15.颜色值得抖动
16.颜色掩码操作
总结
主要介绍了着色器语言是干神马的,以及顶点着色器和片段着色器的作用,下一节,我们将进行语法学习!
作者:酷走天涯
链接:https://www.jianshu.com/p/309d489bc344
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。