0

我会直截了当:)

在此处输入图像描述

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

我想知道的是如何在不同的图层上采样像素。正如您在图中看到的那样,当蠕虫下降时,我只想使用 glReadPixels() 对黑色像素进行采样,以查看蠕虫是否与任何地形站立(碰撞)但是当我上次尝试时,glReadPixels() 采样屏幕上的所有像素,没有任何“层”的想法。

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

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

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

有任何想法吗?

4

1 回答 1

1

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

于 2012-12-09T14:45:53.833 回答