初次提交
This commit is contained in:
29
第11章 常用3D开发技巧案例/Sample11_10/assets/frag.sh
Normal file
29
第11章 常用3D开发技巧案例/Sample11_10/assets/frag.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
precision mediump float;
|
||||
//接收从顶点着色器过来的参数
|
||||
varying vec4 diffuse;
|
||||
varying vec4 specular;
|
||||
varying float vEdge;
|
||||
void main()
|
||||
{
|
||||
float averageDiffuse = (diffuse.x + diffuse.y + diffuse.z)/3.0;
|
||||
if(averageDiffuse<0.5){
|
||||
averageDiffuse=0.2;
|
||||
} else {
|
||||
averageDiffuse=0.8;
|
||||
}
|
||||
vec4 diffuseFinal = vec4(averageDiffuse, averageDiffuse, averageDiffuse, 1.0);
|
||||
|
||||
float averageSpecular = (specular.x + specular.y + specular.z)/3.0;
|
||||
if(averageSpecular<0.18){
|
||||
averageSpecular=0.0;
|
||||
} else {
|
||||
averageSpecular=1.0;
|
||||
}
|
||||
vec4 specularFinal = vec4(averageSpecular, averageSpecular, averageSpecular, 1.0);
|
||||
|
||||
float edgeFinal = 1.0;
|
||||
if(vEdge<0.2){//如果为边缘像素,用黑色描边
|
||||
edgeFinal = 0.0;
|
||||
}
|
||||
gl_FragColor = edgeFinal*(specularFinal+diffuseFinal);//给此片元颜色值
|
||||
}
|
||||
Reference in New Issue
Block a user