[Interest] [Qt3D] Mixing Quick3D and C++ nodes

Andy asmaloney at gmail.com
Sun Apr 8 19:57:14 CEST 2018


I want to move my framegraph from C++ to QML. My first step is to reproduce
what's already happening with the forward renderer.

If I use a QQmlAspectEngine, should I be able to just swap out parts of the
node hierarchy for Quick3D nodes while leaving other parts C++?

For example, here is the normal tree with a forward renderer & it works:

Debug: Qt3DRender::QRenderSettings::     (:0, (null))
Debug:     Qt3DRender::QRenderCapture::     (:0, (null))
Debug:         Qt3DExtras::QForwardRenderer::Forward Renderer     (:0,
(null))
Debug:             Qt3DRender::QRenderSurfaceSelector::     (:0, (null))
Debug:                 Qt3DRender::QViewport::     (:0, (null))
Debug:                     Qt3DRender::QCameraSelector::     (:0, (null))
Debug:                         Qt3DRender::QClearBuffers::     (:0, (null))
Debug:                             Qt3DRender::QFrustumCulling::     (:0,
(null))
Debug:             Qt3DRender::QFilterKey::     (:0, (null))

Then I switch out the C++ for the QML (and use setContextProperty() to
point at my C++ camera):

Debug: Qt3DRender::QRenderSettings::     (:0, (null))
Debug:     Qt3DRender::QRenderCapture::     (:0, (null))
Debug:         Qt3DRender::Render::Quick::Quick3DTechniqueFilter::     (:0,
(null))
Debug:             Qt3DCore::Quick::Quick3DNodeV9::     (:0, (null))
Debug:             Qt3DRender::QRenderSurfaceSelector::     (:0, (null))
Debug:                 Qt3DCore::Quick::Quick3DNodeV9::     (:0, (null))
Debug:                 Qt3DRender::Render::Quick::Quick3DViewport::
(:0, (null))
Debug:                     Qt3DCore::Quick::Quick3DNodeV9::     (:0, (null))
Debug:                     Qt3DCore::Quick::Quick3DNode::     (:0,
(null))           [Note: this is the CameraSelector/camera]
Debug:                         Qt3DCore::Quick::Quick3DNode::     (:0,
(null))
Debug:                         Qt3DRender::QClearBuffers::     (:0, (null))
Debug:                             Qt3DCore::Quick::Quick3DNodeV9::
(:0, (null))
Debug:                             Qt3DRender::QFrustumCulling::     (:0,
(null))
Debug:             Qt3DRender::Render::Quick::Quick3DRenderPassFilter::
(:0, (null))
Debug:                 Qt3DRender::Render::Quick::Quick3DRenderPassFilter::
    (:0, (null))
Debug:                 Qt3DRender::QFilterKey::     (:0, (null))

This doesn't work - doesn't render anything - am I supposed to be able to
do this? If so is there anything else I'm supposed to do to tell the engine
to use both?

(I'm using Qt 5.10.1 on macOS.)

Thank you for any insights.

---
Andy Maloney  //  https://asmaloney.com
twitter ~ @asmaloney <https://twitter.com/asmaloney>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180408/9f15ee35/attachment.html>


More information about the Interest mailing list