我正在为我正在开发的一个简单游戏研究一种可能的碰撞检测方法,但我现在被卡住了。
我正在尝试将纹理加载到内存中而不是加载到帧缓冲区中并使用坐标从中读取像素(特别是颜色)...我可以轻松读取缓冲区内容并获取坐标处像素的颜色但是我不知道如何在纹理上执行此操作,甚至可能吗?
任何帮助/指导/研究内容或可能的功能将不胜感激。
注意:我使用的是 OpenGL 2.0
最佳答案
OpenGL 不是图像处理库,也不是图像访问库。它是一个绘图 API,因此应该对其进行处理。使用 OpenGL 可以读回(整个)纹理(尽管性能不是很好)。在 OpenGL-ES 上,没有直接的方法来读取纹理数据。
您已经在常规缓冲区中拥有了整个纹理图像?很好,因为无论如何这就是您要操作的对象。读回单个像素的颜色是愚蠢的,因为它会因函数调用开销而阻塞 CPU。
关于c++ - 将 PNG 纹理导入内存而不是帧缓冲区 - 使用 C++ 和 OpenGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665467/