繁体   English   中英

如何使用Qt3D渲染现有的OpenGL纹理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM