Opengl es Webgl:最远平面可见性

Opengl es Webgl:最远平面可见性,opengl-es,3d,webgl,Opengl Es,3d,Webgl,我有一个非常简单的例子:一个z坐标等于1的三角形(没有视图或投影矩阵)。坐标为: 0.0, 0.6, 1.0 -0.5, -0.4, 1.0 0.5, -0.4, 1.0 所以那个三角形位于最远的平面上。深度测试已禁用。 三角形是可见的,因为-1的初始值是GL_LESS,所以即使设置为1.0,比较1.0

我有一个非常简单的例子:一个z坐标等于1的三角形(没有视图或投影矩阵)。坐标为:

0.0,  0.6,  1.0
-0.5, -0.4,  1.0
0.5, -0.4,  1.0
所以那个三角形位于最远的平面上。深度测试已禁用。 三角形是可见的,因为-1的初始值是
GL_LESS
,所以即使设置为1.0,比较1.0<1.0也会产生false,因此片段将被丢弃

您可以尝试设置
glDepthFunc(GL\u LEQUAL)

请注意,您还应该注意浮点问题。比较精确的相等总是有问题的。即使不变换对象空间坐标并在顶点着色器中传递它们,z值也将从NDC范围[-1,1]变换到窗口空间范围[0,1](或使用任何设置)。但是,对于-1和1输入情况,这不应该是一个问题,因为中间结果应该能够准确地表示,而不会损失精度

gl.enable(gl.DEPTH_TEST);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);