我会直截了当地说:)
从上面的480 x 320图中,我想我可以像像蠕虫游戏一样检测像素级别的碰撞。
我想知道的是如何在不同的图层上对像素进行采样。正如您在图中看到的那样,当蠕虫正在下降时,我想只使用glReadPixels()对黑色像素进行采样,以查看蠕虫是否与任何地形站立(碰撞),但是当我上次尝试它时,glReadPixels()采样屏幕上的所有像素,没有"层"。
的任何想法白色像素是背景,不应该是采样的一部分。
我是否可能想在一个单独的缓冲区上有我的地形的黑白副本,并在该单独的缓冲区上调用glReadPixels(),以便背景图像(白色像素)不会被采样?
在我在屏幕上绘制地形之前,在我绘制背景图像的相同缓冲区/上下文中。
有什么想法吗?
答案 0 :(得分:1)
读取像素的内容是读回绑定缓冲区,因为缓冲区是所有合成的输出,显然会包含您编写的所有数据,并且无法理解您在层中的逻辑排列。您可以尝试将地形绘制到模板缓冲区中并仅回读它。使用GL_DEPTH_STENCIL(格式参数)。