2022-09-19 18:05:01 +08:00

41 lines
1.0 KiB
Bash

precision mediump float;
varying vec2 mcLongLat;//接收从顶点着色器过来的参数
void main()
{
vec3 bColor=vec3(0.678,0.231,0.129);//砖块的颜色
vec3 mColor=vec3(0.763,0.657,0.614);//间隔的颜色
vec3 color;
//计算当前位于奇数还是偶数行
int row=int(mod((mcLongLat.y+90.0)/12.0,2.0));
//计算当前是否在此行的砖块垂直区间中的辅助变量
float ny=mod(mcLongLat.y+90.0,12.0);
//奇偶数行x偏移
float oeoffset=0.0;
//计算当前是否在此列的砖块水平区间中的辅助变量
float nx;
if(ny>10.0)
{//不在此行的砖块垂直区间中
color=mColor;
}
else
{//在此行的砖块垂直区间中
if(row==1)
{//若为奇数行则加上列偏移
oeoffset=11.0;
}
//计算当前是否在此列的砖块水平区间中的辅助变量
nx=mod(mcLongLat.x+oeoffset,22.0);
if(nx>20.0)
{//不在此列的砖块水平区间中
color=mColor;
}
else
{//在此列的砖块水平区间中
color=bColor;
}
}
//将计算出的颜色给此片元
gl_FragColor=vec4(color,0);
}