0
이미 압축 된 이미지를 압축하고 최종 이중 압축 된 데이터를 glCompressedTexImage2D로 전달하고 싶습니다. 이를 위해 아래의 단계를 따라갔습니다 :이미 압축 된 이미지를 안드로이드에서 압축하기
glGenTextures(1, textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, level, internalformat, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
&compressedSize);
if (compressedSize > 0){
/* call glCompressedTexImage2D to render this double compressed image.*/
}
그러나 compressedSize가 0 밖에되지 않습니다. 데이터가 압축되지 않는 것 같습니다.
I 텍스처의 폭과 높이를 얻을 GL_TEXTURE_WIDTH 및 GL_TEXTURE_HEIGHT를 사용하지 않는다. 하지만 두 매개 변수 모두 0이됩니다. 핵심은 이미 압축 된 텍스처의 텍스처를 줄이려합니다. 이 점에 대해 조금이라도 궁금한 점이 있으면 알려 주시기 바랍니다. –
당신이하고 싶은 것이 가능하다고 생각하지 않습니다. glCompressedTexImage2D와 함께 사용하고자하는 압축 포맷은 무엇입니까? 모든 GLES2 안드로이드 장치는 ETC1을 지원하고 일부는 ETC2, PVRTC, DXT 또는 ASTC를 지원합니다. 이러한 형식에는 예측 가능한 압축 비율 (예 : 2bpp, 4bpp, 8bpp)이 있습니다. 일반적으로 런타임에는 텍스처를 오프라인으로 압축하지 않습니다. 이중 압축으로 무엇을 의미하는지는 명확하지 않습니다. zlib이 텍스처 데이터를 압축 (또는 유사한)하여 저장 공간을 절약 할 수 있습니다. 그러나 OpenGL에는 그 개념이 없으므로 double 압축 데이터를 glCompressedTexImage2D로 전달할 수 없습니다. – Columbo