Built-in Variable
内建变量
https://www.khronos.org/opengl/wiki/Built-in_Variable_(GLSL)
顶点着色器变量
gl_Position
【输出】定点着色器输出的位置向量。
gl_PointSize
【输出】以像素的方式设置点的高度和宽度。它在着色器中描述每个顶点做为点被绘制出来的大小。
gl_VertexID
【读取】储存着我们绘制的当前顶点的ID。
片段着色器
gl_FragCoord
【输入】【只读】当前frag的窗口坐标信息(x, y, z, 1/w),xy起始处是当前窗口左下角。
gl_FrontFacing
【输入】当前frag是否为正面
gl_FragDepth
【输入】【可写】设置当前frag的深度。
如果着色器中没有像gl_FragDepth变量写入,它就会自动采用gl_FragCoord.z的值。
只要我们在片段着色器中对gl_FragDepth写入什么,OpenGL就会关闭所有的前置深度测试。
可以使用depth condition重新声明,避免深度测试被关闭而影响性能。
Interface Blocks
out VS_OUT
in VS_OUT
Uniform buffer objects
std140
共享布局 shared layout#