33 lines
1.2 KiB
Bash
33 lines
1.2 KiB
Bash
precision mediump float;
|
|
varying vec4 vAmbient;//接收从顶点着色器过来的环境光分量
|
|
varying vec4 vDiffuse;//接收从顶点着色器过来的散射光分量
|
|
varying vec4 vSpecular;//接收从顶点着色器过来的镜面反射光分量
|
|
varying vec2 mcLongLat;//接收从顶点着色器过来的参数
|
|
void main() {
|
|
vec3 color;
|
|
if(abs(mcLongLat.y)>75.0){
|
|
color = vec3(1.0,1.0,1.0);//两边是白色
|
|
}else{
|
|
int colorNum = int(mcLongLat.x/45.0);//颜色号
|
|
if(colorNum == 0){
|
|
color = vec3(1.0,0.0,0.0);//0号颜色
|
|
}else if(colorNum == 1){
|
|
color = vec3(0.0,1.0,0.0);//1号颜色
|
|
}else if(colorNum == 2){
|
|
color = vec3(0.0,0.0,1.0);//2号颜色
|
|
}else if(colorNum == 3){
|
|
color = vec3(1.0,1.0,0.0);//3号颜色
|
|
}else if(colorNum == 4){
|
|
color = vec3(1.0,0.0,1.0);//4号颜色
|
|
}else if(colorNum == 5){
|
|
color = vec3(0.0,1.0,1.0);//5号颜色
|
|
}else if(colorNum == 6){
|
|
color = vec3(0.3,0.4,0.7);//6号颜色
|
|
}else if(colorNum == 7){
|
|
color = vec3(0.3,0.7,0.2);//7号颜色
|
|
}
|
|
}
|
|
vec4 finalColor = vec4(color,1.0);//将计算出的颜色给此片元
|
|
//给此片元颜色值
|
|
gl_FragColor=finalColor*vAmbient + finalColor*vDiffuse + finalColor*vSpecular;
|
|
} |