2010-09-09 66 views
1

在尝试了glBlendFunc的各种组合后,我注意到它们中的大多数对我的手机(HTC Desire)没有影响,而它们在模拟器中工作得很好。在电话上,只有0 + 1,1 + 0,1 + 1有任何可见的效果,而所有其他组合似乎被忽略。这是硬件限制吗?OpenGL ES glBlendFunc硬件需求

P.S.我正在使用Java在Android 2.2上运行我的测试。

回答

0

对于谁可能有同样的问题的人:使用openGL的常数(GL10.GL_SRC_COLOR,GL10.GL_DST_COLOR)作为参数,而不要以为它们映射在所有设备上达到相同的实际值。

0

不,它可能只是驱动程序错误,或者代码中的错误。你几乎没有提到任何事情。你的framebuffer是否有alpha通道?你的纹理也有一个alpha通道吗?你尝试的标准混合FUNC:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
+0

那么,我首先注意到这个问题,而使用Rokon游戏引擎。所以我认为它可能是特定的东西,我把一个非常粗糙的openGL测试放在一起检查 - 没有什么奇特,没有纹理,只有基本的颜色。结果是相同的 - 混合在仿真器中按预期工作,但不在设备上。 – 2010-09-10 07:15:05

+0

这里是基本的测试代码: http://nothing.exhalus.net/misc/openGLtest/starter.txt http://nothing.exhalus.net/misc/openGLtest/openGLrenderer.txt 的http://什么.exhalus.net/misc/openGLtest/customGLSurfaceView.txt http://nothing.exhalus.net/misc/openGLtest/square.txt http://nothing.exhalus.net/misc/openGLtest/smoothColoredSquare.txt – 2010-09-10 07:17:41