У меня есть небольшая программа, которая дважды визуализирует желтый треугольник, один раз в левой половине фреймбуфера и один раз в правой части.
Дамп текстуры
Теперь, после этого, я визуализирую содержимое этого фреймбуфера на экране.
Это работает, если я использую GL_TEXTURE_RECTANGLE в конструкторе фреймбуфера:
https://github.com/elect86/Joglus/blob/master/Joglolus/src/joglus/example1/FrameBuffer.java
При привязке текстуры функция renderFullScreenQuad, строка 372:
https://github.com/elect86/Joglus/blob/master/Joglolus/src/joglus/example1/GlViewer.java
И используя sampler2DRect во фрагментном шейдере:
#version 330
out vec4 outputColor;
uniform sampler2DRect texture0;
void main() {
outputColor = texture(texture0, gl_FragCoord.xy);
}
Но если я изменю все RECTANGLE на 2D и использую sample2D в fs, я получаю полное черное изображение в конце display(), хотя дамп текстуры показывает всегда правильное изображение... Я хотел бы знаю, почему.