场景图 - 在 QML 下使用 Direct3D 11

演示如何在 Qt Quick 场景下直接使用 Direct3D 11 进行渲染。

在 QML 下使用 Direct3D 11 的示例演示了应用程序如何利用 QQuickWindow::beforeRendering() 信号在 Qt Quick 场景下绘制自定义的 D3D11 内容。此信号在每一帧的开始处发出,在场景图开始渲染之前,因此任何对此信号做出的 D3D11 绘图调用都将堆叠在 Qt Quick 项目之下。

作为替代方案,希望将在 Qt Quick 场景之上渲染 D3D11 内容的应用程序可以通过连接到 QQuickWindow::afterRendering() 信号来实现。

在这个示例中,我们还将看到如何有值暴露给 QML,这些值会影响 D3D11 的渲染。我们使用 QML 文件中的 NumberAnimation 动画来为阈值值添加动画效果,此值被用于绘制 squircles 的高清着色器程序。

在大多数方面,此示例与 OpenGL Under QMLMetal Under QMLVulkan Under QML 示例等效,它们都渲染相同自定义内容,只是通过不同的原生 API。

示例项目 @ code.qt.io

© 2024 Qt 公司。包含在此处的文档贡献的版权均为各自所有者的版权。本指南提供的文档受 GNU自由文档许可证版本1.3 的条款约束,由自由软件基金会发布。Qt 和相应的标志是芬兰和其他国家和地区 Qt 公司的商标。所有其他商标均为各自所有者的财产。