Hi, Everyone,
Thanks for all replies!
mhagain, according to the specification in WebGL 1.0, the size of default depth buffer is 16 bit integer.
I have struggled this problem throught this weekend.due to the limitations in WebGL,Nether Lineard Depth Buffer nor Logarithmic Depth Buffer is appropraite to be applied in my situation.
maybe ,the only way is to adjust the projection plane dynamicly.

I developed some stuff for WebGL a little while back and now that you mention it the depth dept. did seem really cramped, but I figured I just did not know what I was doing. Anyway I calculated the near/far planes because I needed accuracy for doing things like filling in back faces and shadows.

I never explicitly set the depth buffer anywhere as I recall (since you don't seem to have to specify that with OpenGL??) so it may well be 16bit if so.

You might look into passing creation parameters. It may different for every browser. But there are some things you can control that way. Let us know how it goes please.

I think what he means is that tweak the projection matrix so the rows that produce x and y and w are as usual, but tweak the row that makes the z-coordinate to act orthogonal and tweak your shader to do the right thing too: