Каков размер блока текстуры, сжатой ETC2?

Каков размер блока текстуры GL_COMPRESSED_RGB8_ETC2 и GL_COMPRESSED_RGBA8_ETC2_EAC?

Я использовал ((w+3)/4)*((h+3)/4)* 8 для GL_ETC1_RGB8_OES, но ничего не могу найти о ETC2 (в документации Khronos об этом не очень ясно).


person execomrt    schedule 27.07.2013    source источник
comment
Вы ознакомились с фреймворком humus.name? Он может иметь это в своем исходном коде (Framework 3, может быть, 2).   -  person Felix K.    schedule 28.07.2013


Ответы (4)


    // ETC1
    { 4, 4, 8, COMPRESSED_ETC1_RGB8_OES },

    // ETC2 / EAC
    { 4, 4,  8, COMPRESSED_R11_EAC },
    { 4, 4,  8, COMPRESSED_SIGNED_R11_EAC },
    { 4, 4, 16, COMPRESSED_RG11_EAC },
    { 4, 4, 16, COMPRESSED_SIGNED_RG11_EAC },
    { 4, 4,  8, COMPRESSED_RGB_ETC2 },
    { 4, 4,  8, COMPRESSED_SRGB8_ETC2 },
    { 4, 4,  8, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 },
    { 4, 4,  8, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 },
    { 4, 4, 16, COMPRESSED_RGBA8_ETC2_EAC },
    { 4, 4, 16, COMPRESSED_SRGB8_ALPHA8_ETC2_EAC },

Первые два значения — размер блока (например, 4x4), третье значение — BytesPerBlock. Четвертое значение — режим сжатия. Это из таблицы, которую я использую для обработки всех существующих сжатых форматов.

Я удалил значения, которые бесполезны для этого ответа (указатели функций сжатия и распаковки и предпочтительные форматы пикселей для исходных/целевых данных, sRGB и т. д.).

person t0rakka    schedule 15.09.2014

Спецификация OpenGL ES 3.0 включает оператор: A texture compressed using any of the ETC texture image formats is described as a number of 4 x 4 pixel blocks в разделе C.1 ETC Compressed Texture Image Formats.

person Frogblast    schedule 28.07.2013

FWIW ETC2 расширяет ETC1, используя некоторые, иначе неиспользуемые, битовые шаблоны, как описано Стромом и др. в "Сжатие текстур с использованием недопустимых комбинаций". (См. также слайд-презентацию по графическому оборудованию):

Таким образом, размеры блоков одинаковы.

person Simon F    schedule 30.08.2013

Размеры блоков задокументированы здесь: http://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml

Особенно:

  • GL_COMPRESSED_RGB8_ETC2 = потолок (ширина/4) * потолок (высота/4) * 8
  • GL_COMPRESSED_RGBA8_ETC2_EAC = потолок (ширина/4) * потолок (высота/4) * 16
person eodabash    schedule 03.05.2014