Я использовал код в этой ссылке для сопоставления текстур человеческих лиц. Этот код использует GLKIT для рендеринга изображений. Код отлично работает в симуляторе, но тот же код, если я запускаю его на устройстве, не работает. Ниже приведены снимки экрана с изображениями, где он работает на устройстве, а не на моем iPad.
Код, который я использовал для загрузки текстуры:
- (void)loadTexture:(UIImage *)textureImage
{
glGenTextures(1, &_texture);
glBindTexture(GL_TEXTURE_2D, _texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
CGImageRef cgImage = textureImage.CGImage;
float imageWidth = CGImageGetWidth(cgImage);
float imageHeight = CGImageGetHeight(cgImage);
CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageWidth, imageHeight, 0, GL_RGBA,
GL_UNSIGNED_BYTE, CFDataGetBytePtr(data));
}
Изображение симулятора:
Тот же код в устройстве дает следующий результат:
Есть что-то, что я упускаю?