3

私は OpenGL にやや慣れていませんが、私の問題は使用されているピクセル形式、またはテクスチャの生成方法にあると確信しています...

この段階ではアルファを使用していませんが、16 ビット RGB5_A1 ピクセル フォーマットを使用して、フラットな 2D クワッドにテクスチャを描画しています。私が抱えている問題は、水平ピクセル値の各ペアが交換されていることです。

つまり...ピクセル位置がこの順序でなければならない場合(8x2画像を想定)

0 1 2 3 
4 5 6 7

代わりに次のように描画されます

1 0 3 2
5 4 7 6

または、この画像(下)からより明確に。左は私が得たものです...右は私が得たものです。

.

問題は...どうやってこれになってしまったのですか? ピクセル形式に何か問題がありますか? 色はすべて正しいように見えるのでありそうになく、エンディアンネスにかかっているとしたら、あらゆる種類の厄介なものになると思います。提案は大歓迎です。

更新: 問題は私のソース レンダラーにあることがわかりました。興味深いことに、私は 32 ビット テクスチャを使用することでこの問題を完全に回避しました (この時点では 24 ビットは試していません)。

4

1 に答える 1

-1

これは無関係である可能性があり、回避策を見つけましたが、OpenGL アンパックの配置に関連している可能性があります。次の呼び出しを試しましたか? すべての画像行の位置合わせを 1 バイトに指示します (デフォルトは 4)。

glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

于 2011-01-13T07:09:05.547 に答える