场景图 - 在QML下利用Direct3D 11#

展示如何在Qt Quick场景下直接渲染。

../_images/d3d11underqml-example.jpg

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

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

在这个示例中,我们还将看到如何暴露到QML中的值来影响D3D11渲染。我们使用QML文件中的NumberAnimation动画阈值值,这个值被绘制圆形的HLSL着色器程序所使用。

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

示例项目 @ code.qt.io