2016-12-15 2 views
1

Я пытаюсь получить glCompressedTexSubimage2d с текстурами ETC1 для работы в контексте OpenGL ES 3.2.glCompressedTexSubimage2d с данными текстуры ETC1

Я знаю, что glCompressedTexSubimage2d указан для работы с ETC2 (https://www.khronos.org/opengles/sdk/docs/man32/html/glCompressedTexSubImage2D.xhtml), но не ETC1. Однако ETC2 определяется как обратная совместимость с ETC1 (http://www.jacobstrom.com/publications/StromPetterssonGH07.pdf), поэтому любая текстура ETC1 также должна быть действительной текстурой ETC2 (исправьте меня, если я ошибаюсь) - поэтому вместо GL_ETC1_RGB8_OES я использую GL_COMPRESSED_RGB8_ETC2 как внутренний формат для обоих цель, а также загруженный подтекст. Как целевая, так и загруженная субтекстура являются кратными 4 в каждом измерении, а смещения также выровнены по краям 4.

Тем не менее, я получаю ошибку Invalid_Operation при вызове, например, со следующими аргументами :

*** GL error after call to CompressedTexSubImage2D(target = GL_TEXTURE_2D, level = 0, xoffset = 0, yoffset = 2048, width = 512, height = 1024, format = GL_COMPRESSED_RGB8_ETC2, imageSize = 262144, data = 0xc13ab008): invalid operation 

В этом случае размер сжатой мишени текстуры 1024x4096

Тот же самый код (OpenGL эквивалент) работает с DXT1 работает на окнах.

Я исправлю, что это должно работать должным образом, или есть ограничения, которые я пропускаю?

ответ

1

С OpenGL ES 3.2 спецификации:

Для ETC2/EAC изображений GL_INVALID_OPERATION генерируется, если ширина не кратно четырем, а ширина + xoffset не равна ширине уровня текстуры; если высота не кратна четырем, а height + yoffset не равна высоте уровня текстуры; или если xoffset или yoffset не кратно четыре.

Вы не выполняете ограничений по ширине/высоте + x/yoffset == w/h текстуры.

+0

Вы знаете причину этого ограничения? такое же ограничение указано в EXT_texture_compression_s3tc, но с dxt1 на рабочем столе все равно работает. – user1282931

+0

Не подсказка, извините. – solidpixel

+0

Кажется очень странным, вы можете загружать только нижнюю правую часть текстуры –

 Смежные вопросы

  • Нет связанных вопросов^_^