Подтвердить что ты не робот

Непрочность двух текстур в iOS

В моем приложении iOS (предназначенном для iPad) я хотел бы использовать немощность двух (NPT) текстур. Мой запрос GL_VERSION возвращает "OpenGL ES 2.0 APPLE". Согласно спецификации, она должна поддерживать текстуры NPT, но простой тест показывает, что мне нужно изменить размер текстуры до 2 ^ N до ее появления.

Не поддерживает ли Apple полную спецификацию ES 2.0? Где я могу найти документацию о том, что не поддерживается?

Я использую Xcode 4.3.2 и iOS 5.1.

Edit:

Более внимательный взгляд на спецификацию ES 2.0.25 (раздел 3.8.2) показывает, что для работы NPOT существует несколько условий. По сути, если я использую приведенные ниже настройки, я могу загрузить текстуры NPOT:

// use linear filetring
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
// clamp to edge
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

Должен ли я закрыть это или ответить на мой собственный вопрос?

4b9b3361

Ответ 1

Как упоминалось в моем редактировании, я нашел решение. NPOT на ES 2.0 требует, чтобы вы использовали линейную фильтрацию и зажимали кромку. Кроме того, нет mipmaps.