我正试图在java / LWJGL / OpenGL中为我的游戏制作一个2d碰撞检测系统。
我的问题是glReadPixels()表现得很奇怪,我不知道我做错了什么。
问题通常在于它会返回像素的完美rgba代码,但是它会回显我的屏幕上没有的负数或颜色。 (对于alpha我总是得-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)
我该怎么用?
如果有人遇到同样的问题,对我来说,添加此行有助于:
int red = (pixels.get(0) & 0xFF);
它摆脱了我不需要的部分,现在我每次都得到精确的颜色。