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

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;
}