Я использую отдельный объект Framebuffer для выбора цвета 2D объектов в OpenGL. мне любопытно, можно ли рисовать только в фреймбуфере и при необходимости читать цвет.
То, что я делаю сейчас, находится в основном цикле рендеринга. Я рисую сцену в основном буфере кадров, а затем рендерирую только выбираемые объекты в "выбирающий" кадровый буфер.
когда пользователь щелкает мышью, он связывает кадровый буфер "выбора" и считывает пиксель, и я знаю, какой объект выбран. проблема в том, что мне нужен только «выбирающий» кадровый буфер, когда пользователь щелкает мышью, поэтому каждый кадр неэффективен.
Я попытался выполнить рендеринг в «выбирающий» фрейм-буфер, когда пользователь щелкает мышью и затем читает напрямую, но все, что я получаю, - это белый (цвет фона, а не цвет, чтобы сказать, какой это объект). Рисование «выбирающего» фрейм-буфера просто показывает всю вещь в белом цвете, как будто на самом деле ему вообще ничего не отображалось.
мне нужно остановить рисование в главном цикле при рендеринге в кадровый буфер "выбора"? или мне чего-то не хватает, что сделало бы это возможным?
РЕДАКТИРОВАТЬ: я пытался не рисовать в главном цикле во время рендеринга в кадровый буфер выбора, и это тоже не сработало.