Подтвердить что ты не робот

Разница между объектом буфера кадра, объектом буфера визуализации и текстурой?

Какова разница между объектом буфера кадра, объектом буфера и текстурой Render? В каком контексте они будут использоваться?

4b9b3361

Ответ 1

Объект framebuffer является более или менее просто управляющей конструкцией. Он управляет полным фреймбуфером в целом со всеми его суббуферами, такими как цветовые буферы, буфер глубины и буфер трафарета.

Текстуры или рендеринг-буферы содержат фактическое хранилище для отдельных суб-буферов. Таким образом, вы можете иметь несколько цветовых буферов, буфер глубины и буфер трафарета, которые хранятся в разных текстурах/рендеринге. Но они все вместе составляют единый логический фреймбуфер, в который вы визуализируете.

Итак, последний фрагмент (вы можете назвать его пикселем, но на самом деле еще не один), написанный в framebuffer, имеет одно или несколько значений цвета, значение глубины и значение трафарета, и все они попадают в разные суббуферы фреймбуфера.

Ответ 2

Framebuffer

Фреймбуфер фактически не является буфером. Это абстракция для объекта, который определяет параметры для операции рисования. Это небольшой объект, который содержит одно или несколько вложений, которые сами являются фактическими буферами. Понять фреймбуфер как структуру C со многими полями. Каждое поле (каждое вложение в терминах OpenGL) может быть указателем на буфер визуализации, текстуру, буфер глубины и т.д.

Texture

Массив стандартных пикселей. Это фактический буфер и может быть привязан к фреймбуферу в качестве места назначения пикселов. Каждый пиксель в текстуре обычно содержит цветовые компоненты и альфа-значение (пиксель в текстуре может быть переведен из квадроцикла RGBA с 4 поплавками).

После рисования к фреймбуферу, содержащему прикрепленную текстуру, можно считывать пиксели из текстуры для использования в другой операции рисования. Это позволяет, например, многопроходный чертеж или рисовать сцену внутри другой сцены.

Текстуры могут быть прикреплены к шейдерной программе и использоваться в качестве пробников.

Renderbuffer

Массив встроенных пикселей. Инструмент renderbuffer похож на текстуру, но сохраняет пиксели с использованием внутреннего формата. Он оптимизирован для операций переноса пикселей. Он может быть прикреплен к фреймбуферу в качестве места назначения пикселов, затем быстро скопирован в окно просмотра или другой фреймбуфер. Это позволяет реализовать алгоритмы double buffer, где отображается следующая сцена, пока отображается предыдущая сцена.

Средство renderbuffer также может использоваться для хранения информации о глубине и трафарете, которая используется только для одной процедуры рисования. Это возможно, потому что только сама реализация должна читать данные renderbuffer и, как правило, быстрее, чем текстуры, потому что использует собственный формат.

Поскольку это использует собственный формат, renderbuffer не может быть прикреплен к шейдерной программе и использоваться как сэмплер.