0

PVR からの tga の読み込みに問題があります。

PVR は正しくロードされていると思いますが、テクスチャを OpenGL にロードしようとすると問題が発生します。

私は奇妙で一貫性のない絵を描いています。作成中のテクスチャ ファイル全体をグラフィックス ウィンドウ クラスに渡し、unsigned int である ID を取得してからテクスチャを作成するように依頼します。

これは私のロード テクスチャ クラスです。

glGenTextures(animalTexture->getID(), &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, 3, animalTexture->getWidth(),animalTexture->getHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, animalTexture->getImageData());
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

何が原因なのか気になります。このメソッドは複数回呼び出されるため、以前に生成されたテクスチャを問題なく上書きできるかどうか疑問に思っています。テクスチャを生成するために gluint を使用する必要がありますか? 私はtgaをロードしようとしています。

これは、通常の保存された画像で正常に描画されることを知っています。

どんなアイデアや助けも大歓迎です。

ps 私だった黒い点は無視してください。

ここに画像の説明を入力

4

1 に答える 1

1

この投稿をご覧ください。基本的に、PVRは圧縮されているため、非圧縮テクセルを想定するglTexImage2Dを使用してテクスチャを送信することはできません(各テクセルは、投稿したコードでは4つの符号なしバイトです)。代わりに、圧縮形式を処理するglCompressedTexImage2Dを使用する必要があります。このOpenGLes拡張機能を見て、使用する内部形式を確認してください。どちらを選択すればよいかわからない場合、または圧縮されたテクスチャを表示したいだけの場合、PVRTexToolは優れたツールのように見えます。

于 2011-12-07T04:43:20.567 に答える