2017-01-05 10 views
0

私はすでに圧縮された画像を圧縮し、最後の2倍の圧縮データをglCompressedTexImage2Dに渡したいと思います。このために私は以下のステップを踏襲しました:既に圧縮された画像をアンドロイドで開くgl

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しか得ていません。データが圧縮されていないようです。

答えて

0

GL_TEXTURE_COMPRESSED_IMAGE_SIZEは、私はテクスチャの幅と高さを取得するためにGL_TEXTURE_WIDTHとGL_TEXTURE_HEIGHTを使用OpenGLES 2スペック(あるいはOpenGLES 3.0または3.1)

+0

の一部ではありません。しかし、どちらのパラメータも0になります。ポイントは、私はすでに圧縮されたテクスチャのテクスチャを減らしたいです。あなたはこれについて何か考えている場合は私に知らせてください。 –

+1

私はあなたがしたいことは可能だとは思わない。 glCompressedTexImage2Dで使用する圧縮形式を教えてください。すべてのGLES2 AndroidデバイスはETC1をサポートし、一部はETC2、PVRTC、DXTまたはASTCもサポートしています。これらのフォーマットは予測可能な圧縮比(例えば、2bpp、4bpp、8bpp)を有する。通常、実行時ではなく、テクスチャをオフラインで圧縮します。二重圧縮が何を意味するのかははっきりしていません - zlibがテクスチャデータを収縮させる(または同様の)ことによって、いくつかの記憶領域を節約できます。しかし、OpenGLにはその概念がないので、double圧縮データをglCompressedTexImage2Dに渡すことはできません。 – Columbo

関連する問題