Autor Wątek: Wczytywanie ATI1 - poprawne wyliczanie rozmiaru (błąd 1281)  (Przeczytany 642 razy)

Offline Montjet

  • Użytkownik

# Luty 18, 2018, 13:55:18
Wczytuję sobie ATI1,
jako format podaję GL_COMPRESSED_RG_RGTC2.

Przy uploadowaniu tekstury OGL wypluwa mi błąd 1281.
Dla ATI2 (format: GL_COMPRESSED_RED_RGTC1) rozmiar wyliczam tak: width * height / 2 i działa prawidłowo.

Tak samo próbuję robić dla ATI1 z marnym skutkiem. Sprawdzałem rozmiar, który zostal wskazany w nagłówku pliku DDS i on zgadza się.

kod:
glGenTextures(1, &(obj_texture));
glBindTexture(GL_TEXTURE_2D, (obj_texture));

int width = bitmap.Width();
int height = bitmap.Height();
glTexStorage2D(GL_TEXTURE_2D, bitmap.NumMipMap(),
bitmap.InternalFormat(),
width, height);

for(unsigned level = 0; level < bitmap.NumMipMap(); ++level)
{
unsigned size = width*height * 8 / 16;
glCompressedTexSubImage2D(GL_TEXTURE_2D, level,
0, 0,
width, height,
bitmap.InternalFormat(),
size,
bitmap.GetBits() + offset);

offset += size;
width  /= 2;
height /= 2;
}

Nie sprawdzałem tylko poprawności wczytanej tekstury ATI2.
Any idea?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych