OpenGL ES 2.0: glReadPixels () с текстурами float или half_float - PullRequest
3 голосов
/ 26 апреля 2011

Я пишу приложение OpenGL ES 2.0 для iPhone (iOS 4.1).В конце вычислений, которые сделаны в шейдерах, мне нужно записать некоторые данные в процессор.Насколько я знаю, это может быть сделано с помощью glReadPixels ().Чтобы сохранить точность, я хочу использовать текстуры half_float или float между шейдерами, которые, кажется, поддерживаются расширениями.

Вопрос: Возможно ли читать текстуры float или half_float с помощью glReadPixels ()?

Спасибо,

Ларс

1 Ответ

3 голосов
/ 27 апреля 2011

Я тоже столкнулся с этой проблемой.Для iOS вы можете проверить список доступных расширений с параметром GL_EXTENSIONS - должен присутствовать GL_OES_texture_float.Но!Согласно спецификации это не дает возможности считывать значения с плавающей запятой из GPU.Это из документации glReadPixels ():

Допускаются только две пары параметров формат / тип.GL_RGBA / GL_UNSIGNED_BYTE всегда принимается, а другую приемлемую пару можно обнаружить, выполнив запросы к GL_IMPLEMENTATION_COLOR_READ_FORMAT и GL_IMPLEMENTATION_COLOR_READ_TYPE.

Таким образом, вы можете проверить доступные типы / форматы * 101 *, которые вы можете прочитать с помощью кода ниже:*

...