2009-07-22 2 views
2

PNGの代わりにPVRTCイメージを使用しようとしています。問題は、私がそれらを見ることができないということです。私は圧縮テクスチャを作成するには、このコマンドを使用しPVRTCテクスチャの使用に関する問題

glGenTextures(1, &bg1Texture); 
glBindTexture(GL_TEXTURE_2D, bg1Texture); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 

NSString *path = [[NSBundle mainBundle] pathForResource:@"starfield_00" ofType:@"pvr"]; 
NSData *texData = [[NSData alloc] initWithContentsOfFile:path]; 

glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG, 512, 512, 0, [texData length], [texData bytes]); 

[texData release]; 

:戻っ1281は、(テクスチャのバインドに失敗しました)()

texturetool -e PVRTC --bits-per-pixel-2 -o starfield_00.pvr -f PVR starfield_00.png 

glGetErrorを

は、ここに私のコードです。しかし、のglIsTexture()でチェックすると、trueを返します。

アイデア?ああ、私はiPhoneでOpenGL ESを使用しています。

+0

代わりにGL_COMPRESSED_RGB_PVRTC_2BPPV1_IMGを使用する必要がありますか?(エラー1281は無効な列挙型を意味します)今は試すことができませんが、後で試してみます – Istvan

答えて

2

エンコード手順から-f PVRオプションを削除した後、テクスチャを読み込んでRGBAオプションで表示できました。興味深いことに、このエンコーディングコマンドラインは、Appleのサンプルプログラムの1つから取られました...

+5

-f PVRフラグは、イメージの高さと幅、およびその他のいくつかのものを含むPVRTCデータにヘッダーを追加するようにツールに指示します。そのフラグを使用する場合は、ヘッダーを解析してスキップし、その後ろのデータをOpenGLに送信する必要があります。 –

関連する問題