Hi, sorry for my English.
I write code based on WebGL Lesson 4, learning Webgl site.

Here my site http://kids.leehoan.com/readPixels/good1.html when you move mouse on cube, cube color became a white.

this code make it:
var readout = new Uint8Array(1 * 1 * 4);
gl.readPixels(mouseX-canvas.offsetLeft,mouseY-canvas.offsetTop,1,1,gl.RGBA,gl.UNSIGNED_BYTE,read out);
if (readout[0] == 0 && readout[1] == 0 && readout[2] == 0) {
gl.uniform1i(shaderProgram.isBackgroung, true);
}
else {
gl.uniform1i(shaderProgram.isBackgroung, false);
}

And a color shader:
if(!isBackgroung){
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
return;
}
gl_FragColor = vColor;

When i rotate cube on X axis, all work fine.
mat4.rotate(mvMatrix, 1, [0, 1, 0]);
http://kids.leehoan.com/readPixels/good2.html

But when i rotate cube on Y or Z axis, readPixels work not very well
mat4.rotate(mvMatrix, 1, [0, 1, 1]);
http://kids.leehoan.com/readPixels/bad2.html
http://kids.leehoan.com/readPixels/photo.jpg

more complex matrix make more bad work of readPixels.

how I can fix this problem?