【发布时间】:2012-05-04 10:19:02
【问题描述】:
我正在为 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,我应该早点检查 GL 错误。 glDrawElements() 出现了问题,我在其中使用了 GL_UNSIGNED_INT(GL_UNSIGNED_BYTE 和 GL_UNSIGNED_SHORT 是仅允许的值)。 Android 2.3.3 似乎并不关心这一点。我将其更改为 GL_UNSIGNED_SHORT,现在它可以完美运行了:)
标签: android opengl-es android-ndk opengl-es-2.0