我正在尝试将以前的项目移植到新的 Qt5 OpenGL 类。我想使用 FBO 渲染到纹理。前面的代码使用了我按需附加到 FBO 的多个纹理。所以,我会附加某个纹理对象,执行渲染,附加另一个纹理并执行不同的操作,并将输出渲染到新附加的纹理,等等。
我想知道如何使用 Qt5 OpenGL 类来做这件事。例如,我不知道如何将某个QOpenGLTexture
对象附加到 aQOpenGLFrameBufferObject
以便我可以对其进行渲染。我可以看到有一个texture()
方法和一个takeTexture()
方法。但它们都只返回纹理 ID。另外,如何更改活动纹理单元?例如,我想从我的着色器程序中的两个纹理中采样。所以,我需要将两个纹理绑定到不同的纹理单元。
澄清一下,我在使用新 API 时遇到的主要问题是我没有看到任何QOpenGLFrameBufferObject
会返回QOpenGLTexture
对象的方法。只有toImage()
方法texture()
和takeTexture()
方法。我想我可以QOpenGLTexture
使用QImage
返回的 from构造一个toImage()
。但我不确定这是否有效。
至于texture()
and takeTexture()
,我看不出它们的返回值如何使用新类。