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