【发布时间】:2011-05-04 01:12:54
【问题描述】:
所以,我将纹理读入我的片段着色器。我可以输出到“显示”;但是我如何输出/写入另一个纹理?基本上我想做的是:
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 上完成这一切。在 CPU 上执行此操作很容易,但会降低性能(因此,我在着色器中执行此操作)。
我想我想使用帧、纹理或像素缓冲区?
如果需要更多信息,纹理将像这样进入着色器:
//housekeeping.
glUseProgram(theProgram);
glUniform1i(glGetUniformLocation(theProgram, "TextureOne"), texId);
着色器:
#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.
}
【问题讨论】:
标签: opengl glsl textures shader