Целевата текстура с GL_HALF_FLOAT_OES или GL_FLOAT прави framebuffer GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT на Galaxy S4 (Android 4.2)

Внедрявам конвейер за изобразяване на HDR в приложение за Android с помощта на OpenGL ES 2.0 и имам някои проблеми с текстури с плаваща запетая, нито GL_FLOAT, нито GL_HALF_FLOAT_OES работи като тип текстура, тъй като това ще даде GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, когато текстурата се използва като цел на буфер на кадри.

Кодът работи перфектно, ако задам тип на GL_UNSIGNED_BYTE, така че всъщност само проблемът с плаваща запетая го причинява.

Устройството поддържа разширенията GL_OES_texture_float, GL_OES_texture_half_float, GL_EXT_color_buffer_float и GL_EXT_color_buffer_half_float.

Използвам GL_NEAREST като GL_TEXTURE_MAG_FILTER/GL_TEXTURE_MIN_FILTER, но устройството поддържа GL_OES_texture_half_float_linear, така че GL_LINEAR също трябва да работи.

Устройството поддържа npot текстури, но дори и с мощност 2 пак не работи.

Благодаря!


person Johan    schedule 29.07.2013    source източник
comment
Опитахте ли RGBA текстура или RGB текстура? Открих, че Adreno 320 не харесва RGB16F (въпреки че и двата са стандартни в GLES3), така че само RGBA16F работи :|   -  person RelativeGames    schedule 29.09.2013
comment
Да, направих го, така че когато използвате RGBA16F, който е с контекст на OpenGL ES 3.0? В такъв случай мило, предполагам, че просто ще актуализирам до Android 4.3 :)   -  person Johan    schedule 01.10.2013
comment
Мислех, че може да имате S4 с PowerVR, но да, това е на GLES3 и Nexus 4.   -  person RelativeGames    schedule 01.10.2013


Отговори (1)


Сигурни ли сте, че разширението GL_EXT_color_buffer_half_float е изложено във вашето устройство?

Според този въпрос във форумите на Imagination, S4 поддържа разширението, но не може да се използва.

[..] GL_OES_texture_float позволява на приложението да използва текстури с плаваща запетая. Ще ви е необходимо допълнително разширение за изобразяване на цел с плаваща запетая (напр. EXT_color_buffer_half_float). За съжаление, това разширение не е изложено на PowerVR Galaxy S 4.

person user1906    schedule 31.07.2013
comment
В списъка е, това е странно, но ако случаят е такъв, има смисъл все пак.. - person Johan; 01.08.2013
comment
Нямам S4, но ако това разширение е включено в низа, върнат от glGetString(GL_EXTENSIONS), трябва да работи. Може би като попитате Imagination директно във форумите им, ще получите известна представа за това. - person user1906; 02.08.2013