我试图将FBO的深度纹理和颜色纹理链接到GLSL着色器(版本4.0)
问题是,同时只有一个链接,Strange因为其他纹理很好地链接在一起(例如:漫反射,普通和高光贴图)
这是我的绑定RT代码:
void RenderTexture::BindRead(GLuint locationColor,GLuint locationDepth,unsigned int unit,unsigned int dUnit)
{
colorUnit = unit;
this->depthUnit = dUnit;
assert(unit >= 0 && unit <= 31);
glActiveTexture(GL_TEXTURE0 + unit);
glBindTexture(GL_TEXTURE_2D,m_rt);
if (hasDepth)
{
assert(depthUnit >= 0 && depthUnit <= 31);
glActiveTexture(GL_TEXTURE0 + dUnit);
glBindTexture(GL_TEXTURE_2D,m_depth);
glUniform1i(locationDepth,dUnit);
}
glUniform1i(locationColor,unit);
}
我真的不知道这里的错误......
答案 0 :(得分:0)
最后,我找到了一个解决方案!问题是我在设置值之后绑定了程序,它应该在之前,这也解决了我所遇到的许多其他错误。