diff --git a/tests/auto/quick3d_lancelot/data/Ignore b/tests/auto/quick3d_lancelot/data/Ignore index ad93e3f4f743472b6ddb7c95070e5525537aa6f6..38cc43f9c2329593d1f79cbe478476f8305e5fca 100644 --- a/tests/auto/quick3d_lancelot/data/Ignore +++ b/tests/auto/quick3d_lancelot/data/Ignore @@ -15,3 +15,4 @@ lighting/materials/Material.qml # Dynamic component quick/Component.qml +defaultmaterial/BlendComponent.qml diff --git a/tests/auto/quick3d_lancelot/data/defaultmaterial/BlendComponent.qml b/tests/auto/quick3d_lancelot/data/defaultmaterial/BlendComponent.qml new file mode 100644 index 0000000000000000000000000000000000000000..481e911e4f829cfcf2504ea1476f7382bba6a33d --- /dev/null +++ b/tests/auto/quick3d_lancelot/data/defaultmaterial/BlendComponent.qml @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the tests of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick3D 1.15 +import QtQuick 2.15 + +Node { + id: componentRoot + + property var blendMode: DefaultMaterial.Screen + + Model { + position: Qt.vector3d(-10, -10, 0) + scale: Qt.vector3d(2,2,0.05) + opacity: 0.5 + source: "#Cube" + materials: DefaultMaterial { + blendMode: componentRoot.blendMode + diffuseColor: Qt.rgba(1.0, 0.0, 0.0, 1) + } + } + Model { + position: Qt.vector3d(10, 10, 10) + scale: Qt.vector3d(2,2,0.05) + opacity: 0.5 + source: "#Cube" + materials: DefaultMaterial { + blendMode: componentRoot.blendMode + diffuseColor: Qt.rgba(0.0, 1.0, 0.0, 1) + } + } + Model { + id: cone + position: Qt.vector3d(-30, 30, 50) + scale: Qt.vector3d(1,1,1) + source: "#Cone" + materials: DefaultMaterial { + blendMode: componentRoot.blendMode + diffuseColor: Qt.rgba(0.0, 0.0, 1.0, 1) + } + } + Model { + id: cylinder + position: Qt.vector3d(30, -30, 100) + scale: Qt.vector3d(1,1,1) + opacity: 0.5 + source: "#Cylinder" + materials: DefaultMaterial { + blendMode: componentRoot.blendMode + diffuseColor: Qt.rgba(0.0, 1.0, 1.0, 1) + } + } +} diff --git a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_normal.qml b/tests/auto/quick3d_lancelot/data/defaultmaterial/BlendModes.qml similarity index 51% rename from tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_normal.qml rename to tests/auto/quick3d_lancelot/data/defaultmaterial/BlendModes.qml index d2c04d8da318929d338f3b98ec6a3f37aa418cd8..9727d441543130541348d8cdde21ceed0689e827 100644 --- a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_normal.qml +++ b/tests/auto/quick3d_lancelot/data/defaultmaterial/BlendModes.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the tests of the Qt Toolkit. @@ -52,19 +52,27 @@ import QtQuick3D 1.15 import QtQuick 2.15 Rectangle { - id: defaultmaterial_normal + id: defaultmaterial_screen + + property var blendModesModel: [ + DefaultMaterial.SourceOver, + DefaultMaterial.Screen, + DefaultMaterial.Multiply, + DefaultMaterial.Overlay, + DefaultMaterial.ColorBurn, + DefaultMaterial.ColorDodge + ] + property int itemsWidth: 800 + property int itemsHeight: 400 + property int modelSeparation: itemsWidth / (blendModesModel.length - 1) + width: 800 height: 480 - color: Qt.rgba(0.929412, 0.956863, 0.34902, 1) + color: "white" View3D { id: layer - anchors.left: parent.left - anchors.leftMargin: parent.width * 0 - width: parent.width * 1 - anchors.top: parent.top - anchors.topMargin: parent.height * 0 - height: parent.height * 1 + anchors.fill: parent environment: SceneEnvironment { clearColor: Qt.rgba(0, 0, 0, 1) aoDither: true @@ -73,84 +81,37 @@ Rectangle { PerspectiveCamera { id: camera - position: Qt.vector3d(0, -40, 600) - rotation: Quaternion.fromEulerAngles(10, 0, -10) + position: Qt.vector3d(0, 0, 800) clipFar: 5000 } DirectionalLight { - id: light - shadowFactor: 10 - } - - Model { - id: sphere - position: Qt.vector3d(-479.719, 208.826, -220.558) - rotation: Quaternion.fromEulerAngles(20.8358, -34.3489, -62.5045) - opacity: 0.5 - source: "#Sphere" - - - - DefaultMaterial { - id: material_001 - lighting: DefaultMaterial.FragmentLighting - diffuseColor: Qt.rgba(0.341176, 0.258824, 0.8, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.8 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_001] } - Model { - id: cylinder - position: Qt.vector3d(211.66, 54.7973, 123.049) - rotation: Quaternion.fromEulerAngles(29.16, -22.9975, -41.0578) - scale: Qt.vector3d(0.89855, 0.969231, 1) - opacity: 0.5 - source: "#Cylinder" - - - - DefaultMaterial { - id: material_002 - lighting: DefaultMaterial.FragmentLighting - diffuseColor: Qt.rgba(0.215686, 0.815686, 0.756863, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_002] - } - - Model { - id: cone - rotation: Quaternion.fromEulerAngles(-47.4815, 2.69907, 11.9215) - source: "#Cone" - - - - DefaultMaterial { - id: material_003 - lighting: DefaultMaterial.FragmentLighting - diffuseColor: Qt.rgba(0.890196, 0.341176, 0.615686, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.5 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 + Repeater3D { + model: blendModesModel.length + Node { + x: -itemsWidth / 2 + index * modelSeparation + y: -itemsHeight / 2 + index % 2 * itemsHeight + BlendComponent { + id: modeComponent + blendMode: blendModesModel[index] + } + Node { + z: 200 + Rectangle { + color: "white" + width: textItem.width + 20 + height: textItem.height + 10 + } + Text { + id: textItem + font.pixelSize: 20 + color: "black" + text: "blendMode:" + modeComponent.blendMode + } + } } - materials: [material_003] } } } diff --git a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_multiply.qml b/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_multiply.qml deleted file mode 100644 index f1c906b6cb5bdfc16112a50c3ff2ea905fb1294d..0000000000000000000000000000000000000000 --- a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_multiply.qml +++ /dev/null @@ -1,159 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tests of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick3D 1.15 -import QtQuick 2.15 - -Rectangle { - id: defaultmaterial_multiply - width: 800 - height: 480 - color: Qt.rgba(0.929412, 0.956863, 0.34902, 1) - - View3D { - id: layer - anchors.left: parent.left - anchors.leftMargin: parent.width * 0 - width: parent.width * 1 - anchors.top: parent.top - anchors.topMargin: parent.height * 0 - height: parent.height * 1 - environment: SceneEnvironment { - clearColor: Qt.rgba(0, 0, 0, 1) - aoDither: true - depthPrePassEnabled: true - } - - PerspectiveCamera { - id: camera - position: Qt.vector3d(0, -40, 600) - rotation: Quaternion.fromEulerAngles(10, 0, -10) - clipFar: 5000 - } - - DirectionalLight { - id: light - shadowFactor: 10 - } - - Model { - id: sphere - position: Qt.vector3d(-479.719, 208.826, -220.558) - rotation: Quaternion.fromEulerAngles(20.8358, -34.3489, -62.5045) - opacity: 0.5 - source: "#Sphere" - - - - DefaultMaterial { - id: material_001 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Multiply - diffuseColor: Qt.rgba(0.341176, 0.258824, 0.8, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.8 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_001] - } - - Model { - id: cylinder - position: Qt.vector3d(211.66, 54.7973, 123.049) - rotation: Quaternion.fromEulerAngles(29.16, -22.9975, -41.0578) - scale: Qt.vector3d(0.89855, 0.969231, 1) - opacity: 0.5 - source: "#Cylinder" - - - - DefaultMaterial { - id: material_002 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Multiply - diffuseColor: Qt.rgba(0.215686, 0.815686, 0.756863, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_002] - } - - Model { - id: cone - rotation: Quaternion.fromEulerAngles(47.4815, -2.69907, 11.9215) - source: "#Cone" - - - - DefaultMaterial { - id: material_003 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Multiply - diffuseColor: Qt.rgba(0.890196, 0.341176, 0.615686, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.5 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_003] - } - } -} diff --git a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_screen.qml b/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_screen.qml deleted file mode 100644 index ad0424e0b4c1f0c35e02964e09695610c807e05f..0000000000000000000000000000000000000000 --- a/tests/auto/quick3d_lancelot/data/defaultmaterial/Defaultmaterial_screen.qml +++ /dev/null @@ -1,159 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tests of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick3D 1.15 -import QtQuick 2.15 - -Rectangle { - id: defaultmaterial_screen - width: 800 - height: 480 - color: Qt.rgba(0.929412, 0.956863, 0.34902, 1) - - View3D { - id: layer - anchors.left: parent.left - anchors.leftMargin: parent.width * 0 - width: parent.width * 1 - anchors.top: parent.top - anchors.topMargin: parent.height * 0 - height: parent.height * 1 - environment: SceneEnvironment { - clearColor: Qt.rgba(0, 0, 0, 1) - aoDither: true - depthPrePassEnabled: true - } - - PerspectiveCamera { - id: camera - position: Qt.vector3d(0, -40, 600) - rotation: Quaternion.fromEulerAngles(10, 0, -10) - clipFar: 5000 - } - - DirectionalLight { - id: light - shadowFactor: 10 - } - - Model { - id: sphere - position: Qt.vector3d(-479.719, 208.826, -220.558) - rotation: Quaternion.fromEulerAngles(20.8358, -34.3489, -62.5045) - opacity: 0.5 - source: "#Sphere" - - - - DefaultMaterial { - id: material_001 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Screen - diffuseColor: Qt.rgba(0.341176, 0.258824, 0.8, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.8 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_001] - } - - Model { - id: cylinder - position: Qt.vector3d(211.66, 54.7973, 123.049) - rotation: Quaternion.fromEulerAngles(29.16, -22.9975, -41.0578) - scale: Qt.vector3d(0.89855, 0.969231, 1) - opacity: 0.5 - source: "#Cylinder" - - - - DefaultMaterial { - id: material_002 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Screen - diffuseColor: Qt.rgba(0.215686, 0.815686, 0.756863, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_002] - } - - Model { - id: cone - rotation: Quaternion.fromEulerAngles(-47.4815, 2.69907, 11.9215) - source: "#Cone" - - - - DefaultMaterial { - id: material_003 - lighting: DefaultMaterial.FragmentLighting - blendMode: DefaultMaterial.Screen - diffuseColor: Qt.rgba(0.890196, 0.341176, 0.615686, 1) - indexOfRefraction: 1.5 - specularAmount: 0 - specularRoughness: 0 - opacity: 0.5 - bumpAmount: 0.5 - translucentFalloff: 1 - displacementAmount: 20 - } - materials: [material_003] - } - } -}