0

当你在推广我的 Android 项目时,我发现了一个奇怪的现象。

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

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

同时,我尝试了对象大小的 1000 倍以上。

然后,根据放大/缩小的现象,一些物体发生了闪烁。

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

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

还是 Android OpenGL ES 本身的问题?

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

在此处输入图像描述

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

4

1 回答 1

2

我假设您正在经历的是z-fightinghttp ://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 )。

于 2013-10-21T10:23:47.680 回答