Основной рабочий процесс:
- Рендеринг сцены в цель / текстуру рендеринга (размер экрана, обычно того же формата)
- Сброс цели рендеринга - либо на другую цель рендеринга / текстуру, либо на текущий буфер)
- Установить пиксельный шейдер для постобработки, привязать текстуру сцены к сэмплеру
- Нарисуйте полноэкранный квад по сцене, используя фиктивный вершинный шейдер
В пиксельном шейдере постобработки доступ к отдельным пикселям сцены очень прост, если вы знаете нормализованную позицию x, y текущего текселя (которая задается координатами текстуры полноэкранного четырехугольника, интерполированного на стадии пиксельного шейдера).
Многие эффекты постобработки требуют нескольких проходов для временных целей рендеринга. Примером является печально известный эффект «цветения»: вы берете текстуру сцены, вычитаете темные части, размываете и масштабируете оставшееся изображение вниз (обычно это делается за несколько проходов с использованием логики пинг-понга для повторного использования целей рендеринга). Последний шаг композиции просто добавляет текстуру цветка и оригинальную сцену.