So, I read in a texture into my fragment shader. I can output to "display开发者_StackOverflow中文版"; but how do I output/write to another texture? Basically what I want to do is:
read in info from texture 1  // working
do stuff with data //working.
output to texture 2  // ??
display texture 2  // working.
second turn:
read in infom from texture 2  // working
do stuff with data //working.
output to texture 1 // ??
display texture 1 /// working.
I want to do this all on the GPU. It's easy enough to do on the CPU, but it kills performance (hence, why I'm doing it in a shader).
I think I want to use a frame, texture or pixel buffer?
More info if required, the textures are getting into the shader like this:
//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.
}
You use Framebuffer Objects (FBO) to write to textures, they are used as custom draw buffers, you can attach a texture as a draw buffer (attachment) and the color writes will go to the texture.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论