Revision control
++ // Copyright (C) 2019 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick3D
++ import QtQuick
++
++ Rectangle {
++ id: ambient_occlusion
++ width: 800
++ height: 480
++ color: Qt.rgba(1, 1, 1, 1)
++
++ Node {
++ id: scene
++ PerspectiveCamera {
++ position: Qt.vector3d(0, 0, 1100)
++ clipFar: 5000
++ }
++
++ DirectionalLight {
++ id: light
++ shadowFactor: 10
++ }
++
++ Model {
++ id: sphere
++ position: Qt.vector3d(-354.989, 135.238, 0)
++ source: "#Sphere"
++
++ DefaultMaterial {
++ id: default_
++ lighting: DefaultMaterial.FragmentLighting
++ indexOfRefraction: 1.5
++ specularAmount: 0
++ specularRoughness: 0
++ bumpAmount: 0.5
++ translucentFalloff: 1
++ }
++ materials: [default_]
++ }
++
++ Model {
++ id: cone
++ position: Qt.vector3d(-365.912, -248.222, 0)
++ scale: Qt.vector3d(2.89542, 3.13161, 1)
++ source: "#Cone"
++
++ DefaultMaterial {
++ id: default_002
++ lighting: DefaultMaterial.FragmentLighting
++ indexOfRefraction: 1.5
++ specularAmount: 0
++ specularRoughness: 0
++ bumpAmount: 0.5
++ translucentFalloff: 1
++ }
++ materials: [default_002]
++ }
++
++ Model {
++ id: cube
++ position: Qt.vector3d(349.297, -228.053, 0)
++ rotation: Quaternion.fromEulerAngles(28.0299, 33.3145, 17.1637)
++ scale: Qt.vector3d(2.00606, 1, 1)
++ source: "#Cube"
++
++ DefaultMaterial {
++ id: default_003
++ lighting: DefaultMaterial.FragmentLighting
++ indexOfRefraction: 1.5
++ specularAmount: 0
++ specularRoughness: 0
++ bumpAmount: 0.5
++ translucentFalloff: 1
++ }
++ materials: [default_003]
++ }
++
++ Node {
++ id: barrel
++ position: Qt.vector3d(-292.216, -304.023, -434)
++ rotation: Quaternion.fromEulerAngles(0, 0, -41.5)
++ scale: Qt.vector3d(10, 10, 10)
++
++ Model {
++ id: barrel_1
++ rotation: Quaternion.fromEulerAngles(-90, 0, 0)
++ scale: Qt.vector3d(100, 100, 100)
++ source: "../shared/models/barrel/meshes/Barrel.mesh"
++
++ DefaultMaterial {
++ id: barrel_001
++ lighting: DefaultMaterial.FragmentLighting
++ diffuseColor: Qt.rgba(0.639994, 0.639994, 0.639994, 1)
++ indexOfRefraction: 1.5
++ specularAmount: 0
++ specularRoughness: 9.607839584350586
++ bumpAmount: 0.5
++ translucentFalloff: 1
++ }
++ materials: [barrel_001]
++ }
++ }
++
++ Model {
++ id: cylinder
++ position: Qt.vector3d(255.743, -27.1591, 185)
++ scale: Qt.vector3d(1.5, 1.5, 1.5)
++ source: "#Cylinder"
++
++ DefaultMaterial {
++ id: default_001
++ lighting: DefaultMaterial.FragmentLighting
++ indexOfRefraction: 1.5
++ specularAmount: 0
++ specularRoughness: 0
++ opacity: 0.76
++ bumpAmount: 0.5
++ translucentFalloff: 1
++ }
++ materials: [default_001]
++ }
++ }
++
++ View3D {
++ id: leftView
++ anchors.left: parent.left
++ width: parent.width * 0.5
++ anchors.top: parent.top
++ height: parent.height
++ importScene: scene
++ environment: SceneEnvironment {
++ clearColor: Qt.rgba(0, 0, 0, 1)
++ aoStrength: 25 * workaround
++ aoDither: true
++ aoBias: 0.5
++ aoEnabled: true
++ depthPrePassEnabled: true
++
++ // The directGL code does not enable SSAO on the first couple of frames
++ // This animation makes sure we get past that point. Lancelot will wait
++ // for the output to stabilize.
++ property int workaround: 0
++ NumberAnimation on workaround {
++ from: 0
++ to: 3
++ loops: 1
++ duration: 300
++ }
++ }
++ }
++
++ View3D {
++ id: rightView
++ anchors.left: leftView.right
++ width: parent.width * 0.5
++ anchors.top: parent.top
++ height: parent.height
++ importScene: scene
++ environment: SceneEnvironment {
++ clearColor: Qt.rgba(0, 0, 0, 1)
++ aoEnabled: false
++ depthPrePassEnabled: true
++ }
++ }
++ }