内建变量
:
着色器代码的开发中会用到很多变量,其中大部分可能是由开发人员根据需求自定义的,但着色器中也提供了一些用来满足特性需求的內建变量。
特点
:
1.內建变量不需要声明就可以使用;
2.一般用来实现
管线渲染固定功能部分
与
自定义顶点
或者
片元着色器
之间的信息交互。
分类
: 內建变量根据信息传递方向分为两类
1. 输入变量: 输入变量负责将渲染管线中固定部分产生的信息传递进着色器。
2. 输出变量: 输出变量负责将着色器产生的信息传递给渲染管线中固定部分。
1】顶点着色器
顶点着色器中的内置变量主要是输出变量。
gl_Position
,
gl_PointSize
等。
我们也会 在顶点着色器中根据需要 给这些内建变量赋值,以便由渲染管线中的图元装配与光栅化等后续固定功能阶段进行进一步的处理。
gl_Position
|
顶点着色器从应用程序中获得原始的顶点位置数据,这些原始的顶点数据在定点着色器中经过平移、旋转、缩放等数学变换后,生成新的定点位置。新的顶点位置通过在顶点作色器中写入
gl_Position
传递到渲染线管的后继阶段继续处理。
gl_Position
的类型是
vec4
,写入的顶点位置数据也必须与其类型一致。几乎在所有的顶点着色器中 都必须对
gl_Position
写入适当的值,否则厚积阶段的处理结果将是不确定的。
|
gl_PointSize
|
顶点着色器中可以计算一个点的大小(单位是像素),并将其赋值给
gl_PointSize
(标量 float) 以传递给渲染管线。如果没有明确赋值的话,就会采用默认值1。
gl_PointSize
的值一般只有在采用电汇至方式后才有意义。
关于绘制方式,我们后面详细介绍。
|
以上为主要使用的内置变量,下方列表显示顶点着色器中的内置变量
名称
|
类型
|
描述
|
gl_Color
|