テクスチャ パイプラインを JPEG で動作させるのに問題があります。PNG ではすべてが正常に機能しますが、変換が問題でした。
UIImage と CGBitmapContextCreate を介して画像データを読み込んでいます
UIImage* tI = [UIImage imageWithContentsOfFile:fileName];
Image = tI.CGImage;
mWidth = CGImageGetWidth(Image);
mHeight = CGImageGetHeight(Image);
mData = new uint8[mWidth * mHeight * 4];
Context = CGBitmapContextCreate(mData, mWidth, mHeight, CGImageGetBitsPerComponent(Image), CGImageGetBytesPerRow(Image),
CGImageGetColorSpace(Image),
CGImageGetBitmapInfo(Image));
CGContextDrawImage(Context, CGRectMake(0.0, 0.0, float(mWidth), float(mHeight)), Image);
CGContextRelease(Context);
次に、呼び出しでGLTextureをセットアップします...
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texture->Width(), texture->Height(), 0, GL_RGB, GL_UNSIGNED_BYTE, texture->Data());
この glTexImage2D 呼び出しが問題だと思われます。私はさまざまな組み合わせを使用して、物事を機能させようとしました。アルファの BitmapInfo 状態は「kCGImageAlphaNoneSkipLast」であるため、RGBA と GL_UNSIGNED_SHORT_5_5_5_1 を使用する必要があるかどうかはわかりませんが、これまでに試した組み合わせはありません。一番近かったのは…
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture->Width(), texture->Height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, texture->Data());
これにより、テクスチャが非常に吹き飛ばされました(色のエッジは識別できましたが、すべてが明るすぎました)
どんな助けでも素晴らしいでしょう。PNGよりもスペースを節約するためにJPEGを使用しています。