Фрагментный шейдер обращается к кадровому буферу.
Не напрямую.Хотя более поздние версии OpenGL поддерживают операцию разброса в фрагментном шейдере, выполнение сбора становится для него более естественным.
Перед выполнением этапа обработки фрагмента, этап растеризации сначала определяет, в какие фрагменты записываются обрабатываемые в данный моментпримитивный.Это происходит через оценщик диапазона сканирования или тому подобное.Т.е. набор обрабатываемых фрагментов определяется до выполнения фрагмента шейдера.Затем единственное, что делает фрагментный шейдер, это вычисление значений, используемых на следующем этапе наложения для объединения в кадровый буфер.