如何获取片段着色器生成的像素/片段列表?

时间:2012-02-02 17:22:01

标签: opengl graphics opengl-es

片段着色器绘制到帧缓冲区。

但是我怎样才能有效地获得由于执行而产生的像素/片段 片段着色器?

3 个答案:

答案 0 :(得分:3)

  • 设置模板蒙版,以便每次绘制片段时,都会将该蒙版设置为1。
  • 使用glReadPixels函数检索模板蒙版和颜色缓冲区。

答案 1 :(得分:2)

在一般情况下,你没有。

您可以让片段着色器为图像写入特定的颜色值。然后,您可以从图像中读回并测试该颜色的位置。那会得到你想要的信息。如果您写入浮点帧缓冲区,您甚至可以使用添加剂混合模式,以便您可以查看每个样本位置的写入量。

但那是关于它的。

答案 2 :(得分:1)

  

片段着色器绘制到帧缓冲区。

不直接。虽然更高版本的OpenGL支持片段着色器中的分散操作,但集合执行对它来说更为自然。

在执行片段处理阶段之前,光栅阶段首先确定哪些片段由当前处理的原语写入。这通过扫描线范围估计器等发生。即处理的片段集在执行片段着色器之前确定。片段着色器然后唯一做的就是计算以下混合阶段使用的值以组合到帧缓冲区中。