BMP ファイル内のすべてのピクセル値を配列に読み取り、openGL の glTexImage2D に供給してテクスチャに変換するルーチンを作成しました。これを行うと、BMP ファイル内のピクセルの実際の形式は RGB ではなく BGR であることがわかりました。そのため、配列には青、緑、赤が含まれています。その結果、最終的なテクスチャでは、元のビットマップと比較して青と赤のチャンネルが入れ替わっています。
これは私がそれを呼び出す方法です:
glTexImage2D(GL_TEXTURE_2D, 0, 3, imgdata->width, imgdata->height, 0, GL_RGB, GL_UNSIGNED_BYTE, imgdata->pixdata);
この状況/間違った引数の回避策はありますか? 私が今見つけることができる唯一の解決策は、ループを使用して配列内の RB 値を手動で交換することです。