2017-12-31 161 views
0

私はJava/LWJGL/OpenGLで私のゲームのために2d衝突検出システムを作ろうとしています。OpenGL/LWJGLでglReadPixelsはどのように機能しますか?

私の問題は、glReadPixels()が異常に機能していて、何が間違っているのか分かりません。

問題は通常、ピクセルの完全なrgbaコードを戻しますが、何らかの理由でマイナスの数字や色が画面に表示されないことがあります。 (アルファに対しては常に-1となります)

この問題の原因は何ですか?

マイコード:

int size = 10; 

    ByteBuffer pixels = BufferUtils.createByteBuffer(width * height * 4); 

    glReadPixels(100, 500, size, size, GL_RGBA, GL_UNSIGNED_BYTE, pixels); 

私は多分、私が悪いのパラメータを使用していることを考えていますか? (GL_RGBA、GL_UNSIGNED_BYTE)

どうすればよいですか?

+0

** unsigned **バイトをクエリします。 -1と表示されている場合、符号なしバイト(-1にはできません)ではなく、何らかの種類の符号付き表現があります。 – BDL

+0

[スクリーンイメージを保存する]セクション(http://wiki.lwjgl.org/wiki/Taking_Screen_Shots.html)が役立つかもしれません。 – BDL

+0

ああ、私は(&0xFF)私はあなたに感謝する必要はありません部品を取り除くために使用されなかった問題でした – pocokknight1

答えて

0

誰かが同じ問題を抱えている場合は、私はこの行を追加するための助け:

int red = (pixels.get(0) & 0xFF); 

をそれは私が必要としないし、今私は、正確な色を毎回取得する部品をオフに取り除きます。

関連する問題