我尝试在 OpenGL ES 2.0 中使用 glDepthFunc(在带有模拟器的 PC 上),但我不明白这种行为。
在初始化函数中,我只调用定义这些值:
glClearDepthf( 0.5f );
glClearColor ( 1.0f, 0.0f, 0.0f, 0.0f );
在绘图功能中,此代码:
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable( GL_DEPTH_TEST );
glDepthFunc(GL_LEQUAL);
glUniform4fv(unifColor, 1, verColor);
glDrawArrays ( GL_TRIANGLE_FAN, 0, 4 );
eglSwapBuffers
我正在画一个绿色方块(屏幕大小的一半)。当绘制正方形的z值为0.5时。
我希望深度测试将是 TRUE 并且我会看到绘制的绿色方块,但我只看到红色屏幕(用于清晰颜色的颜色)。当我将清晰深度值定义为 1.0 时,我会收到预期的行为:红色屏幕上的 grren 正方形,所以我认为根据需要使用深度(所有初始化的深度定义)。
可能是什么问题?
谢谢你的帮助