gl_FragColor
优质
小牛编辑
131浏览
2023-12-01
gl_FragColor
内置变量主要用来设置片元像素的颜色,出现的位置是片元着色器语言的main
函数中。
内置变量gl_Position
的值是四维向量vec4(r,g,b,a)
,前三个参数表示片元像素颜色值RGB,第四个参数是片元像素透明度A,1.0
表示不透明,0.0
表示完全透明。
// 片元颜色设置为红色
gl_FragColor = vec4(1.0,0.0,0.0,1.0);
理解内置变量gl_Position
需要建立逐顶点
的概念,对于内置变量gl_FragColor
而言,需要建立逐片元
的概念。顶点经过片元着色器片元化以后,得到一个个片元,或者说像素点,然后通过内置变量gl_FragColor
给每一个片元设置颜色值,所有片元可以使用同一个颜色值,也可能不是同一个颜色值,可以通过特定算法计算或者纹理像素采样。
根据片元位置设置渐变色
void main() {
// 片元沿着x方向渐变
gl_FragColor = vec4(gl_FragCoord.x/500.0*1.0,1.0,0.0,1.0);
}
纹理采样
// 接收插值后的纹理坐标
varying vec2 v_TexCoord;
// 纹理图片像素数据
uniform sampler2D u_Sampler;
void main() {
// 采集纹素,逐片元赋值像素值
gl_FragColor = texture2D(u_Sampler,v_TexCoord);
}