Macos OpenGL:绘制FBO时进行纹理处理

Macos OpenGL:绘制FBO时进行纹理处理,macos,opengl,textures,fbo,Macos,Opengl,Textures,Fbo,有人知道在绘制纹理FBO时是否可以渲染纹理对象吗?例如,我想生成一个FBO/纹理,显示带纹理茶壶的渲染。这可以用来显示所述茶壶的镜面反射 我已经试过好几次了,它总是返回一个不可见的对象。FBO/纹理显示线和其他非纹理着色对象,但不显示纹理对象。奇怪 --直接在主帧缓冲区上绘制相同的场景效果很好。纹理和非纹理对象渲染精细 --生成FBO/纹理时不使用渲染到的纹理ID。因此,没有循环绑定 --glGetError不会在GLDrainElements之后返回任何错误,因此这不是问题的根源 --纹理坐标

有人知道在绘制纹理FBO时是否可以渲染纹理对象吗?例如,我想生成一个FBO/纹理,显示带纹理茶壶的渲染。这可以用来显示所述茶壶的镜面反射

我已经试过好几次了,它总是返回一个不可见的对象。FBO/纹理显示线和其他非纹理着色对象,但不显示纹理对象。奇怪

--直接在主帧缓冲区上绘制相同的场景效果很好。纹理和非纹理对象渲染精细

--生成FBO/纹理时不使用渲染到的纹理ID。因此,没有循环绑定

--glGetError不会在GLDrainElements之后返回任何错误,因此这不是问题的根源

--纹理坐标是正确的

--我的图形卡(Intel x3100)确实支持Mac OS-X 10.6.7上的OpenGL 2.0,FBO示例程序运行良好(但它们没有纹理功能)

这可能很简单,但我就是找不到


如果不可能,那么推荐的方法是什么? 有着色器吗?
这需要某种形式的多重纹理吗?

FBO与其他渲染目标不同,因此纹理效果很好。唯一的原因是,部分纹理单元仍可能被FBO附件堵塞。FBO不能同时作为渲染目标和纹理源,因此,如果OpenGL认为这可能是一种情况,则可能会发生一些情况

确保渲染用作纹理的FBO,首先必须从使用FBO的所有纹理单元中解除FBO及其附件的绑定,然后将FBO绑定为渲染绘制缓冲区


完成对FBO的绘制后,首先将其作为渲染缓冲区目标解除绑定,然后将其绑定到要使用它的纹理单元。

好,一切正常。我只是忘了在绘制FBO之前删除对glactiveTextureArab()的调用,实际上是将所有绘制重定向到其他地方。总是一些小事。。。