рендеринг в текстуру с плавающей точкой под iOS - PullRequest
7 голосов
/ 03 октября 2010

iPad теперь поддерживает OES_texture_half_float расширение. К сожалению, у меня проблемы с привязкой текстуры с плавающей точкой к объекту кадрового буфера. Вот моя попытка:

GLuint textureHandle;
glGenTextures(1, &textureHandle);
glBindTexture(GL_TEXTURE_2D, textureHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 256, 256, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
assert(GL_NO_ERROR == glGetError()); // this passes

GLuint fboHandle;
glGenFramebuffers(1, &fboHandle);
glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureHandle, 0);
assert(GL_FRAMEBUFFER_COMPLETE == glCheckFramebufferStatus(GL_FRAMEBUFFER)); // this asserts

Это прекрасно работает при замене GL_HALF_FLOAT_OES на GL_UNSIGNED_BYTE.

Это ограничение для iOS или я что-то делаю неправильно?

1 Ответ

2 голосов
/ 25 декабря 2011

Я опубликовал аналогичный вопрос по этой теме здесь .

Похоже, что расширение OES_texture_float в настоящее время поддерживается только на iPhone 4S и iPad 2, хотяэто явно не упомянуто в руководстве Apple .

Спасибо kal21 за , указавшему на это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...