У меня есть текстура того же размера, что и у окна (…), и мне нужно отобразить ее как в 2D.
Так что, если я вас правильно понимаю, то вы хотите использовать ранее сгенерированную текстуру, как если бы это был какой-то "слой", где пиксели текстуры отображаются 1: 1 для пикселей области просмотра, а текстура имеет тот же размер, что и окно просмотра?
Если это так, то это очень просто (в версии GLSL 1.30). Есть функция texelFetch
, которая принимает индекс пикселя в качестве координаты (в отличие от texture
, который принимает значение в диапазоне [0; 1]). Встроенная переменная gl_FragCoord
дает координаты окна текущего обработанного фрагмента. Таким образом, используя координаты в gl_FragCoord
для texelFetch
, вы получите желаемый результат.