anchor.diff:  
       _uPMatrix = _gl.getUniformLocation(_shaderProgram, "uPMatrix");
       _uMVMatrix = _gl.getUniformLocation(_shaderProgram, "uMVMatrix");
  -    _uNMatrix = _gl.getUniformLocation(_shaderProgram, "uNMatrix");
  +    _uIdentMatrix = _gl.getUniformLocation(_shaderProgram, "uIdentMatrix");
       _uSampler = _gl.getUniformLocation(_shaderProgram, "uSampler");
       _uUseLighting = _gl.getUniformLocation(_shaderProgram, "uUseLighting");
       _uAmbientColor = _gl.getUniformLocation(_shaderProgram, "uAmbientColor");
  
positive.code:     varying vec4 vPosition;
      varying vec3 vNormal;
      varying vec3 vVertexNormal;
      uniform sampler2D uSampler;
      
      void main(void) { 
        float lightVal = max(0.2, dot(normalize(vVertexNormal), normalize(vec3(0.3, 1.2, 0.8))));
        vec4 fragmentColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
        gl_FragColor = vec4(fragmentColor.r*lightVal, fragmentColor.g*lightVal, fragmentColor.b*lightVal, 1.0);
      }
      """;
  
  
negative.code:       vPosition = uMVMatrix * vec4(aVertexPosition, 1.0);
        gl_Position = uPMatrix * vPosition;
        vTextureCoord = aTextureCoord;
        vNormal = uIdentMatrix * aVertexNormal;
      }
      """;
  
  