Формат текстур OpenGL GL_RGB не работает на iOS (GL_RGBA отлично работает) - PullRequest
3 голосов
/ 16 июня 2011

Привет, люди пустырявместо GL_RGBA в качестве внутреннего формата.Я использую следующий кусок кода для достижения этой цели.Ничего другого не изменилось.

glTexImage2D(_textureTargetType, 
     0, 
     GL_RGB,            // pixel internalFormat
     texWidth,          // image width
     texHeight,         // image height
     0,             // border
     GL_RGBA,           // pixel format
     GL_UNSIGNED_BYTE,      // pixel data type
     bitmapData);

В MacOS эти изменения прошли быстро, без проблем.Но на iOS, в частности 4.3 (OpenGL ES2.0), он дает мне GL_INVALID_OPERATION каждый раз, когда я пытаюсь визуализировать текстурированные полигоны с этой текстурой.Поскольку ничего кроме этого формата не изменено, я думаю, что проблема заключается в несовместимости внутреннего формата GL_RGB с OpenGL ES2.0.Это только мое предположение, я не гуру.

Это не работает ни на симуляторе, ни на iPod touch 4-го поколения.

Спасибо за любые разумные предложения.

1 Ответ

6 голосов
/ 16 июня 2011

Согласно документации, «internalformat должно соответствовать format. При обработке текстурных изображений преобразование между форматами не поддерживается».См. веб-сайт Khronos .OpenGL не имеет этого ограничения, поэтому этот код будет работать на Mac OS, но не на более ограниченном OpenGL ES на устройствах iOS.

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