`#version 300 es // fragment shaders don't have a default precision so we need // to pick one. highp is a good default. It means "high precision" //Why it is necessary to set precission for the fragment shader? //Vertex shader works without this, but fragment shader //doesn't work without this code row (as I see). // Why the different behaviour exist? //precision mediump float; precision highp float; //WebGL1 varying vec4 vColor; in vec4 vColor; // we need to declare an output for the fragment shader out vec4 outColor; void main() { // Just set the output to a constant reddish-purple // WebGL1 gl_FragColor = vColor; outColor = vColor; //vec4(1.0 , 1.0 , 1.0 , 1.0 ) ; //vec4(1, 0, 0.5, 1); }`