Полная точность текстур с плавающей точкой на iPad 2

Может кто-нибудь сказать мне, если на iPad2 можно использовать 2D-текстуры с плавающей точкой полной точности? (полная точность = одинарная точность)

Распечатав реализованные расширения OpenGL на iPad2, используя

glGetString(GL_EXTENSIONS)

Я понял, что поддерживаются OES_texture_half_float и OES_texture_float.

Тем не менее, использование GL_HALF_FLOAT_OES в качестве типа текстур работает нормально,

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_HALF_FLOAT_OES, NULL);

тогда как использование GL_FLOAT приводит к неполному объекту кадрового буфера.

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_FLOAT, NULL);

Я что-то здесь не так делаю или текстуры с плавающей точкой полной точности просто не поддерживаются?

Спасибо заранее.

1 ответ

OES_texture_floatРасширение предусматривает использование 32-битных текстур с плавающей точкой в ​​качестве входных данных, но это не означает, что вы можете рендерить в них. EXT_color_buffer_half_float добавляет возможность для устройств iOS (я полагаю, графические процессоры A5 и выше) рендерить в 16-битные текстуры с половинным плаванием, но не в 32-битные текстуры с полным плаванием.

Я не верю, что какое-либо из существующих устройств iOS позволяет выполнять рендеринг в полные 32-битные плавающие текстуры, просто используя их в качестве входных данных при рендеринге сцены.

Другие вопросы по тегам