2013-10-21 129 views
0

当您宣传我的Android项目时,我发现了一个奇怪的现象。Android OpenGL ES 1.1闪烁

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

因此,仅用于确定物体的相位顺序,该值会降低到大约0.0001 Z轴。

我尝试了超过1000倍的对象的大小在此期间。

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

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

这是目标终端的具体问题,如果不能解决这个问题,

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

***更多.... 下面的照片是您每次实际设备的屏幕截图所拍摄的内容。

enter image description here

***我时出现这样的现象放大/每次缩小。

+1

也许你可以附上一些显示问题的截图? – Kromster

+0

附加到主要内容。看看身体。 – JavaHell

回答

2

我假设你遇到的是Z-战斗http://en.wikipedia.org/wiki/Z-fighting

这导致由于一个事实,即你的对象是太靠近在一起,使得Z缓冲对某些像素不能哪些区别像素低于或高于另一个。 您现在有三个选择:

1)调整你的预测,特别是调整znearzfar值。在这里阅读更多:http://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm

2)增加两个对象

3)既然你绘制2D场景,您可以使用正交投影之间的距离。在这种情况下,根本不应该使用深度缓冲,只需从后向前绘制对象(Painters Algorithm,http://en.wikipedia.org/wiki/Painters_algorithm)。

+0

非常感谢你flobo〜!我非常赞赏它!我试图想到三种方法。 – JavaHell

+0

第一种方法,我的项目正在进行中,所以你试图查看地图,你可能需要增加许多必要的zfar号码。我退出了,因为(约10万次)。 – JavaHell

+0

第二种方法,由于需要调整物体之间的更多空间,所以当时缩放的位置都是倾斜的。结果,我退出了。 – JavaHell