Android OpenGL ES 1.1闪烁

时间:2013-10-21 08:08:34

标签: android opengl-es

在推广我的Android项目时,我发现了一个奇怪的事情。

我可以在海洋Android OpenGL ES 2D图形中显示地图。

因此,仅用于确定对象的相序,该值减少到约0.0001 Z轴。

在此期间,我尝试了超过1000倍的物体大小。

然后,这种现象取决于放大/缩小,发生了一些闪烁的物体。

为什么会出现这样的问题?

目标终端特有的问题如果不能解决?

或者这是Android OpenGL ES本身的问题吗?

***更多.... 下面的照片是您每次实际设备屏幕时的屏幕截图。

enter image description here

***每次放大/缩小这种现象时都会发生。

1 个答案:

答案 0 :(得分:2)

我认为您遇到的是 z-fighting http://en.wikipedia.org/wiki/Z-fighting

这是因为您的对象太靠近,因此某些像素的z缓冲区无法区分哪个像素低于或高于另一个像素。 你现在有三个选择:

1)调整投影,专门调整 znear zfar 值。在此处阅读更多内容:http://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm

2)增加两个物体之间的距离

3)由于您正在绘制2D场景,因此可以使用正交投影。在这种情况下,可能根本不值得使用深度缓冲,只需从后向前绘制对象(Painters Algorithm,http://en.wikipedia.org/wiki/Painters_algorithm)。