最近在Android的一个项目要用到OpenGL ES,自己对于图形引擎这块又不了解,顶多就是看过点DirectX,不过也是挺久以前的了,早忘完了。
想着这下完了,肯定又得掉坑。
坑确实多,不过大部分网上都有解决,就是刚刚碰到个需要重新载入模型的情况下,本应显示人物立绘的画面只有一堆白框框。
一步步调试看看发现是因为重新载入的过程中,生成纹理标识号的glGenTextures返回老是0,弄了半天,其实是因为glGenTextures的调用只能在GLThread中进行,就是继承Renderer时重写的那仨函数onSurfaceCreated、onSurfaceCreated、onDrawFrame,把需要调用glGenTextures的部分写在这三个函数里就好了。我是因为把重写载入模型的逻辑整个写在了主线程中才出现了上述的问题的。