From a5ee671f47464cc687fab86b868dfc8197e3a3fd Mon Sep 17 00:00:00 2001 From: Wieland Hagen Date: Fri, 26 Feb 2016 18:21:20 +0100 Subject: Some fixes for examples. Mostly insertion of RenderSurfaceSelector, FrameGraph->RendererSettings, remove parameter bindings Change-Id: I182092d43b0842da07e995387c0fe174d45345df Reviewed-by: Sean Harmer --- examples/qt3d/anaglyph-rendering/main.qml | 2 +- examples/qt3d/assimp/main.qml | 2 +- examples/qt3d/audio-visualizer-qml/Visualizer.qml | 2 +- examples/qt3d/bigmodel-qml/main.qml | 2 +- examples/qt3d/bigscene-instanced-qml/main.qml | 8 +- examples/qt3d/clip-planes-qml/main.qml | 2 +- examples/qt3d/compute-particles/ParticlesScene.qml | 6 +- examples/qt3d/controls/Logo.qml | 2 +- examples/qt3d/custom-mesh-qml/main.qml | 2 +- examples/qt3d/cylinder-qml/main.qml | 2 +- .../deferred-renderer-cpp/deferredrenderer.cpp | 5 +- .../qt3d/deferred-renderer-cpp/deferredrenderer.h | 2 + .../deferred-renderer-qml/DeferredRenderer.qml | 46 ++-- .../qt3d/deferred-renderer-qml/FinalEffect.qml | 2 +- examples/qt3d/deferred-renderer-qml/main.qml | 24 +- examples/qt3d/dynamicscene-cpp/main.cpp | 2 +- examples/qt3d/enabled-qml/main.qml | 43 ++-- examples/qt3d/gltf/main.qml | 6 +- examples/qt3d/gooch-qml/main.qml | 2 +- examples/qt3d/instanced-arrays-qml/main.qml | 2 +- examples/qt3d/keyboardinput-qml/main.qml | 2 +- examples/qt3d/lights/main.qml | 2 +- examples/qt3d/loader-qml/main.qml | 2 +- examples/qt3d/materials/main.qml | 2 +- examples/qt3d/mouseinput-qml/main.qml | 22 +- .../qt3d/multiviewport/QuadViewportFrameGraph.qml | 4 +- examples/qt3d/picking-qml/main.qml | 249 ++++++++++----------- examples/qt3d/planets-qml/CloudEffectDS.qml | 26 --- examples/qt3d/planets-qml/PlanetEffectD.qml | 42 ---- examples/qt3d/planets-qml/PlanetEffectDB.qml | 42 ---- examples/qt3d/planets-qml/PlanetEffectDSB.qml | 27 --- examples/qt3d/planets-qml/PlanetFrameGraph.qml | 2 +- examples/qt3d/planets-qml/PlanetShadowEffectD.qml | 42 ---- examples/qt3d/planets-qml/PlanetsMain.qml | 2 +- examples/qt3d/planets-qml/SolarSystem.qml | 4 +- examples/qt3d/plasma/main.qml | 3 +- .../playground-qml/AnimatedDiffuseMaterial.qml | 8 - examples/qt3d/playground-qml/ComplexTechnique.qml | 5 - examples/qt3d/playground-qml/main.qml | 2 +- examples/qt3d/qgltf/main.qml | 12 +- examples/qt3d/scene3d-loader/AnimatedEntity.qml | 2 +- examples/qt3d/scene3d-loader/Scene2.qml | 6 +- examples/qt3d/scene3d/AnimatedEntity.qml | 2 +- examples/qt3d/shadow-map-qml/AdsEffect.qml | 17 -- .../qt3d/shadow-map-qml/ShadowMapFrameGraph.qml | 74 +++--- .../shadow-map-qml/doc/src/shadow-map-qml.qdoc | 2 +- examples/qt3d/simple-qml/main.qml | 2 +- examples/qt3d/simple-shaders-qml/main.qml | 2 +- examples/qt3d/skybox/main.qml | 2 +- examples/qt3d/tessellation-modes/main.qml | 2 +- examples/qt3d/torus-qml/main.qml | 6 +- examples/qt3d/transforms-qml/main.qml | 2 +- examples/qt3d/transparency-qml-scene3d/Scene.qml | 7 +- examples/qt3d/transparency-qml/main.qml | 2 +- examples/qt3d/wave/main.qml | 6 +- examples/qt3d/wireframe/doc/src/wireframe.qdoc | 2 +- examples/qt3d/wireframe/main.qml | 2 +- 57 files changed, 310 insertions(+), 492 deletions(-) (limited to 'examples/qt3d') diff --git a/examples/qt3d/anaglyph-rendering/main.qml b/examples/qt3d/anaglyph-rendering/main.qml index e218950ba..36a612310 100644 --- a/examples/qt3d/anaglyph-rendering/main.qml +++ b/examples/qt3d/anaglyph-rendering/main.qml @@ -55,7 +55,7 @@ import Qt3D.Render 2.0 Entity { id: root - components: FrameGraph { + components: RenderSettings { StereoFrameGraph { id: stereoFrameGraph leftCamera: stereoCamera.leftCamera diff --git a/examples/qt3d/assimp/main.qml b/examples/qt3d/assimp/main.qml index 8dab36819..40ea31e51 100644 --- a/examples/qt3d/assimp/main.qml +++ b/examples/qt3d/assimp/main.qml @@ -57,7 +57,7 @@ import Qt3D.Input 2.0 Entity { components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/audio-visualizer-qml/Visualizer.qml b/examples/qt3d/audio-visualizer-qml/Visualizer.qml index 9ff25d164..1066f656d 100644 --- a/examples/qt3d/audio-visualizer-qml/Visualizer.qml +++ b/examples/qt3d/audio-visualizer-qml/Visualizer.qml @@ -130,7 +130,7 @@ Entity { ] } - FrameGraph { + RenderSettings { id: external_forward_renderer activeFrameGraph: ForwardRenderer { camera: camera diff --git a/examples/qt3d/bigmodel-qml/main.qml b/examples/qt3d/bigmodel-qml/main.qml index 729be5c35..30ff06f73 100644 --- a/examples/qt3d/bigmodel-qml/main.qml +++ b/examples/qt3d/bigmodel-qml/main.qml @@ -59,7 +59,7 @@ Entity { FirstPersonCameraController { camera: mainCamera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph:ForwardRenderer { camera: mainCamera } diff --git a/examples/qt3d/bigscene-instanced-qml/main.qml b/examples/qt3d/bigscene-instanced-qml/main.qml index ee1c05b7a..71a82d30a 100644 --- a/examples/qt3d/bigscene-instanced-qml/main.qml +++ b/examples/qt3d/bigscene-instanced-qml/main.qml @@ -71,11 +71,17 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera } + // we need to explicitly set the RenderPolicy to AlwaysRender here, + // because a vertex shader will use time-based rendering, so the + // scene will change every frame without the scene-graph changing. + // RenderOnDemand would therefore not render every frame, as it won't + // detect scene-graph changes + renderPolicy: RenderSettings.Always }, // Event Source will be set by the Qt3DQuickWindow InputSettings { } diff --git a/examples/qt3d/clip-planes-qml/main.qml b/examples/qt3d/clip-planes-qml/main.qml index 010857514..1f5b1e71f 100644 --- a/examples/qt3d/clip-planes-qml/main.qml +++ b/examples/qt3d/clip-planes-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { ClipCappingFrameGraph { camera: camera; clearColor: Qt.rgba(0.0, 0.5, 1, 1) diff --git a/examples/qt3d/compute-particles/ParticlesScene.qml b/examples/qt3d/compute-particles/ParticlesScene.qml index 29968d59f..0dd04d0a2 100644 --- a/examples/qt3d/compute-particles/ParticlesScene.qml +++ b/examples/qt3d/compute-particles/ParticlesScene.qml @@ -65,10 +65,14 @@ Entity { signal reset() components: [ - FrameGraph { + RenderSettings { ComputeFrameGraph { camera: sceneCamera } + // explicitly set RenderingPolicy to AlwaysRender, as changes in the + // scene won't be reflected in actual Qt scene-graph changes (due to + // GPU compute calls) + renderPolicy: RenderSettings.Always } ] diff --git a/examples/qt3d/controls/Logo.qml b/examples/qt3d/controls/Logo.qml index fa5ed9eb0..0f2fe1fb3 100644 --- a/examples/qt3d/controls/Logo.qml +++ b/examples/qt3d/controls/Logo.qml @@ -68,7 +68,7 @@ Entity { } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { camera: camera clearColor: "white" diff --git a/examples/qt3d/custom-mesh-qml/main.qml b/examples/qt3d/custom-mesh-qml/main.qml index 033be0e67..f56a00ab0 100644 --- a/examples/qt3d/custom-mesh-qml/main.qml +++ b/examples/qt3d/custom-mesh-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0.5, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/cylinder-qml/main.qml b/examples/qt3d/cylinder-qml/main.qml index 8f4ba27f0..decdab1c4 100644 --- a/examples/qt3d/cylinder-qml/main.qml +++ b/examples/qt3d/cylinder-qml/main.qml @@ -69,7 +69,7 @@ Entity { FirstPersonCameraController { camera: camera } - RendererSettings { + RenderSettings { id : external_forward_renderer activeFrameGraph : ForwardRenderer { camera: camera diff --git a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp index 928f8dec7..fa629dd73 100644 --- a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp +++ b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.cpp @@ -53,8 +53,9 @@ DeferredRenderer::DeferredRenderer(Qt3DCore::QNode *parent) : Qt3DRender::QViewport(parent) - , m_sceneFilter(new Qt3DRender::QLayerFilter(this)) - , m_screenQuadFilter(new Qt3DRender::QLayerFilter(this)) + , m_surfaceSelector(new Qt3DRender::QRenderSurfaceSelector(this)) + , m_sceneFilter(new Qt3DRender::QLayerFilter(m_surfaceSelector)) + , m_screenQuadFilter(new Qt3DRender::QLayerFilter(m_surfaceSelector)) , m_clearScreenQuad(new Qt3DRender::QClearBuffer(m_screenQuadFilter)) , m_gBufferTargetSelector(new Qt3DRender::QRenderTargetSelector(m_sceneFilter)) , m_clearGBuffer(new Qt3DRender::QClearBuffer(m_gBufferTargetSelector)) diff --git a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h index e2df3c30c..71a0f9dbd 100644 --- a/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h +++ b/examples/qt3d/deferred-renderer-cpp/deferredrenderer.h @@ -56,6 +56,7 @@ #include #include #include +#include #include #include @@ -72,6 +73,7 @@ public: void setScreenQuadLayers(const QStringList &layerName); private: + Qt3DRender::QRenderSurfaceSelector *m_surfaceSelector; Qt3DRender::QLayerFilter *m_sceneFilter; Qt3DRender::QLayerFilter *m_screenQuadFilter; Qt3DRender::QClearBuffer *m_clearScreenQuad; diff --git a/examples/qt3d/deferred-renderer-qml/DeferredRenderer.qml b/examples/qt3d/deferred-renderer-qml/DeferredRenderer.qml index af7ea6ffc..20387ef3f 100644 --- a/examples/qt3d/deferred-renderer-qml/DeferredRenderer.qml +++ b/examples/qt3d/deferred-renderer-qml/DeferredRenderer.qml @@ -57,41 +57,43 @@ Viewport { property alias gBuffer : gBufferTargetSelector.target property alias camera : sceneCameraSelector.camera - LayerFilter { - layers : "scene" + RenderSurfaceSelector { + LayerFilter { + layers : "scene" - RenderTargetSelector { - id : gBufferTargetSelector + RenderTargetSelector { + id : gBufferTargetSelector - ClearBuffer { - buffers: ClearBuffer.ColorDepthBuffer + ClearBuffer { + buffers: ClearBuffer.ColorDepthBuffer - RenderPassFilter { - id : geometryPass - includes : Annotation { name : "pass"; value : "geometry" } + RenderPassFilter { + id : geometryPass + includes : Annotation { name : "pass"; value : "geometry" } - CameraSelector { - id : sceneCameraSelector + CameraSelector { + id : sceneCameraSelector + } } } } } - } - LayerFilter { - layers : "screenQuad" + LayerFilter { + layers : "screenQuad" - ClearBuffer { - buffers: ClearBuffer.ColorDepthBuffer + ClearBuffer { + buffers: ClearBuffer.ColorDepthBuffer - RenderPassFilter { - id : finalPass - includes : Annotation { name : "pass"; value : "final" } - CameraSelector { - camera: sceneCameraSelector.camera + RenderPassFilter { + id : finalPass + includes : Annotation { name : "pass"; value : "final" } + CameraSelector { + camera: sceneCameraSelector.camera + } } - } + } } } } diff --git a/examples/qt3d/deferred-renderer-qml/FinalEffect.qml b/examples/qt3d/deferred-renderer-qml/FinalEffect.qml index 1335b0e8e..0790e09b5 100644 --- a/examples/qt3d/deferred-renderer-qml/FinalEffect.qml +++ b/examples/qt3d/deferred-renderer-qml/FinalEffect.qml @@ -115,7 +115,7 @@ Effect { lightColor += lights[i].color * (lights[i].intensity * max(dot(s, norm), 0.0)); } lightColor /= float(lightCount); - fragColor = col * lightColor; + fragColor = col; } " } diff --git a/examples/qt3d/deferred-renderer-qml/main.qml b/examples/qt3d/deferred-renderer-qml/main.qml index 2a1ffa9d9..58d3c2588 100644 --- a/examples/qt3d/deferred-renderer-qml/main.qml +++ b/examples/qt3d/deferred-renderer-qml/main.qml @@ -51,6 +51,7 @@ import QtQuick 2.0 as QQ2 import Qt3D.Core 2.0 import Qt3D.Render 2.0 +import Qt3D.Input 2.0 Entity { id : root @@ -59,13 +60,17 @@ Entity { id : gBuffer } - components : FrameGraph { - id : deferredFrameGraphComponent - activeFrameGraph: DeferredRenderer { - camera : camera - gBuffer: gBuffer - } - } + components : [ + RenderSettings { + activeFrameGraph: DeferredRenderer { + camera : camera + gBuffer: gBuffer + } + + renderPolicy: RenderSettings.Always + }, + InputSettings {} + ] FirstPersonCameraController { camera: camera } @@ -106,7 +111,7 @@ Entity { QQ2.NumberAnimation on intensity { from: 0; to: 5.0; duration: 1000; loops: QQ2.Animation.Infinite } } - components: sceneEntity.light + components: [ sceneEntity.light ] Camera { id: camera @@ -129,7 +134,6 @@ Entity { id : sphereMesh rings: 50 slices: 100 - shareable: false } SceneEffect { @@ -198,7 +202,7 @@ Entity { } Entity { - id: light3 + id: sphere3 property PointLight light : PointLight { color : "white" intensity : 2.0 diff --git a/examples/qt3d/dynamicscene-cpp/main.cpp b/examples/qt3d/dynamicscene-cpp/main.cpp index 0ce12939c..3839b480a 100644 --- a/examples/qt3d/dynamicscene-cpp/main.cpp +++ b/examples/qt3d/dynamicscene-cpp/main.cpp @@ -65,7 +65,6 @@ int main(int argc, char* argv[]) { QGuiApplication app(argc, argv); - Qt3DWindow view; ExampleScene *sceneRoot = new ExampleScene(); @@ -77,6 +76,7 @@ int main(int argc, char* argv[]) basicCamera->setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); basicCamera->setViewCenter(QVector3D(0.0f, 3.5f, 0.0f)); basicCamera->setPosition(QVector3D(0.0f, 3.5f, 25.0f)); + // For camera controls Qt3DInput::QFirstPersonCameraController *camController = new Qt3DInput::QFirstPersonCameraController(sceneRoot); camController->setCamera(basicCamera); diff --git a/examples/qt3d/enabled-qml/main.qml b/examples/qt3d/enabled-qml/main.qml index 2aaac4310..e48f53a47 100644 --- a/examples/qt3d/enabled-qml/main.qml +++ b/examples/qt3d/enabled-qml/main.qml @@ -56,28 +56,33 @@ Entity { id: sceneRoot property int counter: 0 - components: FrameGraph { - Viewport { - normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0) - clearColor: "white" - enabled: counter !== 5 - - ClearBuffer { - buffers : ClearBuffer.ColorDepthBuffer - enabled: counter !== 6 - } - - CameraSelector { - camera: camera - enabled: counter !== 7 - - LayerFilter { - enabled: counter === 12 - layers: "scene" + components: [ + RenderSettings { + activeFrameGraph: Viewport { + normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0) + clearColor: "white" + enabled: counter !== 5 + + RenderSurfaceSelector { + + ClearBuffer { + buffers : ClearBuffer.ColorDepthBuffer + enabled: counter !== 6 + } + + CameraSelector { + camera: camera + enabled: counter !== 7 + + LayerFilter { + enabled: counter === 12 + layers: "scene" + } + } } } } - } + ] QQ2.Timer { interval: 500 diff --git a/examples/qt3d/gltf/main.qml b/examples/qt3d/gltf/main.qml index cab5d765a..3d4cc4f4e 100644 --- a/examples/qt3d/gltf/main.qml +++ b/examples/qt3d/gltf/main.qml @@ -69,8 +69,8 @@ Entity { FirstPersonCameraController { camera: camera } - FrameGraph { - id : framegraph + RenderSettings { + id : renderSettings activeFrameGraph : Viewport { clearColor: "black" CameraSelector { @@ -87,7 +87,7 @@ Entity { } } - components: [ framegraph ] + components: [ renderSettings ] Wine { id: wineRack diff --git a/examples/qt3d/gooch-qml/main.qml b/examples/qt3d/gooch-qml/main.qml index 0f82a07ec..9208512b6 100644 --- a/examples/qt3d/gooch-qml/main.qml +++ b/examples/qt3d/gooch-qml/main.qml @@ -59,7 +59,7 @@ Entity { FirstPersonCameraController { camera: mainCamera } components: [ - FrameGraph { + RenderSettings { ForwardRenderer { camera: mainCamera } diff --git a/examples/qt3d/instanced-arrays-qml/main.qml b/examples/qt3d/instanced-arrays-qml/main.qml index b2a8577ac..2b2d01249 100644 --- a/examples/qt3d/instanced-arrays-qml/main.qml +++ b/examples/qt3d/instanced-arrays-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/keyboardinput-qml/main.qml b/examples/qt3d/keyboardinput-qml/main.qml index e5ae5a199..7806b48ce 100644 --- a/examples/qt3d/keyboardinput-qml/main.qml +++ b/examples/qt3d/keyboardinput-qml/main.qml @@ -70,7 +70,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { camera: camera } diff --git a/examples/qt3d/lights/main.qml b/examples/qt3d/lights/main.qml index 7bf1f15d1..2a48ebaeb 100644 --- a/examples/qt3d/lights/main.qml +++ b/examples/qt3d/lights/main.qml @@ -54,7 +54,7 @@ import Qt3D.Render 2.0 Entity { - components: FrameGraph { + components: RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0, 0, 1) camera: camera diff --git a/examples/qt3d/loader-qml/main.qml b/examples/qt3d/loader-qml/main.qml index 79b3b58c7..7ea7f43ca 100644 --- a/examples/qt3d/loader-qml/main.qml +++ b/examples/qt3d/loader-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { camera: camera } diff --git a/examples/qt3d/materials/main.qml b/examples/qt3d/materials/main.qml index a4ca2479f..bfcc7ead0 100644 --- a/examples/qt3d/materials/main.qml +++ b/examples/qt3d/materials/main.qml @@ -60,7 +60,7 @@ Entity { // Use the renderer configuration specified in ForwardRenderer.qml // and render from the mainCamera components: [ - FrameGraph { + RenderSettings { activeFrameGraph: SortedForwardRenderer { id: renderer camera: mainCamera diff --git a/examples/qt3d/mouseinput-qml/main.qml b/examples/qt3d/mouseinput-qml/main.qml index 9eaeea7ff..be6e608ce 100644 --- a/examples/qt3d/mouseinput-qml/main.qml +++ b/examples/qt3d/mouseinput-qml/main.qml @@ -69,22 +69,25 @@ Entity { FirstPersonCameraController { camera: camera } - components: FrameGraph { - ForwardRenderer { - camera: camera - clearColor: "black" - } - } + components: [ + RenderSettings { + ForwardRenderer { + camera: camera + clearColor: "black" + } + renderPolicy: RenderSettings.Always + }, + InputSettings {} + ] SphereMesh { id: sphereMesh radius: 3 } - Material { + PhongMaterial { id: material - effect : Effect { - } + diffuse: "green" } MouseController { @@ -98,6 +101,7 @@ Entity { property Transform transform: Transform { scale: sphere1.scaleFactor + rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45) } property MouseHandler mouseHandler : MouseHandler { diff --git a/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml b/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml index ba6316668..a6cd2bc21 100644 --- a/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml +++ b/examples/qt3d/multiviewport/QuadViewportFrameGraph.qml @@ -51,7 +51,7 @@ import Qt3D.Core 2.0 import Qt3D.Render 2.0 -FrameGraph { +RenderSettings { id: quadViewportFrameGraph property alias topLeftCamera: cameraSelectorTopLeftViewport.camera; @@ -60,7 +60,7 @@ FrameGraph { property alias bottomRightCamera: cameraSelectorBottomRightViewport.camera; property alias window: surfaceSelector.window - RenderSurfaceSelector { + activeFrameGraph: RenderSurfaceSelector { id: surfaceSelector Viewport { diff --git a/examples/qt3d/picking-qml/main.qml b/examples/qt3d/picking-qml/main.qml index bc2b501a5..e0b446449 100644 --- a/examples/qt3d/picking-qml/main.qml +++ b/examples/qt3d/picking-qml/main.qml @@ -56,62 +56,50 @@ import QtQuick 2.0 as QQ2 import QtQuick.Window 2.2 as W import QtQuick.Scene3D 2.0 -W.Window -{ - id: _view - visible: true - width: 1024 - height: 768 - - Scene3D { -// anchors.fill: parent - id: sceneItem - x: parent.width / 2 - width / 2 - y: parent.height / 2 - height / 2 - width: parent.width / 2 - height: parent.height / 2 - focus: true - aspects: "input" +Entity { + id: sceneRoot + + Camera { + id: camera + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width * 0.5 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, -40.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } - Entity { - id: sceneRoot - - Camera { - id: camera - projectionType: CameraLens.PerspectiveProjection - fieldOfView: 45 - aspectRatio: _view.width * 0.5 / _view.height - nearPlane : 0.1 - farPlane : 1000.0 - position: Qt.vector3d( 0.0, 0.0, -40.0 ) - upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) - viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) - } + Camera { + id: camera2 + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width * 0.5 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 40.0, 5.0, -20.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } - Camera { - id: camera2 - projectionType: CameraLens.PerspectiveProjection - fieldOfView: 45 - aspectRatio: _view.width * 0.5 / _view.height - nearPlane : 0.1 - farPlane : 1000.0 - position: Qt.vector3d( 40.0, 5.0, -20.0 ) - upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) - viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) - } + FirstPersonCameraController { + camera: camera + } - FirstPersonCameraController { - camera: camera - } + // Draw 2 viewports + // one with the content, the other with content + debug volumes + components: [ + RenderSettings { + Viewport { + normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0) - // Draw 2 viewports - // one with the content, the other with content + debug volumes - components: FrameGraph { - Viewport { + RenderSurfaceSelector { ClearBuffer { buffers : ClearBuffer.ColorDepthBuffer NoDraw {} } + Viewport { normalizedRect: Qt.rect(0.0, 0.0, 0.5, 1.0) CameraSelector { @@ -119,6 +107,7 @@ W.Window LayerFilter { layers: "content"} } } + Viewport { normalizedRect: Qt.rect(0.5, 0.0, 0.5, 1.0) CameraSelector { @@ -131,103 +120,101 @@ W.Window } } } + }, + InputSettings {} + ] + + CuboidMesh { id: cubeMesh } + + PickableEntity { + id: cube1 + property real scaleFactor: isPressed ? 3.0 : 1.0 + QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 150; easing.type: QQ2.Easing.InQuad } } + + mesh: cubeMesh + scale: cube1.scaleFactor + x: -8 + + ambientColor: "green" + diffuseColor: "green" + + hoverEnabled: true + onPressed: cube1.diffuseColor = "orange" + onReleased: cube1.diffuseColor = "green" + onEntered: cube1.ambientColor = "blue" + onExited: cube1.ambientColor = "green" + onClicked: console.log("Clicked cube 1") + } - CuboidMesh { id: cubeMesh } - - PickableEntity { - id: cube1 - property real scaleFactor: isPressed ? 3.0 : 1.0 - QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 150; easing.type: QQ2.Easing.InQuad } } + PickableEntity { + id: cube2 + mesh: cubeMesh - mesh: cubeMesh - scale: cube1.scaleFactor - x: -8 + ambientColor: cube2.containsMouse ? "blue" : "red" + scale: 1.5 + hoverEnabled: true - ambientColor: "green" - diffuseColor: "green" + onPressed: cube2.diffuseColor = "white" + onReleased: cube2.diffuseColor = "red" - hoverEnabled: true - onPressed: cube1.diffuseColor = "orange" - onReleased: cube1.diffuseColor = "green" - onEntered: cube1.ambientColor = "blue" - onExited: cube1.ambientColor = "green" - onClicked: console.log("Clicked cube 1") - } + property bool toggled: false + onClicked: { + console.log("Clicked cube 2") + toggled = !toggled + sceneItem.width = _view.width * (toggled ? .7 : .5) + sceneItem.height = _view.height * (toggled ? .7 : .5) + console.log(sceneItem.width, sceneItem.height) + } + } + PickableEntity { + id: cube3 + mesh: cubeMesh - PickableEntity { - id: cube2 - mesh: cubeMesh + diffuseColor: "yellow" - ambientColor: cube2.containsMouse ? "blue" : "red" - scale: 1.5 - hoverEnabled: true + property bool toggled: false + property real scaleFactor: toggled ? 5.0 : 0.5 + QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 200; easing.type: QQ2.Easing.InQuad } } - onPressed: cube2.diffuseColor = "white" - onReleased: cube2.diffuseColor = "red" + scale: cube3.scaleFactor + x: 8 - property bool toggled: false - onClicked: { - console.log("Clicked cube 2") - toggled = !toggled - sceneItem.width = _view.width * (toggled ? .7 : .5) - sceneItem.height = _view.height * (toggled ? .7 : .5) - console.log(sceneItem.width, sceneItem.height) - } - } - PickableEntity { - id: cube3 - mesh: cubeMesh + onPressed: cube3.toggled = !cube3.toggled + onEntered: cube3.ambientColor = "black" + onExited: cube3.ambientColor = "white" + onClicked: console.log("Clicked cube 3") + } - diffuseColor: "yellow" + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + hoverEnabled: true + onPressed: cube4.toggled = !cube4.toggled + onClicked: console.log("Clicked cube 4's parent Entity") + onEntered: cube4.material.diffuse = "white" + onExited: cube4.material.diffuse = "blue" + } - property bool toggled: false - property real scaleFactor: toggled ? 5.0 : 0.5 - QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 200; easing.type: QQ2.Easing.InQuad } } + readonly property BoundingVolumeDebug debugVolume: BoundingVolumeDebug { + recursive: true + } - scale: cube3.scaleFactor - x: 8 + components: [objectPicker, debugVolume] - onPressed: cube3.toggled = !cube3.toggled - onEntered: cube3.ambientColor = "black" - onExited: cube3.ambientColor = "white" - onClicked: console.log("Clicked cube 3") + Entity { + id: cube4 + property bool toggled: false + property real scaleFactor: toggled ? 2.0 : 1.0 + QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 200; easing.type: QQ2.Easing.InQuad } } + + readonly property Transform transform: Transform { + scale: cube4.scaleFactor + translation: Qt.vector3d(3, 4, 0) } + readonly property Layer layer: Layer { names: "content" } + readonly property BoundingVolumeDebug debugVolume: BoundingVolumeDebug {} + readonly property PhongMaterial material: PhongMaterial { diffuse: "red" } - Entity { - readonly property ObjectPicker objectPicker: ObjectPicker { - hoverEnabled: true - onPressed: cube4.toggled = !cube4.toggled - onClicked: console.log("Clicked cube 4's parent Entity") - onEntered: cube4.material.diffuse = "white" - onExited: cube4.material.diffuse = "blue" - } - - readonly property BoundingVolumeDebug debugVolume: BoundingVolumeDebug { - recursive: true - } - - components: [objectPicker, debugVolume] - - Entity { - id: cube4 - property bool toggled: false - property real scaleFactor: toggled ? 2.0 : 1.0 - QQ2.Behavior on scaleFactor { QQ2.NumberAnimation { duration: 200; easing.type: QQ2.Easing.InQuad } } - - readonly property Transform transform: Transform { - scale: cube4.scaleFactor - translation: Qt.vector3d(3, 4, 0) - } - readonly property Layer layer: Layer { names: "content" } - readonly property BoundingVolumeDebug debugVolume: BoundingVolumeDebug {} - readonly property PhongMaterial material: PhongMaterial { diffuse: "red" } - - components: [cubeMesh, transform, material, debugVolume, layer] - } - } + components: [cubeMesh, transform, material, debugVolume, layer] } - - QQ2.Behavior on width { QQ2.NumberAnimation { duration: 200 } } - QQ2.Behavior on height { QQ2.NumberAnimation { duration: 200 } } } } diff --git a/examples/qt3d/planets-qml/CloudEffectDS.qml b/examples/qt3d/planets-qml/CloudEffectDS.qml index d863562c7..c0f01d093 100644 --- a/examples/qt3d/planets-qml/CloudEffectDS.qml +++ b/examples/qt3d/planets-qml/CloudEffectDS.qml @@ -77,14 +77,6 @@ Effect { renderPasses: [ RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/gl3/planetD.vert") @@ -107,15 +99,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDS.frag") @@ -138,15 +121,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDS.frag") diff --git a/examples/qt3d/planets-qml/PlanetEffectD.qml b/examples/qt3d/planets-qml/PlanetEffectD.qml index 0d3003f9f..0e556741f 100644 --- a/examples/qt3d/planets-qml/PlanetEffectD.qml +++ b/examples/qt3d/planets-qml/PlanetEffectD.qml @@ -79,20 +79,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/gl3/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/gl3/planetD.frag") @@ -114,20 +100,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetD.frag") @@ -150,20 +122,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetD.frag") diff --git a/examples/qt3d/planets-qml/PlanetEffectDB.qml b/examples/qt3d/planets-qml/PlanetEffectDB.qml index c3c1906be..15e38dd7d 100644 --- a/examples/qt3d/planets-qml/PlanetEffectDB.qml +++ b/examples/qt3d/planets-qml/PlanetEffectDB.qml @@ -79,20 +79,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/gl3/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/gl3/planetDB.frag") @@ -114,20 +100,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDB.frag") @@ -150,20 +122,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDB.frag") diff --git a/examples/qt3d/planets-qml/PlanetEffectDSB.qml b/examples/qt3d/planets-qml/PlanetEffectDSB.qml index 38ca581b8..f45d66dba 100644 --- a/examples/qt3d/planets-qml/PlanetEffectDSB.qml +++ b/examples/qt3d/planets-qml/PlanetEffectDSB.qml @@ -79,15 +79,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/gl3/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/gl3/planetDSB.frag") @@ -109,15 +100,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDSB.frag") @@ -140,15 +122,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetDB.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetDSB.frag") diff --git a/examples/qt3d/planets-qml/PlanetFrameGraph.qml b/examples/qt3d/planets-qml/PlanetFrameGraph.qml index 1495c33d6..963cee7f5 100644 --- a/examples/qt3d/planets-qml/PlanetFrameGraph.qml +++ b/examples/qt3d/planets-qml/PlanetFrameGraph.qml @@ -52,7 +52,7 @@ import Qt3D.Core 2.0 import Qt3D.Render 2.0 -FrameGraph { +RenderSettings { id: root property alias viewCamera: viewCameraSelector.camera diff --git a/examples/qt3d/planets-qml/PlanetShadowEffectD.qml b/examples/qt3d/planets-qml/PlanetShadowEffectD.qml index d4ec48090..d314863c9 100644 --- a/examples/qt3d/planets-qml/PlanetShadowEffectD.qml +++ b/examples/qt3d/planets-qml/PlanetShadowEffectD.qml @@ -93,20 +93,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/gl3/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/gl3/planetD.frag") @@ -128,20 +114,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetD.frag") @@ -164,20 +136,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { - parameterName: "ambient"; - shaderVariableName: "ka"; - bindingType: ParameterMapping.Uniform - }, - ParameterMapping { - parameterName: "specular"; - shaderVariableName: "ks"; - bindingType: ParameterMapping.Uniform - } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es2/planetD.vert") fragmentShaderCode: loadSource("qrc:/shaders/es2/planetD.frag") diff --git a/examples/qt3d/planets-qml/PlanetsMain.qml b/examples/qt3d/planets-qml/PlanetsMain.qml index 3228a20fc..f6e8db05b 100644 --- a/examples/qt3d/planets-qml/PlanetsMain.qml +++ b/examples/qt3d/planets-qml/PlanetsMain.qml @@ -66,7 +66,7 @@ Item { //! [0] Scene3D { anchors.fill: parent - aspects: ["render", "logic"] + aspects: ["render", "logic", "input"] focus: true SolarSystem { id: solarsystem } diff --git a/examples/qt3d/planets-qml/SolarSystem.qml b/examples/qt3d/planets-qml/SolarSystem.qml index 3f77d7ce8..b87d5fe3c 100644 --- a/examples/qt3d/planets-qml/SolarSystem.qml +++ b/examples/qt3d/planets-qml/SolarSystem.qml @@ -51,6 +51,7 @@ import QtQuick 2.0 as QQ2 import Qt3D.Core 2.0 import Qt3D.Render 2.0 +import Qt3D.Input 2.0 import Qt3D.Logic 2.0 import "planets.js" as Planets @@ -145,7 +146,8 @@ Entity { id: framegraph viewCamera: camera lightCamera: light.lightCamera - } + }, + InputSettings {} ] CloudEffectDS { diff --git a/examples/qt3d/plasma/main.qml b/examples/qt3d/plasma/main.qml index d0683165c..0ebf75a45 100644 --- a/examples/qt3d/plasma/main.qml +++ b/examples/qt3d/plasma/main.qml @@ -52,8 +52,9 @@ import Qt3D.Core 2.0 import Qt3D.Render 2.0 Entity { - components: FrameGraph { + components: RenderSettings { ForwardRenderer {} + renderPolicy: RenderSettings.Always } Entity { diff --git a/examples/qt3d/playground-qml/AnimatedDiffuseMaterial.qml b/examples/qt3d/playground-qml/AnimatedDiffuseMaterial.qml index 2ba9ddcb4..880ab0b1a 100644 --- a/examples/qt3d/playground-qml/AnimatedDiffuseMaterial.qml +++ b/examples/qt3d/playground-qml/AnimatedDiffuseMaterial.qml @@ -161,13 +161,6 @@ Material { RenderPass { annotations: Annotation {name: "Name"; value: "ColorMaterial"} - bindings: [ // Add only the bindings needed for a shader - ParameterMapping {parameterName: "ambient"; shaderVariableName: "ka"; bindingType: ParameterMapping.Uniform}, - ParameterMapping {parameterName: "diffuse"; shaderVariableName: "kd"; bindingType: ParameterMapping.Uniform}, - ParameterMapping {parameterName: "lightPos"; shaderVariableName: "lightPosition"; bindingType: ParameterMapping.Uniform}, - ParameterMapping {parameterName: "lightIntensity"; shaderVariableName: "lightIntensity"; bindingType: ParameterMapping.Uniform} - ] - shaderProgram: ShaderProgram { id: diffuseShader vertexShaderCode: loadSource("qrc:/shaders/diffuse.vert") @@ -177,7 +170,6 @@ Material { // TEXTURE PASS + UBO RenderPass { annotations : [Annotation {name : "Name"; value : "Texture" }] - bindings: ParameterMapping {parameterName: "texture"; shaderVariableName: "tex"; bindingType: ParameterMapping.Uniform} renderStates : [BlendEquationArguments {sourceRgb: BlendEquationArguments.One; destinationRgb : BlendEquationArguments.One}, BlendEquation {blendFunction: BlendEquation.Add}, diff --git a/examples/qt3d/playground-qml/ComplexTechnique.qml b/examples/qt3d/playground-qml/ComplexTechnique.qml index 87e6238dd..094ae27c4 100644 --- a/examples/qt3d/playground-qml/ComplexTechnique.qml +++ b/examples/qt3d/playground-qml/ComplexTechnique.qml @@ -60,11 +60,6 @@ Technique { renderPasses : [ RenderPass { annotations : [Annotation {name : "Name"; value : "TextureLighting" }] - bindings : [ // Add only the bindings needed for a shader - ParameterMapping {parameterName: "vertexTexCoord"; shaderVariableName: "texCoord0"; bindingType: ParameterMapping.Attribute}, - ParameterMapping {parameterName: "tex"; shaderVariableName: "texture"; bindingType: ParameterMapping.Uniform}, - ParameterMapping {parameterName: "modelViewProjection"; shaderVariableName: "customMvp"; bindingType: ParameterMapping.StandardUniform} - ] shaderProgram : ShaderProgram { id : textureShaderLighting diff --git a/examples/qt3d/playground-qml/main.qml b/examples/qt3d/playground-qml/main.qml index 0ab5942c1..b6534aea4 100644 --- a/examples/qt3d/playground-qml/main.qml +++ b/examples/qt3d/playground-qml/main.qml @@ -58,7 +58,7 @@ Entity { property bool detailCamera: true - FrameGraph { + RenderSettings { id : external_forward_renderer activeFrameGraph: MyForwardRenderer { mainCamera: mainView.camera diff --git a/examples/qt3d/qgltf/main.qml b/examples/qt3d/qgltf/main.qml index da47f3bbd..c0bedbc8a 100644 --- a/examples/qt3d/qgltf/main.qml +++ b/examples/qt3d/qgltf/main.qml @@ -71,12 +71,14 @@ Entity { controlledCamera: camera } - components: FrameGraph { - activeFrameGraph: ForwardRenderer { - clearColor: Qt.rgba(0, 0.5, 1, 1) - camera: camera + components: [ + RendererSettings { + activeFrameGraph: ForwardRenderer { + clearColor: Qt.rgba(0, 0.5, 1, 1) + camera: camera + } } - } + ] Scene { } diff --git a/examples/qt3d/scene3d-loader/AnimatedEntity.qml b/examples/qt3d/scene3d-loader/AnimatedEntity.qml index bf0a16fc4..faf459157 100644 --- a/examples/qt3d/scene3d-loader/AnimatedEntity.qml +++ b/examples/qt3d/scene3d-loader/AnimatedEntity.qml @@ -72,7 +72,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: Viewport { id: viewport normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0) // From Top Left diff --git a/examples/qt3d/scene3d-loader/Scene2.qml b/examples/qt3d/scene3d-loader/Scene2.qml index 62c92e9a0..287e80169 100644 --- a/examples/qt3d/scene3d-loader/Scene2.qml +++ b/examples/qt3d/scene3d-loader/Scene2.qml @@ -72,15 +72,15 @@ Scene3D { viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) } - FrameGraph { - id : external_forward_renderer + RenderSettings { + id : renderSettings activeFrameGraph : ForwardRenderer { camera: camera clearColor: "black" } } - components: [external_forward_renderer] + components: [renderSettings] TorusMesh { id: mesh diff --git a/examples/qt3d/scene3d/AnimatedEntity.qml b/examples/qt3d/scene3d/AnimatedEntity.qml index 539b5bf05..f95466cc5 100644 --- a/examples/qt3d/scene3d/AnimatedEntity.qml +++ b/examples/qt3d/scene3d/AnimatedEntity.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { camera: camera clearColor: "transparent" diff --git a/examples/qt3d/shadow-map-qml/AdsEffect.qml b/examples/qt3d/shadow-map-qml/AdsEffect.qml index 4f6910f63..01ca38639 100644 --- a/examples/qt3d/shadow-map-qml/AdsEffect.qml +++ b/examples/qt3d/shadow-map-qml/AdsEffect.qml @@ -100,17 +100,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - // The bindings property allows us to map from names of parameters (uniforms or vertex attributes) - // within a shader to more friendly names in QML. By default the parameter names are exposed from - // the shader so we only need to add add mappings where the names differ. E.g. here we map from the - // ka uniform name in the shader to a property called ambient - bindings: [ - // Uniforms (those provided by the user) - ParameterMapping { parameterName: "ambient"; shaderVariableName: "ka"; bindingType: ParameterMapping.Uniform }, - ParameterMapping { parameterName: "diffuse"; shaderVariableName: "kd"; bindingType: ParameterMapping.Uniform }, - ParameterMapping { parameterName: "specular"; shaderVariableName: "ks"; bindingType: ParameterMapping.Uniform } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/ads.vert") fragmentShaderCode: loadSource("qrc:/shaders/ads.frag") @@ -145,12 +134,6 @@ Effect { RenderPass { annotations: [ Annotation { name : "pass"; value : "forward" } ] - bindings: [ - ParameterMapping { parameterName: "ambient"; shaderVariableName: "ka"; bindingType: ParameterMapping.Uniform }, - ParameterMapping { parameterName: "diffuse"; shaderVariableName: "kd"; bindingType: ParameterMapping.Uniform }, - ParameterMapping { parameterName: "specular"; shaderVariableName: "ks"; bindingType: ParameterMapping.Uniform } - ] - shaderProgram: ShaderProgram { vertexShaderCode: loadSource("qrc:/shaders/es3/ads.vert") fragmentShaderCode: loadSource("qrc:/shaders/es3/ads.frag") diff --git a/examples/qt3d/shadow-map-qml/ShadowMapFrameGraph.qml b/examples/qt3d/shadow-map-qml/ShadowMapFrameGraph.qml index 7183b4e3b..956f19ef6 100644 --- a/examples/qt3d/shadow-map-qml/ShadowMapFrameGraph.qml +++ b/examples/qt3d/shadow-map-qml/ShadowMapFrameGraph.qml @@ -52,7 +52,7 @@ import QtQuick 2.2 as QQ2 import Qt3D.Core 2.0 import Qt3D.Render 2.0 -FrameGraph { +RenderSettings { id: root property alias viewCamera: viewCameraSelector.camera @@ -63,52 +63,54 @@ FrameGraph { normalizedRect: Qt.rect(0.0, 0.0, 1.0, 1.0) clearColor: Qt.rgba(0.0, 0.4, 0.7, 1.0) - RenderPassFilter { - includes: [ Annotation { name: "pass"; value: "shadowmap" } ] + RenderSurfaceSelector { + RenderPassFilter { + includes: [ Annotation { name: "pass"; value: "shadowmap" } ] - RenderTargetSelector { - target: RenderTarget { - outputs: [ - RenderTargetOutput { - objectName: "depth" - attachmentPoint: RenderTargetOutput.Depth - texture: Texture2D { - id: depthTexture - width: 1024 - height: 1024 - format: Texture.DepthFormat - generateMipMaps: false - magnificationFilter: Texture.Linear - minificationFilter: Texture.Linear - wrapMode { - x: WrapMode.ClampToEdge - y: WrapMode.ClampToEdge + RenderTargetSelector { + target: RenderTarget { + outputs: [ + RenderTargetOutput { + objectName: "depth" + attachmentPoint: RenderTargetOutput.Depth + texture: Texture2D { + id: depthTexture + width: 1024 + height: 1024 + format: Texture.DepthFormat + generateMipMaps: false + magnificationFilter: Texture.Linear + minificationFilter: Texture.Linear + wrapMode { + x: WrapMode.ClampToEdge + y: WrapMode.ClampToEdge + } + comparisonFunction: Texture.CompareLessEqual + comparisonMode: Texture.CompareRefToTexture } - comparisonFunction: Texture.CompareLessEqual - comparisonMode: Texture.CompareRefToTexture } - } - ] - } + ] + } - ClearBuffer { - buffers: ClearBuffer.DepthBuffer + ClearBuffer { + buffers: ClearBuffer.DepthBuffer - CameraSelector { - id: lightCameraSelector + CameraSelector { + id: lightCameraSelector + } } } } - } - RenderPassFilter { - includes: [ Annotation { name: "pass"; value: "forward" } ] + RenderPassFilter { + includes: [ Annotation { name: "pass"; value: "forward" } ] - ClearBuffer { - buffers: ClearBuffer.ColorDepthBuffer + ClearBuffer { + buffers: ClearBuffer.ColorDepthBuffer - CameraSelector { - id: viewCameraSelector + CameraSelector { + id: viewCameraSelector + } } } } diff --git a/examples/qt3d/shadow-map-qml/doc/src/shadow-map-qml.qdoc b/examples/qt3d/shadow-map-qml/doc/src/shadow-map-qml.qdoc index d9076e0f0..df0966b24 100644 --- a/examples/qt3d/shadow-map-qml/doc/src/shadow-map-qml.qdoc +++ b/examples/qt3d/shadow-map-qml/doc/src/shadow-map-qml.qdoc @@ -121,7 +121,7 @@ \skipto import QtQuick \printuntil Render 2.0 - The code defines a \l FrameGraph entity that has a tree of entities as the + The code defines a \l RendererSettings entity that has a tree of entities as the active framegraph: \printuntil clearColor diff --git a/examples/qt3d/simple-qml/main.qml b/examples/qt3d/simple-qml/main.qml index 5c3d2127f..04bdee4b5 100644 --- a/examples/qt3d/simple-qml/main.qml +++ b/examples/qt3d/simple-qml/main.qml @@ -73,7 +73,7 @@ Entity { } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/simple-shaders-qml/main.qml b/examples/qt3d/simple-shaders-qml/main.qml index 97e487784..17c673215 100644 --- a/examples/qt3d/simple-shaders-qml/main.qml +++ b/examples/qt3d/simple-shaders-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/skybox/main.qml b/examples/qt3d/skybox/main.qml index 4db1f5510..34206c770 100644 --- a/examples/qt3d/skybox/main.qml +++ b/examples/qt3d/skybox/main.qml @@ -56,7 +56,7 @@ Entity { id: root components: [ - FrameGraph { + RenderSettings { ForwardRenderer { camera: basicCamera clearColor: "black" diff --git a/examples/qt3d/tessellation-modes/main.qml b/examples/qt3d/tessellation-modes/main.qml index 17e9392e4..c8d20cb88 100644 --- a/examples/qt3d/tessellation-modes/main.qml +++ b/examples/qt3d/tessellation-modes/main.qml @@ -60,7 +60,7 @@ Entity { // Use the renderer configuration specified in ForwardRenderer.qml // and render from the mainCamera components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { id: renderer camera: mainCamera diff --git a/examples/qt3d/torus-qml/main.qml b/examples/qt3d/torus-qml/main.qml index 9e3a8f073..b52c03f7c 100644 --- a/examples/qt3d/torus-qml/main.qml +++ b/examples/qt3d/torus-qml/main.qml @@ -69,8 +69,8 @@ Entity { FirstPersonCameraController { camera: camera } - FrameGraph { - id : external_forward_renderer + RenderSettings { + id : renderSettings activeFrameGraph : ForwardRenderer { camera: camera clearColor: "lightsteelblue" @@ -80,7 +80,7 @@ Entity { // Event Source will be set by the Qt3DQuickWindow InputSettings { id: inputSettings } - components: [external_forward_renderer, inputSettings] + components: [renderSettings, inputSettings] TorusMesh { id: mesh diff --git a/examples/qt3d/transforms-qml/main.qml b/examples/qt3d/transforms-qml/main.qml index 2ceb7f9b6..2a8c97604 100644 --- a/examples/qt3d/transforms-qml/main.qml +++ b/examples/qt3d/transforms-qml/main.qml @@ -55,7 +55,7 @@ Entity { id: sceneRoot components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { clearColor: Qt.rgba(0, 0.5, 1, 1) camera: camera diff --git a/examples/qt3d/transparency-qml-scene3d/Scene.qml b/examples/qt3d/transparency-qml-scene3d/Scene.qml index 6a9eb36b7..759846b68 100644 --- a/examples/qt3d/transparency-qml-scene3d/Scene.qml +++ b/examples/qt3d/transparency-qml-scene3d/Scene.qml @@ -69,7 +69,12 @@ Entity { FirstPersonCameraController { camera: camera } - components: FrameGraph { ForwardRenderer{ camera: camera; clearColor: Qt.rgba(0.0, 0.5, 1, 1) } } + components: RenderSettings { + ForwardRenderer{ + camera: camera + clearColor: Qt.rgba(0.0, 0.5, 1, 1) + } + } TorusMesh { id: torusMesh diff --git a/examples/qt3d/transparency-qml/main.qml b/examples/qt3d/transparency-qml/main.qml index 61792cc0f..7ede0390d 100644 --- a/examples/qt3d/transparency-qml/main.qml +++ b/examples/qt3d/transparency-qml/main.qml @@ -71,7 +71,7 @@ Entity { FirstPersonCameraController { camera: camera } components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer{ camera: camera clearColor: Qt.rgba(0.0, 0.5, 1, 1) diff --git a/examples/qt3d/wave/main.qml b/examples/qt3d/wave/main.qml index 403173039..1162db413 100644 --- a/examples/qt3d/wave/main.qml +++ b/examples/qt3d/wave/main.qml @@ -72,14 +72,14 @@ Entity { } } - FrameGraph { - id: frameGraph + RenderSettings { + id: renderSettings activeFrameGraph: WaveForwardRenderer { camera: mainCamera } } - components: [ frameGraph, input, inputSettings ] + components: [ renderSettings, input, inputSettings ] // Event Source will be set by the Qt3DQuickWindow InputSettings { id: inputSettings } diff --git a/examples/qt3d/wireframe/doc/src/wireframe.qdoc b/examples/qt3d/wireframe/doc/src/wireframe.qdoc index 318f3f165..4f8566ed0 100644 --- a/examples/qt3d/wireframe/doc/src/wireframe.qdoc +++ b/examples/qt3d/wireframe/doc/src/wireframe.qdoc @@ -131,7 +131,7 @@ \printuntil id - The FrameGraph component uses the ForwardRenderer type to completely + The RendererSettings component uses the ForwardRenderer type to completely configure the renderer without touching any C++ code: \printuntil ] diff --git a/examples/qt3d/wireframe/main.qml b/examples/qt3d/wireframe/main.qml index ae10a11ec..7c281a360 100644 --- a/examples/qt3d/wireframe/main.qml +++ b/examples/qt3d/wireframe/main.qml @@ -58,7 +58,7 @@ Entity { // Render from the mainCamera components: [ - FrameGraph { + RenderSettings { activeFrameGraph: ForwardRenderer { id: renderer camera: mainCamera -- cgit v1.2.3