我在opengl中使用单独的帧缓冲对象来拾取2d对象。我很好奇是否可以只画到帧缓冲区并在需要时读取颜色。
我现在正在做的是在主渲染循环中,我将场景绘制到主帧缓冲区,然后将可选对象渲染到“拾取”帧缓冲区。
当用户点击鼠标时,它会绑定“拾取”帧缓冲并读取像素,我知道选择了哪个对象。这个问题是当用户点击鼠标时我只需要“拾取”帧缓冲,所以每帧都这样做效率很低。
我尝试渲染到“拾取”帧缓冲区,当用户点击鼠标然后直接读取但我得到的只是白色(背景颜色而不是颜色告诉我它是哪个对象)。绘制“拾取”帧缓冲区只是将整个事物显示为白色,就像根本没有实际呈现它一样。
我是否需要在渲染到“拾取”帧缓冲区时停止在主循环中绘制?或者是否有一些可以使这成为可能的东西?
编辑:我尝试在渲染到拾取帧缓冲区时没有在主循环中绘制,但这也没有用。