glReadPixels如何在OpenGL / LWJGL中工作?

时间:2017-12-31 16:33:29

标签: java opengl 2d lwjgl

我正在尝试在java / LWJGL / OpenGL中为我的游戏制作一个2d碰撞检测系统。

我的问题是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)

我应该使用什么?

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,对我来说,添加此行会有所帮助:

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

它摆脱了我不需要的部分,现在我每次都得到精确的颜色。