mirror of https://github.com/qt/qt3d.git
Removing defunct examples - Playground-qml
Cleaning up Qt3D examples: Playground-qml Change-Id: I3b4b248ebb822a5d1bbc5da379eca57a62bbe96d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
This commit is contained in:
parent
d8d17e922c
commit
65b4537af9
|
|
@ -1,110 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
|
|
||||||
// For Qt.vector3d() and friends. For some reason this is provided by
|
|
||||||
// QQuickValueTypeProvider in QtQuick rather than the default value
|
|
||||||
// type provider in QtQml. So we will need to replicate this in Qt3D
|
|
||||||
// for the types that we wish to support. Otherwise we'll have to import
|
|
||||||
// QtQuick 2.1 all over the place.
|
|
||||||
import QtQuick 2.1
|
|
||||||
|
|
||||||
Effect {
|
|
||||||
// TODO add another effect that uses texture for diffuse
|
|
||||||
//property Texture2D diffuseTexture
|
|
||||||
property vector3d ambient: Qt.vector3d( 0.1, 0.1, 0.1 )
|
|
||||||
property vector3d diffuse: Qt.vector3d( 0.7, 0.7, 0.7 )
|
|
||||||
property vector3d specular: Qt.vector3d( 0.2, 0.2, 0.2 )
|
|
||||||
property real shininess: 10.0
|
|
||||||
|
|
||||||
techniques: [
|
|
||||||
Technique {
|
|
||||||
criteria : [
|
|
||||||
TechniqueCriterion { criterionType : TechniqueCriterion.RenderingStyle; criterionValue : "forward"}
|
|
||||||
]
|
|
||||||
|
|
||||||
renderPasses: [
|
|
||||||
RenderPass {
|
|
||||||
name: "zFill"
|
|
||||||
shaderProgram: zFillProgram
|
|
||||||
//renderStates: [ DepthState { depthTest: true; } ]
|
|
||||||
},
|
|
||||||
|
|
||||||
RenderPass {
|
|
||||||
name: "lighting"
|
|
||||||
shaderProgram: adsProgram
|
|
||||||
//renderStates: [ DepthState { depthWrites: true; depthTest: true; } ]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
ShaderProgram {
|
|
||||||
id: zFillProgram
|
|
||||||
objectName: "zFillProgram"
|
|
||||||
vertexSourceFile: ":/shaders/zfill.vert"
|
|
||||||
fragmentSourceFile: ":/shaders/zfill.frag"
|
|
||||||
}
|
|
||||||
|
|
||||||
ShaderProgram {
|
|
||||||
id: adsProgram
|
|
||||||
objectName: "adsProgram"
|
|
||||||
vertexSourceFile: ":/shaders/phong.vert"
|
|
||||||
fragmentSourceFile: ":/shaders/phong.frag"
|
|
||||||
|
|
||||||
// // How to handle uniforms? Especially arrays and structs
|
|
||||||
// uniforms: [
|
|
||||||
// Uniform { name: "light[0].position:"; value: Qt.vector3d( 0.0, 0.0, 0.0 ) },
|
|
||||||
// Uniform { name: "light[0].intensity:"; value: Qt.vector3d( 1.0, 1.0, 1.0 ) }
|
|
||||||
// ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,278 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
import QtQuick 2.2 as QQ2
|
|
||||||
|
|
||||||
Material {
|
|
||||||
id: material
|
|
||||||
|
|
||||||
property color ambientColor: "#cc2200";
|
|
||||||
property color diffuseColor: "pink"
|
|
||||||
property bool enabled: true
|
|
||||||
property Texture2D texture;
|
|
||||||
|
|
||||||
QQ2.Timer {
|
|
||||||
id: testTimer
|
|
||||||
interval: 5000
|
|
||||||
repeat: true
|
|
||||||
running: true
|
|
||||||
property bool even: true
|
|
||||||
onTriggered: {
|
|
||||||
console.log("Triggered");
|
|
||||||
even = !even
|
|
||||||
pointLightBlockShaderData.u.values[0].t = (even) ? null : shaderDataT
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ShaderData {
|
|
||||||
id: shaderDataT
|
|
||||||
property real a: testTimer.even ? 1.0 : 0.0
|
|
||||||
property real b: 5.0
|
|
||||||
property var r: [Qt.vector3d(1, 1, 1), Qt.vector3d(2, 2, 2), Qt.vector3d(3, 3, 3), Qt.vector3d(4, 4, 4)]
|
|
||||||
}
|
|
||||||
|
|
||||||
parameters: [
|
|
||||||
Parameter { name: "ambient"; value: Qt.vector3d(material.ambientColor.r, material.ambientColor.g, material.ambientColor.b) },
|
|
||||||
Parameter { name: "lightIntensity"; value: Qt.vector3d(0.5, 0.5, 0.5)},
|
|
||||||
Parameter { name: "texture"; value: texture},
|
|
||||||
Parameter { name: "PointLightBlock"; value: ShaderData {
|
|
||||||
id: pointLightBlockShaderData
|
|
||||||
property color colorAmbient;
|
|
||||||
property color colorDiffuse;
|
|
||||||
property color colorSpecular;
|
|
||||||
property real shininess: 1.0;
|
|
||||||
property vector3d position: Qt.vector3d(1.0, 1.0, 0.0)
|
|
||||||
property vector3d intensity: Qt.vector3d(0.7, 0.8, 0.6);
|
|
||||||
|
|
||||||
property ShaderData s: ShaderData {
|
|
||||||
property real innerV: 3.0
|
|
||||||
property var innerVec3Array: [Qt.vector3d(1, 1, 1), Qt.vector3d(2, 2, 2), Qt.vector3d(3, 3, 3), Qt.vector3d(4, 4, 4)]
|
|
||||||
}
|
|
||||||
|
|
||||||
property ShaderDataArray u: ShaderDataArray {
|
|
||||||
id: array
|
|
||||||
ShaderData {
|
|
||||||
property real innerV: 2.0
|
|
||||||
property vector3d innerVec3
|
|
||||||
property var innerVec3Array: [Qt.vector3d(1, 1, 1), Qt.vector3d(2, 2, 2), Qt.vector3d(3, 3, 3), Qt.vector3d(4, 4, 4)]
|
|
||||||
property ShaderData t: shaderDataT
|
|
||||||
property ShaderDataArray c: ShaderDataArray {
|
|
||||||
ShaderData {
|
|
||||||
property real a: 3.0
|
|
||||||
property real b: 4.0
|
|
||||||
property var r: [Qt.vector3d(1, 1, 1), Qt.vector3d(2, 2, 2), Qt.vector3d(3, 3, 3), Qt.vector3d(4, 4, 4)]
|
|
||||||
}
|
|
||||||
ShaderData {
|
|
||||||
property real a: 2.0
|
|
||||||
property real b: 3.0
|
|
||||||
property var r: [Qt.vector3d(2, 2, 2), Qt.vector3d(1, 1, 1), Qt.vector3d(4, 4, 4), Qt.vector3d(3, 3, 3)]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ShaderData {
|
|
||||||
property real innerV: 3.2
|
|
||||||
property var innerVec3Array: [Qt.vector3d(1, 0, 1), Qt.vector3d(0, 2, 2), Qt.vector3d(3, 0, 3), Qt.vector3d(4, 0, 4)]
|
|
||||||
property ShaderData t: ShaderData {
|
|
||||||
property real a: 1.0
|
|
||||||
property real b: 5.0
|
|
||||||
property var r: [Qt.vector3d(1, 1, 1), Qt.vector3d(2, 2, 2), Qt.vector3d(3, 3, 3), Qt.vector3d(4, 4, 4)]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ShaderData {
|
|
||||||
property real innerV: 0.2
|
|
||||||
property var innerVec3Array: [Qt.vector3d(1, 0, 1), Qt.vector3d(0, 2, 2), Qt.vector3d(3, 0, 3), Qt.vector3d(4, 0, 4)]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QQ2.ColorAnimation on colorAmbient { from: "blue"; to: "yellow"; duration: 1000; loops: QQ2.Animation.Infinite }
|
|
||||||
QQ2.ColorAnimation on colorDiffuse { from: "red"; to: "green"; duration: 1000; loops: QQ2.Animation.Infinite }
|
|
||||||
QQ2.ColorAnimation on colorSpecular { from: "white"; to: "orange"; duration: 1000; loops: QQ2.Animation.Infinite }
|
|
||||||
QQ2.NumberAnimation on shininess { from: 0; to: 1.0; duration: 1000; loops: QQ2.Animation.Infinite }
|
|
||||||
|
|
||||||
} }
|
|
||||||
]
|
|
||||||
|
|
||||||
effect : Effect {
|
|
||||||
parameters : Parameter { name: "diffuse"; value: Qt.vector3d(material.diffuseColor.r, material.diffuseColor.g, material.diffuseColor.b)}
|
|
||||||
|
|
||||||
techniques : [
|
|
||||||
// OpenGL 3.1 Technique
|
|
||||||
Technique {
|
|
||||||
graphicsApiFilter {api : GraphicsApiFilter.OpenGL; profile : GraphicsApiFilter.CoreProfile; minorVersion : 1; majorVersion : 3 }
|
|
||||||
|
|
||||||
filterKeys: [
|
|
||||||
FilterKey { name : "RenderingStyle"; value : "forward"},
|
|
||||||
FilterKey { name : "Enabled"; value: enabled }
|
|
||||||
]
|
|
||||||
|
|
||||||
parameters : Parameter { name : "lightPos"; value : Qt.vector4d(10.0, 10.0, 0.0, 1.0)}
|
|
||||||
|
|
||||||
renderPasses : [
|
|
||||||
// COLOR PASS
|
|
||||||
RenderPass {
|
|
||||||
filterKeys: FilterKey {name: "Name"; value: "ColorMaterial"}
|
|
||||||
|
|
||||||
shaderProgram: ShaderProgram {
|
|
||||||
id: diffuseShader
|
|
||||||
vertexShaderCode: loadSource("qrc:/shaders/diffuse.vert")
|
|
||||||
fragmentShaderCode: loadSource("qrc:/shaders/diffuse.frag")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// TEXTURE PASS + UBO
|
|
||||||
RenderPass {
|
|
||||||
filterKeys : [FilterKey {name : "Name"; value : "Texture" }]
|
|
||||||
|
|
||||||
renderStates : [BlendEquationArguments {sourceRgb: BlendEquationArguments.One; destinationRgb : BlendEquationArguments.One},
|
|
||||||
BlendEquation {blendFunction: BlendEquation.Add},
|
|
||||||
|
|
||||||
CullFace { mode : CullFace.Back },
|
|
||||||
DepthTest { depthFunction : DepthTest.LessOrEqual}
|
|
||||||
]
|
|
||||||
shaderProgram : ShaderProgram {
|
|
||||||
vertexShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec4 vertexPosition;
|
|
||||||
in vec3 vertexNormal;
|
|
||||||
in vec2 vertexTexCoord;
|
|
||||||
|
|
||||||
out vec3 worldPosition;
|
|
||||||
out vec3 normal;
|
|
||||||
out vec2 texCoord;
|
|
||||||
|
|
||||||
uniform mat4 modelViewProjection;
|
|
||||||
uniform mat4 modelView;
|
|
||||||
uniform mat3 modelViewNormal;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
texCoord = vertexTexCoord;
|
|
||||||
worldPosition = vec3(modelView * vertexPosition);
|
|
||||||
normal = normalize(modelViewNormal * vertexNormal);
|
|
||||||
gl_Position = modelViewProjection * vertexPosition;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
|
|
||||||
fragmentShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec3 worldPosition;
|
|
||||||
in vec3 normal;
|
|
||||||
in vec2 texCoord;
|
|
||||||
out vec4 fragColor;
|
|
||||||
|
|
||||||
struct subStruct
|
|
||||||
{
|
|
||||||
float a;
|
|
||||||
float b;
|
|
||||||
float r[4];
|
|
||||||
};
|
|
||||||
|
|
||||||
struct innerStruct
|
|
||||||
{
|
|
||||||
float innerV;
|
|
||||||
vec3 innerVec3;
|
|
||||||
vec3 innerVec3Array[4];
|
|
||||||
subStruct t;
|
|
||||||
subStruct c[2];
|
|
||||||
};
|
|
||||||
|
|
||||||
uniform PointLightBlock
|
|
||||||
{
|
|
||||||
vec4 colorAmbient;
|
|
||||||
vec4 colorDiffuse;
|
|
||||||
vec4 colorSpecular;
|
|
||||||
float shininess;
|
|
||||||
vec3 position;
|
|
||||||
vec3 intensity;
|
|
||||||
innerStruct s;
|
|
||||||
innerStruct u[4];
|
|
||||||
} lightSource;
|
|
||||||
|
|
||||||
uniform sampler2D tex;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec3 n = normalize(normal);
|
|
||||||
vec3 s = normalize(lightSource.position - worldPosition);
|
|
||||||
vec3 v = normalize(-worldPosition);
|
|
||||||
vec3 r = reflect(-s, n);
|
|
||||||
|
|
||||||
float diffuse = max(dot(s, n), 0.0);
|
|
||||||
float specular = step(diffuse, 0.0) * pow(max(dot(r, v), 0.0), lightSource.shininess);
|
|
||||||
|
|
||||||
vec3 sum = vec3(0.0, 0.0, 0.0);
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
sum += lightSource.s.innerVec3Array[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
float tmp = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
|
||||||
tmp += lightSource.u[i].innerV;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sum == vec3(10.0, 10.0, 10.0))
|
|
||||||
fragColor = vec4(lightSource.intensity, 1.0) * (
|
|
||||||
lightSource.colorAmbient * lightSource.s.innerV +
|
|
||||||
lightSource.colorDiffuse * diffuse +
|
|
||||||
lightSource.colorSpecular * specular) * 0.2 + texture(tex, texCoord);
|
|
||||||
else
|
|
||||||
fragColor = vec4(1.0, 1.0, 1.0, 1.0);
|
|
||||||
}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,238 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
|
|
||||||
Technique {
|
|
||||||
filterKeys : [
|
|
||||||
FilterKey { name : "RenderingStyle"; value : "forward"},
|
|
||||||
FilterKey { name : "Enabled"; value : true}
|
|
||||||
]
|
|
||||||
graphicsApiFilter {api : GraphicsApiFilter.OpenGL; profile : GraphicsApiFilter.CoreProfile; minorVersion : 1; majorVersion : 3 }
|
|
||||||
renderPasses : [
|
|
||||||
RenderPass {
|
|
||||||
filterKeys : [FilterKey {name : "Name"; value : "TextureLighting" }]
|
|
||||||
|
|
||||||
shaderProgram : ShaderProgram {
|
|
||||||
id : textureShaderLighting
|
|
||||||
vertexShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec4 vertexPosition;
|
|
||||||
in vec3 vertexNormal;
|
|
||||||
in vec2 texCoord0;
|
|
||||||
|
|
||||||
out vec2 texCoord;
|
|
||||||
out vec3 worldPosition;
|
|
||||||
out vec3 normal;
|
|
||||||
|
|
||||||
uniform mat4 customMvp;
|
|
||||||
uniform mat4 modelView;
|
|
||||||
uniform mat3 modelViewNormal;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
texCoord = texCoord0;
|
|
||||||
worldPosition = vec3(modelView * vertexPosition);
|
|
||||||
normal = normalize(modelViewNormal * vertexNormal);
|
|
||||||
gl_Position = customMvp * vertexPosition;
|
|
||||||
}"
|
|
||||||
|
|
||||||
fragmentShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec2 texCoord;
|
|
||||||
in vec3 worldPosition;
|
|
||||||
in vec3 normal;
|
|
||||||
out vec4 fragColor;
|
|
||||||
|
|
||||||
struct PointLight
|
|
||||||
{
|
|
||||||
vec3 position;
|
|
||||||
vec3 direction;
|
|
||||||
vec4 color;
|
|
||||||
float intensity;
|
|
||||||
};
|
|
||||||
|
|
||||||
const int lightCount = 3;
|
|
||||||
uniform PointLight pointLights[lightCount];
|
|
||||||
uniform sampler2D texture;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 color;
|
|
||||||
for (int i = 0; i < lightCount; i++) {
|
|
||||||
vec3 s = normalize(pointLights[i].position - worldPosition);
|
|
||||||
color += pointLights[i].color * (pointLights[i].intensity * max(dot(s, normal), 0.0));
|
|
||||||
}
|
|
||||||
color /= float(lightCount);
|
|
||||||
fragColor = texture(texture, texCoord) * color;
|
|
||||||
}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RenderPass {
|
|
||||||
filterKeys : [FilterKey {name : "Name"; value : "Texture" }]
|
|
||||||
shaderProgram : ShaderProgram {
|
|
||||||
vertexShaderCode : "
|
|
||||||
#version 140
|
|
||||||
in vec4 vertexPosition;
|
|
||||||
in vec2 vertexTexCoord;
|
|
||||||
out vec2 texCoord;
|
|
||||||
|
|
||||||
uniform mat4 mvp;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
texCoord = vertexTexCoord;
|
|
||||||
gl_Position = mvp * vertexPosition;
|
|
||||||
}"
|
|
||||||
|
|
||||||
fragmentShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec2 texCoord;
|
|
||||||
out vec4 fragColor;
|
|
||||||
uniform sampler2D tex;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
fragColor = texture(tex, texCoord);
|
|
||||||
}
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RenderPass {
|
|
||||||
filterKeys : [FilterKey {name : "Name"; value : "Lighting" }]
|
|
||||||
renderStates : [BlendEquationArguments {sourceRgb: BlendEquationArguments.One; destinationRgb : BlendEquationArguments.One},
|
|
||||||
BlendEquation {blendFunction: BlendEquation.Add},
|
|
||||||
CullFace { mode : CullFace.Back },
|
|
||||||
DepthTest { depthFunction : DepthTest.LessOrEqual}
|
|
||||||
]
|
|
||||||
shaderProgram : ShaderProgram {
|
|
||||||
vertexShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec4 vertexPosition;
|
|
||||||
in vec3 vertexNormal;
|
|
||||||
|
|
||||||
out vec3 worldPosition;
|
|
||||||
out vec3 normal;
|
|
||||||
|
|
||||||
uniform mat4 modelViewProjection;
|
|
||||||
uniform mat4 modelView;
|
|
||||||
uniform mat3 modelViewNormal;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
worldPosition = vec3(modelView * vertexPosition);
|
|
||||||
normal = normalize(modelViewNormal * vertexNormal);
|
|
||||||
gl_Position = modelViewProjection * vertexPosition;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
|
|
||||||
fragmentShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec3 worldPosition;
|
|
||||||
in vec3 normal;
|
|
||||||
out vec4 fragColor;
|
|
||||||
|
|
||||||
struct PointLight
|
|
||||||
{
|
|
||||||
vec3 position;
|
|
||||||
vec3 direction;
|
|
||||||
vec4 color;
|
|
||||||
float intensity;
|
|
||||||
};
|
|
||||||
|
|
||||||
const int lightCount = 3;
|
|
||||||
uniform PointLight pointLights[lightCount];
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 color;
|
|
||||||
for (int i = 0; i < lightCount; i++) {
|
|
||||||
vec3 s = normalize(pointLights[i].position - worldPosition);
|
|
||||||
color += pointLights[i].color * (pointLights[i].intensity * max(dot(s, normal), 0.0));
|
|
||||||
}
|
|
||||||
color /= float(lightCount);
|
|
||||||
fragColor = color;
|
|
||||||
}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
RenderPass {
|
|
||||||
filterKeys : FilterKey {name : "Name"; value : "Final" }
|
|
||||||
shaderProgram : ShaderProgram {
|
|
||||||
vertexShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec4 vertexPosition;
|
|
||||||
in vec2 vertexTexCoord;
|
|
||||||
out vec2 texCoord;
|
|
||||||
uniform mat4 modelViewProjection;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
texCoord = vertexTexCoord;
|
|
||||||
gl_Position = modelViewProjection * vertexPosition;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
|
|
||||||
fragmentShaderCode: "
|
|
||||||
#version 140
|
|
||||||
in vec2 texCoord;
|
|
||||||
out vec4 fragColor;
|
|
||||||
uniform sampler2D gBuffer;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
fragColor = texture(gBuffer, texCoord);
|
|
||||||
}
|
|
||||||
"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
|
|
||||||
Entity {
|
|
||||||
property Entity camera: Camera {
|
|
||||||
projectionType: CameraLens.PerspectiveProjection
|
|
||||||
fieldOfView: 60
|
|
||||||
aspectRatio: 16/9
|
|
||||||
nearPlane: 0.001
|
|
||||||
farPlane: 10000.0
|
|
||||||
position: Qt.vector3d( 10.0, 10.0, -25.0 )
|
|
||||||
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
|
|
||||||
viewCenter: Qt.vector3d( 0.0, 0.0, 10.0 )
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
import QtQuick 2.0 as QQ2
|
|
||||||
|
|
||||||
Entity {
|
|
||||||
|
|
||||||
property Entity camera: Camera {
|
|
||||||
projectionType: CameraLens.PerspectiveProjection
|
|
||||||
fieldOfView: 45
|
|
||||||
aspectRatio: 16/9
|
|
||||||
nearPlane: 0.01
|
|
||||||
farPlane: 1000.0
|
|
||||||
position: Qt.vector3d( 10.0, 10.0, -25.0 )
|
|
||||||
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
|
|
||||||
viewCenter: Qt.vector3d( 0.0, 0.0, 10.0 )
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shareable Components
|
|
||||||
|
|
||||||
Mesh {
|
|
||||||
id: ballMesh
|
|
||||||
objectName: "ballMesh"
|
|
||||||
source: "assets/ball.obj"
|
|
||||||
}
|
|
||||||
|
|
||||||
Mesh {
|
|
||||||
id: cubeMesh
|
|
||||||
objectName: "cubeMesh"
|
|
||||||
source: "assets/cube.obj"
|
|
||||||
}
|
|
||||||
|
|
||||||
AnimatedDiffuseMaterial {
|
|
||||||
id: animatedMaterial
|
|
||||||
texture: Texture2D { TextureImage { source : "assets/gltf/wine/Wood_Cherry_Original_.jpg" } }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scene elements
|
|
||||||
|
|
||||||
Entity {
|
|
||||||
id : sceneEntity
|
|
||||||
components : SceneLoader {
|
|
||||||
id: scene
|
|
||||||
source: "qrc:/assets/test_scene.dae"
|
|
||||||
objectName: "dae_scene"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RenderableEntity {
|
|
||||||
mesh: ballMesh
|
|
||||||
material: animatedMaterial
|
|
||||||
transform: Transform {
|
|
||||||
property real z: 25
|
|
||||||
translation: Qt.vector3d( 0, -10, z )
|
|
||||||
scale: 0.3
|
|
||||||
QQ2.SequentialAnimation on z {
|
|
||||||
running: true
|
|
||||||
loops: QQ2.Animation.Infinite
|
|
||||||
QQ2.NumberAnimation { to: -1000; duration: 5000 }
|
|
||||||
QQ2.NumberAnimation { to: 1000; duration: 3000 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
RenderableEntity {
|
|
||||||
mesh: cubeMesh
|
|
||||||
material: animatedMaterial
|
|
||||||
transform: Transform {
|
|
||||||
property real x: 0
|
|
||||||
translation: Qt.vector3d( x, -10, 25 )
|
|
||||||
scale: 0.3
|
|
||||||
QQ2.SequentialAnimation on x {
|
|
||||||
running : true
|
|
||||||
loops: QQ2.Animation.Infinite
|
|
||||||
QQ2.NumberAnimation { to : -100; duration : 10000 }
|
|
||||||
QQ2.NumberAnimation { to : 100; duration : 5000 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
|
|
||||||
TechniqueFilter {
|
|
||||||
id: root
|
|
||||||
|
|
||||||
objectName : "techniqueFilter"
|
|
||||||
|
|
||||||
// Expose the viewport rect and camera. This allows users of this
|
|
||||||
// forward rendering framegraph to decide which camera in the
|
|
||||||
// scene renders to a given viewport region.
|
|
||||||
//
|
|
||||||
// Using this as a building block for a larger framegraph would
|
|
||||||
// allow a scene to be rendered multiple times to different
|
|
||||||
// viewports using different cameras for e.g.
|
|
||||||
property alias mainCamera: mainCameraSelector.camera
|
|
||||||
property alias detailCamera: detailCameraSelector.camera
|
|
||||||
property alias layerFilters: layerFilter.layers
|
|
||||||
property alias clearColor: clearBuffers.clearColor
|
|
||||||
|
|
||||||
matchAll : [
|
|
||||||
FilterKey { name: "RenderingStyle"; value: "forward";},
|
|
||||||
FilterKey { name: "Enabled"; value: true;}
|
|
||||||
]
|
|
||||||
|
|
||||||
ClearBuffers {
|
|
||||||
id: clearBuffers
|
|
||||||
buffers: ClearBuffers.ColorDepthBuffer
|
|
||||||
|
|
||||||
// Main Viewport
|
|
||||||
Viewport {
|
|
||||||
id: viewport
|
|
||||||
normalizedRect: Qt.rect(0.0, 0, 1.0, 1.0)
|
|
||||||
|
|
||||||
CameraSelector {
|
|
||||||
id: mainCameraSelector
|
|
||||||
|
|
||||||
LayerFilter {
|
|
||||||
id: layerFilter
|
|
||||||
RenderPassFilter {
|
|
||||||
matchAny: [ FilterKey {name : "Name"; value : "Texture"; } ] }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Viewport {
|
|
||||||
id: detailViewport
|
|
||||||
normalizedRect: Qt.rect(0.75, 0.0, 0.25, 0.25)
|
|
||||||
|
|
||||||
CameraSelector {
|
|
||||||
id: detailCameraSelector
|
|
||||||
RenderPassFilter {
|
|
||||||
matchAny: [ FilterKey { name: "Name"; value: "ColorMaterial"; } ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
|
|
||||||
Entity {
|
|
||||||
property Transform transform;
|
|
||||||
property Mesh mesh;
|
|
||||||
property Material material;
|
|
||||||
|
|
||||||
components: [
|
|
||||||
transform,
|
|
||||||
mesh,
|
|
||||||
material
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,20 +0,0 @@
|
||||||
# Blender v2.70 (sub 0) OBJ File: ''
|
|
||||||
# www.blender.org
|
|
||||||
mtllib cube.mtl
|
|
||||||
o Cube
|
|
||||||
v 1.000000 -1.000000 -1.000000
|
|
||||||
v 1.000000 -1.000000 1.000000
|
|
||||||
v -1.000000 -1.000000 1.000000
|
|
||||||
v -1.000000 -1.000000 -1.000000
|
|
||||||
v 1.000000 1.000000 -0.999999
|
|
||||||
v 0.999999 1.000000 1.000001
|
|
||||||
v -1.000000 1.000000 1.000000
|
|
||||||
v -1.000000 1.000000 -1.000000
|
|
||||||
usemtl Material
|
|
||||||
s off
|
|
||||||
f 1 2 3 4
|
|
||||||
f 5 8 7 6
|
|
||||||
f 1 5 6 2
|
|
||||||
f 2 6 7 3
|
|
||||||
f 3 7 8 4
|
|
||||||
f 5 1 4 8
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,32 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the documentation of the Qt Toolkit.
|
|
||||||
**
|
|
||||||
** $QT_BEGIN_LICENSE:FDL$
|
|
||||||
** 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.
|
|
||||||
**
|
|
||||||
** GNU Free Documentation License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Free
|
|
||||||
** Documentation License version 1.3 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file included in the packaging of
|
|
||||||
** this file. Please review the following information to ensure
|
|
||||||
** the GNU Free Documentation License version 1.3 requirements
|
|
||||||
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
|
||||||
** $QT_END_LICENSE$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\example playground-qml
|
|
||||||
\title Qt 3D: Playground QML Example
|
|
||||||
\ingroup qt3d-examples-qml
|
|
||||||
*/
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include <Qt3DQuickExtras/qt3dquickwindow.h>
|
|
||||||
|
|
||||||
#include <QGuiApplication>
|
|
||||||
#include <QtQml>
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
|
||||||
{
|
|
||||||
QGuiApplication app(argc, argv);
|
|
||||||
Qt3DExtras::Quick::Qt3DQuickWindow view;
|
|
||||||
view.setSource(QUrl("qrc:/main.qml"));
|
|
||||||
view.show();
|
|
||||||
|
|
||||||
return app.exec();
|
|
||||||
}
|
|
||||||
|
|
@ -1,91 +0,0 @@
|
||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of the Qt3D module 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 Qt3D.Core 2.0
|
|
||||||
import Qt3D.Render 2.0
|
|
||||||
import Qt3D.Input 2.0
|
|
||||||
import Qt3D.Extras 2.0
|
|
||||||
import QtQuick 2.2 as QQ2
|
|
||||||
|
|
||||||
Entity {
|
|
||||||
id: root
|
|
||||||
|
|
||||||
property bool detailCamera: true
|
|
||||||
|
|
||||||
RenderSettings {
|
|
||||||
id : external_forward_renderer
|
|
||||||
activeFrameGraph: MyForwardRenderer {
|
|
||||||
mainCamera: mainView.camera
|
|
||||||
detailCamera: root.detailCamera ? detailView.camera : mainView.camera
|
|
||||||
clearColor: "black"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
KeyboardDevice {id: keyboardDevice}
|
|
||||||
|
|
||||||
KeyboardHandler {
|
|
||||||
id: keyboardHandler
|
|
||||||
sourceDevice: keyboardDevice
|
|
||||||
focus: true
|
|
||||||
onTabPressed: root.detailCamera = !root.detailCamera;
|
|
||||||
}
|
|
||||||
|
|
||||||
components: [external_forward_renderer, keyboardHandler]
|
|
||||||
|
|
||||||
FirstPersonCameraController { camera: mainView.camera }
|
|
||||||
|
|
||||||
MainView {
|
|
||||||
id: mainView
|
|
||||||
}
|
|
||||||
|
|
||||||
DetailView {
|
|
||||||
id: detailView
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
!include( ../examples.pri ) {
|
|
||||||
error( "Couldn't find the examples.pri file!" )
|
|
||||||
}
|
|
||||||
|
|
||||||
QT += 3dcore 3drender 3dquick qml quick 3dinput 3dquickextras
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
main.cpp
|
|
||||||
|
|
||||||
OTHER_FILES += \
|
|
||||||
main.qml \
|
|
||||||
AdsEffect.qml \
|
|
||||||
SimpleEffect.qml \
|
|
||||||
elements/ViewportEntity.qml \
|
|
||||||
elements/TechniqueFilterEntity.qml \
|
|
||||||
elements/RenderPassFilterEntity.qml \
|
|
||||||
elements/CameraSelectorEntity.qml \
|
|
||||||
MyForwardRenderer.qml \
|
|
||||||
ComplexTechnique.qml \
|
|
||||||
RenderableEntity.qml \
|
|
||||||
MainView.qml \
|
|
||||||
DetailView.qml \
|
|
||||||
AnimatedDiffuseMaterial.qml
|
|
||||||
|
|
||||||
RESOURCES += \
|
|
||||||
playground-qml.qrc \
|
|
||||||
../exampleresources/gltf.qrc \
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
<RCC>
|
|
||||||
<qresource prefix="/">
|
|
||||||
<file>main.qml</file>
|
|
||||||
<file>AdsEffect.qml</file>
|
|
||||||
<file>assets/ball.obj</file>
|
|
||||||
<file>assets/test_scene.dae</file>
|
|
||||||
<file>assets/cube.obj</file>
|
|
||||||
<file>ComplexTechnique.qml</file>
|
|
||||||
<file>MainView.qml</file>
|
|
||||||
<file>DetailView.qml</file>
|
|
||||||
<file>RenderableEntity.qml</file>
|
|
||||||
<file>AnimatedDiffuseMaterial.qml</file>
|
|
||||||
<file>MyForwardRenderer.qml</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
playground-qml \
|
|
||||||
simple-qml \
|
simple-qml \
|
||||||
simple-cpp \
|
simple-cpp \
|
||||||
gltf \
|
gltf \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue