0

我开始学习 WebGL。然后,我做了一个演示。
但是,“gl.DEPTH_TEST”似乎不起作用。

这是演示。
https://dl.dropboxusercontent.com/u/1236764/temp/stackoverflow_20130713/index.html

如何启用隐藏表面移除?
我想知道是否有人可以给我一些提示。

4

1 回答 1

1
var near = 0;
var far = 100;
mat4.perspective( projectionMatrix, fov, aspect, near, far );

您已指定近平面为 0。由于计算深度缓冲区值的方式,这会导致深度缓冲区完全无用。

您应该设置near大于零。设置近平面越远,深度缓冲区的功能就越好。

因此,最好的设置就在场景中最近的物体前面——在你的情况下,这将是eye向量的长度减去茶壶边界球的半径。但对于简单的程序,只需设置一个合理比例的数字,例如 0.1 或 1,通常就足够了。

于 2013-07-13T01:45:56.247 回答