Итак, я прочитал текстуру в свой фрагментный шейдер. Я могу вывести на «дисплей»; но как вывести / записать в другую текстуру? В основном то, что я хочу сделать, это:
read in info from texture 1 // working
do stuff with data //working.
output to texture 2 // ??
display texture 2 // working.
второй поворот:
read in infom from texture 2 // working
do stuff with data //working.
output to texture 1 // ??
display texture 1 /// working.
Я хочу сделать все это на GPU. Это достаточно легко сделать на процессоре, но это снижает производительность (поэтому я и делаю это в шейдере).
Я думаю, что хочу использовать фрейм, текстуру или пиксельный буфер?
Если требуется дополнительная информация, текстуры попадают в шейдер следующим образом:
//housekeeping.
glUseProgram(theProgram);
glUniform1i(glGetUniformLocation(theProgram, "TextureOne"), texId);
Shader:
#version 330 core
out vec4 outputColor;
in vec2 fragPosition; // 2d texture
uniform sampler2D TextureOne;
void main() {
outputColor = texture(TextureOne, fragPosition);
//outputColor goes to output display.
}