着色器材质的内置变量

119 阅读1分钟

着色器材质内置变量

gl_PointSize

类型 【float】

gl_PointSize 在渲染模式中,顶点是一个点,我们其实是看不到的,所以他的表现方式位正方形面的表现。

gl_PointSize:用来设置顶点渲染出来的正方形面的像素大小(默认是0,理论上可以无限大

void main(){
    gl_PointSize = 20.0;
}

gl_Position

类型 【vec4】

gl_Position 表示最终传入片元着色器片元化要使用的顶点位置坐标。

void main(){
    // 前三个值分表代表 x,y,z的坐标位置
    gl_Position = vec4(1.0, 1.0, 1.0 ,1.0);
}

gl_FragColor

类型 【vec4】

gl_FragColor 用来设置片元像素的颜色

void main(){
    // 他的四个值按顺序对应rgba色中的,r:红,g:绿,b:蓝 ,a:透明度 ,值得范围均为0~1;
    gl_FragColor = vec4(1.0, 1.0, 1.0 ,1.0);
}

gl_FragCoord

类型 【vec2】 坐标单位-像素

gl_FragCoord 表示webGl在canvas上渲染的片元或者像素的坐标,坐标原点是画布的左上角,x轴为水平向右方向,y轴竖直向下,

void main(){
    // 可以根据像素坐标设置画布区域颜色
   if(gl_FragCoord.x < 600.0){
       gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
   }else{
       gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
   }
}

gl_PointCoord

类型 【vec2】 坐标单位-像素

gl_PointCoord 表示webGl在canvas上渲染的片元或者像素的坐标,坐标原点是画布的左上角,他整个画布范围是0-1,即左上角为 [0,0],右下角为 [1,1];

void main(){
   if(gl_PointCoord.x < 0.5){
       gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
   }else{
       gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);
   }
}