如何在Android的GLES中加载多纹理.obj文件

时间:2020-05-26 12:08:55

标签: android opengl-es-2.0 texture-mapping render-to-texture multitexturing

我必须在android中3d obj文件。我已经搜索并找到许多论坛,现在无法成功加载obj + mtl文件。但是我有很多纹理文件的obj和mtl文件有问题。在可能的情况下,在mtl中,每个面孔都有纹理(.png)。如何在GLES中加载这种类型的obj文件? 是否可以在Android opegl Gles中加载多纹理obj? 我有min3d,3dmodelviewer和arjpct库,但没有用。如果可以在GLES中加载多纹理obj,请提供帮助

对于多纹理,我已经这样做了

afterAll()
 mTextureHandle = setTexture(obj, textureId,GLES20.GL_TEXTURE1);
        ByteArrayInputStream textureIs0 = new ByteArrayInputStream(obj.getTextureData().get(0));
        int textureId0 = GLUtil.loadTexture(textureIs0);
        mTextureHandle = setTexture(obj, textureId0, GLES20.GL_TEXTURE0);
        ByteArrayInputStream textureIs2 = new ByteArrayInputStream(obj.getTextureData().get(2));
        int textureId2 = GLUtil.loadTexture(textureIs2);
        mTextureHandle = setTexture(obj, textureId2, GLES20.GL_TEXTURE2);
        ByteArrayInputStream textureIs3 = new ByteArrayInputStream(obj.getTextureData().get(3));
        int textureId3 = GLUtil.loadTexture(textureIs3);
        mTextureHandle = setTexture(obj, textureId3, GLES20.GL_TEXTURE3);
        ByteArrayInputStream textureIs4 = new ByteArrayInputStream(obj.getTextureData().get(4));
        int textureId4 = GLUtil.loadTexture(textureIs4);
        mTextureHandle = setTexture(obj, textureId2, GLES20.GL_TEXTURE4);
        ByteArrayInputStream textureIs5 = new ByteArrayInputStream(obj.getTextureData().get(5));
        int textureId5 = GLUtil.loadTexture(textureIs5);
        mTextureHandle = setTexture(obj, textureId5, GLES20.GL_TEXTURE5);
        ByteArrayInputStream textureIs6 = new ByteArrayInputStream(obj.getTextureData().get(6));
        int textureId6 = GLUtil.loadTexture(textureIs6);
        mTextureHandle = setTexture(obj, textureId6, GLES20.GL_TEXTURE6);
        ByteArrayInputStream textureIs7 = new ByteArrayInputStream(obj.getTextureData().get(7));
        int textureId7 = GLUtil.loadTexture(textureIs7);
        mTextureHandle = setTexture(obj, textureId7, GLES20.GL_TEXTURE7);
        ByteArrayInputStream textureIs8 = new ByteArrayInputStream(obj.getTextureData().get(8));
        int textureId8 = GLUtil.loadTexture(textureIs8);
        mTextureHandle = setTexture(obj, textureId8, GLES20.GL_TEXTURE8);
        ByteArrayInputStream textureIs9 = new ByteArrayInputStream(obj.getTextureData().get(9));
        int textureId9 = GLUtil.loadTexture(textureIs9);
        mTextureHandle = setTexture(obj, textureId9, GLES20.GL_TEXTURE9);

0 个答案:

没有答案
相关问题