[英]How to render an existing OpenGL texture with Qt3D
我需要使用Qt3D在QtQuick应用程序中渲染本机预渲染的OpenGL纹理。
我使用cuda将场景实时渲染到绑定到帧缓冲区的纹理。 然后,我想在qml场景中显示该渲染的纹理。
看来,我必须以某种方式干预渲染过程,并在纹理GLuint上调用glBindTexture()。
当然,有一种解决方法,我可以将视频内存中的纹理加载到某个缓冲区,然后创建QTexture2D并使用QTextureImageDataGenerator提供数据。 但这似乎效率很低。
因此,问题是如何在Qt3D渲染管道中绑定现有纹理。
如果我理解正确,则希望使用Qt3D在纹理上显示视频。
您的资料来源中有一个示例可以完全做到这一点:
<QT_PATH>\5.13.0\Src-Qt5.13.0\qt3d\tests\manual\video-texture-qml
您正在谈论的视频存储器是来自保存的视频还是实时数据? 您可以对此部分进行阐述吗?(答案:使用cuda实时到帧缓冲区)
编辑:看看qsharedgltexture。他们添加了对在Qt13.0的Qt 3D场景中从单独的OpenGL上下文中使用textureId的支持。 我还没有使用过它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.