OpenGL ES 2.0在Android 4.0.3上无法渲染。

3
我正在为Android编写完全本地的OpenGL ES 2.0游戏引擎。之前我在三星Galaxy S(Android 2.3.3)上开发,现在我换到三星Galaxy S II(更新到Android 4.0.3)。在Galaxy S II还运行Android 2.3.3时,我没有尝试在该设备上测试引擎(硬件特定问题?)。
现在引擎在Android 2.3.3上可以正常运行和渲染(已在Galaxy S上测试),但是在Android 4.0.3上无法正常渲染(已在Galaxy S II上测试)。问题类似于这个:OpenGL Renderer not working on Ice Cream Sandwich 除了渲染之外,其他一切都在4.0.3上正常工作,屏幕上什么也没有显示出来。我设法在4.0.3上渲染一个单独的三角形,但从模型中提取的顶点使用glDrawElements()无法呈现,无论是否包含纹理。
我希望有一个简单的解决方法。
祝好

检查所有GL调用是否存在错误。检查日志中是否有可疑条目。 - Stefan Hanke
谢谢@stefan,我应该早点检查GL错误。问题出现在glDrawElements()中,我使用了GL_UNSIGNED_INT(只允许使用GL_UNSIGNED_BYTE和GL_UNSIGNED_SHORT)。Android 2.3.3似乎不关心这个问题。我将其更改为GL_UNSIGNED_SHORT,现在它完美地工作了:) - Devenec
1个回答

4

我早该检查GL错误了。问题出现在glDrawElements()中,我使用了GL_UNSIGNED_INT(只允许使用GL_UNSIGNED_BYTEGL_UNSIGNED_SHORT)。Android 2.3.3似乎并不关心这个问题。我将其更改为GL_UNSIGNED_SHORT,现在它完美地工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接