着色器代码的开发中会用到很多的变量,其中大部分可能是由开发人员根据需求自定义的,但是,着色器语言也提供了一些用来满足特定需求的内建变量.内建变量不需要声明就可以直接使用,一般用来实现渲染管线固定功能部分和自定义顶点或片元着色器之间的信息交互.
内建变量根据信息传递方向可以分为两类:
1.输入变量:负责将渲染管线中固定功能部分产生的信息传递进着色器.
2.输出变量:负责将着色器产生的信息传递给渲染管线中固定功能.
第一:顶点着色器中的内建变量.
顶点着色器中的内建变量主要是输出变量,包括gl_Position , gl_PointSize等.在顶点着色器中应该根据需要对这些内建变量赋值,以便由渲染管线中的片元与光栅化等后续固定功能阶段进行进一步处理.
gl_Position : 顶点着色器从应用程序中获得原始的顶点位置数据,这些原始的顶点数据在顶点着色器中的经过平移,旋转,缩放等数学变换后,生成新的顶点位置.新的顶点位置通过在顶点着色器中写入gl_Position 传递到渲染管线的后继阶段继续处理.gl_Position 的类型是vec4,输入的请保持类型一致.
gl_PointSize : 顶点着色器中可以计算一个点的大小,单位是像素,并将其赋值给gl_PointSize , 标量是float类型,传递给渲染管线.默认值1. gl_PointSiz