Android上的OpenGL渐变条带

时间:2011-12-29 15:31:26

标签: android opengl-es colors dithering

我在市场上有一个使用OpenGL渲染一些基本形状和平面的动态壁纸。简单的照明在整个平面上产生渐变效果,在大多数设备上看起来都很好。三星Galaxy S2系列似乎在渲染渐变时遇到一些问题,正如您在此屏幕截图中看到的那样:

banding on GS2

色带看起来很糟糕,特别是与这个从Incredible拍摄的屏幕相比:

no banding on DInc

我在两种情况下都使用565 EGL配置,所以我认为这只是GS2设备的显示问题。任何人都可以证实这种怀疑吗?

绑扎有什么解决方案吗?

3 个答案:

答案 0 :(得分:2)

你能否确认,尽管你要求565,你实际上是565?有EGL功能可以确认你最终得到的东西。我指的是检查两个设备,因为你可能会在Incredible和其他设备上获得888,因此显示效果更好。

答案 1 :(得分:1)

看起来它确实是GS2的显示器,或更准确地说,它的抖动算法。我尝试将我所请求的配置提升到RGB888,这就是我得到的(来自我的测试用户的手机):

No banding GS2

因此,当试图将888空间中的颜色映射到565配置时,GS2看起来真的很糟糕。

现在我不确定我是否想要在所有设备上将配置升级到888(质量更好但性能更高),或者仅限于我知道要用得很差的设备。嗯。

答案 2 :(得分:0)

您是否尝试在GL中禁用抖动?这可能会有所帮助。

GLES20.glDisable(GLES20.GL_DITHER);