我正在尝试将渲染到纹理概念与立方体贴图纹理一起使用,但不知何故,纹理并未在绘制调用中应用于几何。这是我的代码
#define WIDTH 64
#define HEIGHT 64
glGenTextures(1, &id1);
glBindTexture(GL_TEXTURE_CUBE_MAP, id1);
glGenFramebuffers(1, &Fboid);
for(int i=0;i<6;i++)
{
glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);
glTexImage2D(types[i], 0, GL_RGBA,WIDTH, HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE,0);
}
glBindFramebuffer(GL_FRAMEBUFFER, Fboid);
for(int i=0;i<6;i++)
glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,types[i],id1,0);
draw_cube();
glBindFramebuffer(GL_FRAMEBUFFER, 0);
draw();
我已经验证帧缓冲区绑定是否完整。draw_cube() 也可以按预期正确绘制几何图形。当我删除 FBO 并向 glteximage2D() 提供数据时,它会正确地将立方体贴图纹理应用于 draw() 调用中的几何体。宽度高度与 draw_cube 调用中设置的视口相同。
上面的代码有什么问题?