2012-12-09 31 views
0

我会得到开门见山:)glReadPixels在单独的图层

enter image description here

从上面的480×320图,我想我可以像蠕虫游戏像素级的碰撞检测。

我想知道的是如何在单独的图层上采样像素。从图中可以看到,随着蠕虫的下落,我只想用glReadPixels()对黑色像素进行采样,以查看蠕虫是否与任何地形站在一起(碰撞),但是当我上次尝试时,glReadPixels()采样屏幕上的所有像素,没有任何“图层”的想法。

白色像素是不应该成为采样部分的背景。

我可能假设在单独的缓冲区中有我的地形的黑白副本,并在该单独的缓冲区上调用glReadPixels(),以便背景图像(白色像素)不会被采样?

在我绘制我的背景图像的相同缓冲区/上下文的屏幕上绘制我的地形之前。

任何想法?

回答

1

读取像素所做的是回读绑定缓冲区,因为缓冲区是所有组合的输出,显然将包含您写入的所有数据,并且不理解您将逻辑排列到图层中。您可以尝试将您的地形绘制到模板缓冲区,然后只读回。使用GL_DEPTH_STENCIL(格式参数)。

+0

Rightio,会有一个去那,为模板缓冲区的建议投票。 – Zhang