41 lines
1.0 KiB
Bash
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);
|
|
} |