A объект framebuffer - это место для прикрепления изображений, чтобы вы могли их рендерить.Цветовые буферы, буферы глубины и т. Д. Все входят в объект кадрового буфера.
A renderbuffer похож на текстуру, но с двумя важными отличиями:
- Это всегда 2D и не имеет мипмапов.Так что это всегда ровно 1 изображение.
- Вы не можете читать из рендербуфера.Вы можете прикрепить их к FBO и выполнить рендеринг, но вы не можете сэмплировать их с помощью доступа к текстуре или чего-то в этом роде.
Итак, вы говорите о двух в основном отдельных концепциях.Рендербуферы не имеют для «проверки глубины».Это распространенный случай использования буферов рендеринга, потому что, если вы рендерите цвета в текстуру, вам обычно наплевать на глубину.Вы нуждаетесь в глубине, потому что вам нужно тестирование глубины для удаления скрытой поверхности.Но вам не нужно семплировать с этой глубины.Таким образом, вместо создания текстуры глубины, вы создаете рендер-буфер глубины.
Но рендер-буферы также могут использовать цвета, а не форматы глубины.Вы просто не можете прикрепить их как текстуры.Вы по-прежнему можете копировать их из / в них и читать их обратно glReadPixels
.Вы просто не можете читать их в шейдере.
Как ни странно, это ничего не дает для ответа на ваш вопрос:
Вопрос в том, если цель состоит только в том, чтобы написатьтекстуры в квад, который будет заполнять экран, мне действительно нужен рендер-буфер?
Я не понимаю, зачем вам нужен кадровый буфер или рендер-буфер любого рода.Текстура - это текстура;просто нарисуйте текстурированный квад.