针对opengl es的纹理绑定可能就那么几行代码但是每次绑定那可是都要消耗一定的时间的, 要是针对纹理一直在变的模型怎么办?难道把纹理绑定放在onDrawFrame()绘图函数中?这样可是会减慢绘图速度的因此我想吧纹理绑定放进线程中加载,但是线程中却无法绑定纹理,下面短短几行代码就是我开启线程绑定纹理 

解决方案 »

  1.   

    http://b45.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e3d88ef1aa2fdcbf4532d00b0a09036cfecac3c0bad3e25efb5c7ac870dceb739dbcb626bcafac43045711cb93b43f454bcc7fcfa4d6ab783c3bbabfa15ff127806444ed851e09744b9f72538645fb556ab1d2da&a=47&b=45
      

  2.   

    图片
    http://b45.photo.store.qq.com/http_imgload.cgi?/rurl4_b=e3d88ef1aa2fdcbf4532d00b0a09036cfecac3c0bad3e25efb5c7ac870dceb739dbcb626bcafac43045711cb93b43f454bcc7fcfa4d6ab783c3bbabfa15ff127806444ed851e09744b9f72538645fb556ab1d2da&a=47&b=45
      

  3.   

    onSurfaceCreated 中创建、绑定图片
    gl.glGenTextures(textures.length, textures, 0);
    gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.clown_fish1);
    GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);onDrawFrame中选中纹理
    gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
      

  4.   

    我的意思就是 不想在onDrawFrame()  onSurfaceCreated()中实现纹理加载
    我想在独自开启一个线程加载纹理    纹理需要更换就加载
      

  5.   

    绑定应该是要放在一开始的 纹理的渲染或改变肯定是ondrawframe的时候 本来就应该这么做 已经有一个GLThread来渲染了 你不能另开一个线程用来处理纹理
      

  6.   

    opengl基于状态机的,很多东西好像是线程局部存储的