Движок с нуля
Справочник

Буфер кадра

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

Буфер кадра (framebuffer) — это таблица: для окна 1280 × 720 в ней 1280 · 720 = 921 600 ячеек, в каждой — цвет пикселя.

У окна обычно два цветовых буфера:

  • передний — буфер, который прямо сейчас показывает монитор;
  • задний — буфер, в который рисует программа, монитор этот буфер не показывает.

Когда кадр дорисован, буферы меняются ролями. Это называется двойной буферизацией.

Сколько памяти занимает буфер

Цвет пикселя — 4 байта (R, G, B и прозрачность A). Значит, один буфер 1280 × 720 занимает:

1280⋅720⋅4=3 686 400 байт≈3,5 МБ1280 \cdot 720 \cdot 4 = 3\,686\,400 \text{ байт} \approx 3{,}5 \text{ МБ}

В 3D к цветовому буферу добавляется буфер глубины. В буфере глубины столько же ячеек, сколько пикселей в окне: 1280 × 720, по одной ячейке на пиксель. В каждой ячейке записано число: насколько далеко от камеры лежит то, что нарисовано в этом пикселе. Обычно ячейка буфера глубины тоже занимает 4 байта, поэтому буфер глубины занимает столько же памяти, те же 3,5 МБ.