使用OpenGL中的AntiAliasing进行颜色选择?

Kro*_*ica 3 opengl multisampling color-picker antialiasing

我在OpenGL中遇到颜色选择和抗锯齿问题.当AA被激活时,glReadPixels的结果在对象边缘和对象交叉点上显然是错误的.例如:

我在框#32(RGBA:32,0,0,0)附近渲染框#28(RGBA:28,0,0,0).使用AA,由于AA算法,我可以获得错误的ReadPixel值(例如30),其中立方体和三角形重叠,或者框边缘的值为14.

我有~4万个物体我需要能够挑选(这是一个拼图游戏).能够按形状选择对象至关重要.

我试图用glDisable(GL_MULTISAMPLE)禁用AA但它不能用于某些AA模式(我读它取决于AA实现 - SS,MS,CS ......)

那么,我如何选择底层对象?

  1. 一种方法暂时禁用AA?
  2. 使用不同的缓冲区甚至渲染上下文?
  3. 还有其他建议吗?

Chr*_*ica 7

为什么不使用FBO作为选择缓冲区?