我正在使用openGL,我想做的是将我的场景渲染为纹理,然后存储该纹理,以便我可以将它传递到我的片段着色器中以用于渲染其他内容。
我使用 glGenTexture() 创建了一个纹理并将其附加到帧缓冲区,然后使用 glBindFrameBuffer() 渲染帧缓冲区。然后我将帧缓冲区设置回 0 以渲染回屏幕,但现在我被卡住了。
在我的片段着色器中,我有一个统一的采样器 2D 'myTexture',我想用它来存储纹理。我该怎么做呢?
对于我在网上找到的 .jpg/png 图像,我只使用了以下代码:
glUseProgram(Shader->GetProgramID());
GLint ID = glGetUniformLocation(
Shader->GetProgramID(), "Map");
glUniform1i(ID, 0);
glActiveTexture(GL_TEXTURE0);
MapImage->Bind();
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
但是,此代码不适用于我创建的 glTexture。具体来说,我不能以同样的方式调用 myTexture->Bind() 。