Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的压缩ETC纹理更新-GLCompressedExSubImage2D_Android_Opengl Es_Textures_Texture Mapping - Fatal编程技术网

Android中的压缩ETC纹理更新-GLCompressedExSubImage2D

Android中的压缩ETC纹理更新-GLCompressedExSubImage2D,android,opengl-es,textures,texture-mapping,Android,Opengl Es,Textures,Texture Mapping,我可以在Android中成功创建和加载ETC纹理, 使用电话: ETC1Texture etc1tex = new ETC1Texture(...); gl11.glCompressedTexImage2D(GL10.GL_TEXTURE_2D, 0/*level*/, ETC1.ETC1_RGB8_OES/*internal format*/, etc1tex.getWidth(), etc1te

我可以在Android中成功创建和加载ETC纹理, 使用电话:

ETC1Texture etc1tex = new ETC1Texture(...);
gl11.glCompressedTexImage2D(GL10.GL_TEXTURE_2D, 0/*level*/, 
                             ETC1.ETC1_RGB8_OES/*internal format*/,  
                 etc1tex.getWidth(), etc1tex.getHeight(),        
                 0/*border*/,   
                 etc1tex.getData().capacity()/*imagesize*/, 
                 etc1tex.getData());        
但是现在我需要用新的图像数据更新这个纹理。 我正在使用对子映像的调用:

GL11.glCompressedTexSubImage2D( GL10.GL_TEXTURE_2D, 0/*level*/,                    
            0,   0,     etc1tex.getWidth(), etc1tex.getHeight(),        
            ETC1.ETC1_RGB8_OES, 
            etc1tex.getData().capacity(), 
            etc1tex.getData()); 
它采用与上一个调用大致相同的参数。 但是它不起作用,我的质感一点也没有改变

但是如果我简单地用第一个调用替换子图像调用,我可以看到纹理在更新时出现一些扭曲


有人知道我如何使用这个CompressedExSubimage调用吗?是的,我遇到了同样的问题

我使用
glCompressedTexImage2D(texinfo.glTarget+face,level,glInternalFormat,pixelWidth,pixelHeight,0,faceLodSize,data)

它起作用了

但是当我使用

glCompressedTexImage2D(texinfo.glTarget + face, level,glInternalFormat, pixelWidth, pixelHeight, 0,faceLodSize, NULL);
然后

glCompressedTexSubImage2D(texinfo.glTarget + face, level, 0, 0, pixelWidth , pixelHeight , glInternalFormat,faceLodSize, data);
它不起作用

gl error is GL_INVALID_OPERATION
我需要使用
glCompressedTexSubImage2D
,因为我加载的是一个纹理,而不是一个缓冲区。 可以加载到多个磁贴缓冲区中。 如果一个磁贴加载完成,则调用
glCompressedTexSubImage2D
来处理它。

根据API()

所需的调色板格式不允许子图像更新,但 扩展定义的其他格式可能会出现。”


我假设这意味着对于ETC1压缩,不允许使用子映像。

etc是否不支持GLCompressedExSubImage2D?还是有什么事要做?谢谢?我知道已经两年了,但你的问题解决了吗?