このリンクのコードを使用して、人間の顔のテクスチャをマッピングしました。このコードは、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));
}
シミュレーターの画像:
デバイス内の同じコードは、次の出力を提供します。
足りないものはありますか?