diff options
author | Tomi Korpipää <tomi.korpipaa@theqtcompany.com> | 2015-06-29 07:30:09 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@theqtcompany.com> | 2015-06-29 06:29:27 +0000 |
commit | 1148887340389dad57bab066b06d2d0e9eacceae (patch) | |
tree | 5a933830ff5f915e92ea0c8092fd23f0402a0aaa /examples/qt3d/planets-qml/shaders | |
parent | 56aaa976625a2cd337ccf24b29ae563dc8292778 (diff) |
Fixed planets-qml after 5.5.0 -> 5.5 merge
Change-Id: Ib4bf6b5b90b633903037084daeb70799da23f30b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'examples/qt3d/planets-qml/shaders')
-rw-r--r-- | examples/qt3d/planets-qml/shaders/gl3/planetD.frag | 4 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/gl3/planetDS.frag | 4 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetD.frag | 105 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetD.vert | 71 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetDB.frag | 107 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetDB.vert | 96 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetDS.frag | 104 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/planetDSB.frag | 110 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/shadowmap.frag | 41 | ||||
-rw-r--r-- | examples/qt3d/planets-qml/shaders/shadowmap.vert | 46 |
10 files changed, 2 insertions, 686 deletions
diff --git a/examples/qt3d/planets-qml/shaders/gl3/planetD.frag b/examples/qt3d/planets-qml/shaders/gl3/planetD.frag index 62d941d25..74da1f37a 100644 --- a/examples/qt3d/planets-qml/shaders/gl3/planetD.frag +++ b/examples/qt3d/planets-qml/shaders/gl3/planetD.frag @@ -93,9 +93,7 @@ void main() float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - vec3 ambient = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - vec3 result = ambient; + vec3 result = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; if (shadowMapSample > 0) result = dModel(flipYTexCoord); diff --git a/examples/qt3d/planets-qml/shaders/gl3/planetDS.frag b/examples/qt3d/planets-qml/shaders/gl3/planetDS.frag index 2a1b78bfa..03922362f 100644 --- a/examples/qt3d/planets-qml/shaders/gl3/planetDS.frag +++ b/examples/qt3d/planets-qml/shaders/gl3/planetDS.frag @@ -94,9 +94,7 @@ void main() float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - vec3 ambient = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - vec3 result = ambient; + vec3 result = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; if (shadowMapSample > 0) result = dsModel(flipYTexCoord); diff --git a/examples/qt3d/planets-qml/shaders/planetD.frag b/examples/qt3d/planets-qml/shaders/planetD.frag deleted file mode 100644 index 62d941d25..000000000 --- a/examples/qt3d/planets-qml/shaders/planetD.frag +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -uniform mat4 viewMatrix; - -uniform vec3 lightPosition; -uniform vec3 lightIntensity; - -uniform vec3 ka; // Ambient reflectivity -uniform vec3 ks; // Specular reflectivity -uniform float shininess; // Specular shininess factor -uniform float opacity; // Alpha channel - -uniform sampler2D diffuseTexture; - -uniform sampler2DShadow shadowMapTexture; - -in vec4 positionInLightSpace; - -in vec3 position; -in vec3 normal; -in vec2 texCoord; - -out vec4 fragColor; - -vec3 dModel(const in vec2 flipYTexCoord) -{ - // Calculate the vector from the light to the fragment - vec3 s = normalize(vec3(viewMatrix * vec4(lightPosition, 1.0)) - position); - - // Calculate the vector from the fragment to the eye position - // (origin since this is in "eye" or "camera" space) - vec3 v = normalize(-position); - - // Reflect the light beam using the normal at this fragment - vec3 r = reflect(-s, normal); - - // Calculate the diffuse component - float diffuse = max(dot(s, normal), 0.0); - - // Calculate the specular component - float specular = 0.0; - if (dot(s, normal) > 0.0) - specular = (shininess / (8.0 * 3.14)) * pow(max(dot(r, v), 0.0), shininess); - - // Lookup diffuse and specular factors - vec3 diffuseColor = texture(diffuseTexture, flipYTexCoord).rgb; - - // Combine the ambient, diffuse and specular contributions - return lightIntensity * ((ka + diffuse) * diffuseColor + specular * ks); -} - -void main() -{ - vec2 flipYTexCoord = texCoord; - flipYTexCoord.y = 1.0 - texCoord.y; - - float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - - vec3 ambient = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - vec3 result = ambient; - if (shadowMapSample > 0) - result = dModel(flipYTexCoord); - - float alpha = opacity * texture(diffuseTexture, flipYTexCoord).a; - - fragColor = vec4(result, alpha); -} diff --git a/examples/qt3d/planets-qml/shaders/planetD.vert b/examples/qt3d/planets-qml/shaders/planetD.vert deleted file mode 100644 index 41a1db6e4..000000000 --- a/examples/qt3d/planets-qml/shaders/planetD.vert +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -in vec3 vertexPosition; -in vec3 vertexNormal; -in vec2 vertexTexCoord; - -out vec4 positionInLightSpace; -out vec3 position; -out vec3 normal; -out vec2 texCoord; - -uniform mat4 lightViewProjection; -uniform mat4 modelMatrix; -uniform mat4 modelView; -uniform mat3 modelViewNormal; -uniform mat4 mvp; - -uniform float texCoordScale; - -void main() -{ - const mat4 shadowMatrix = mat4(0.5, 0.0, 0.0, 0.0, - 0.0, 0.5, 0.0, 0.0, - 0.0, 0.0, 0.5, 0.0, - 0.5, 0.5, 0.5, 1.0); - - positionInLightSpace = shadowMatrix * lightViewProjection * modelMatrix * vec4(vertexPosition, 1.0); - - texCoord = vertexTexCoord * texCoordScale; - normal = normalize(modelViewNormal * vertexNormal); - position = vec3(modelView * vec4(vertexPosition, 1.0)); - - gl_Position = mvp * vec4(vertexPosition, 1.0); -} diff --git a/examples/qt3d/planets-qml/shaders/planetDB.frag b/examples/qt3d/planets-qml/shaders/planetDB.frag deleted file mode 100644 index bf53a127b..000000000 --- a/examples/qt3d/planets-qml/shaders/planetDB.frag +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -uniform mat4 viewMatrix; - -uniform vec3 lightPosition; -uniform vec3 lightIntensity; - -uniform vec3 ka; // Ambient reflectivity -uniform vec3 ks; // Specular reflectivity -uniform float shininess; // Specular shininess factor -uniform float opacity; // Alpha channel - -uniform sampler2D diffuseTexture; -uniform sampler2D normalTexture; - -uniform sampler2DShadow shadowMapTexture; - -in vec4 positionInLightSpace; - -in vec3 lightDir; -in vec3 viewDir; -in vec2 texCoord; - -out vec4 fragColor; - -void dbModel(const in vec3 norm, const in vec2 flipYTexCoord, out vec3 ambientAndDiff, out vec3 spec) -{ - // Reflection of light direction about normal - vec3 r = reflect(-lightDir, norm); - - vec3 diffuseColor = texture(diffuseTexture, flipYTexCoord).rgb; - - // Calculate the ambient contribution - vec3 ambient = lightIntensity * ka * diffuseColor; - - // Calculate the diffuse contribution - float sDotN = max(dot(lightDir, norm), 0.0); - vec3 diffuse = lightIntensity * diffuseColor * sDotN; - - // Sum the ambient and diffuse contributions - ambientAndDiff = ambient + diffuse; - - // Calculate the specular highlight contribution - spec = vec3(0.0); - if (sDotN > 0.0) - spec = (lightIntensity * ks) * pow(max(dot(r, viewDir), 0.0), shininess); -} - -void main() -{ - vec2 flipYTexCoord = texCoord; - flipYTexCoord.y = 1.0 - texCoord.y; - - float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - - // Sample the textures at the interpolated texCoords - vec4 normal = 2.0 * texture(normalTexture, flipYTexCoord) - vec4(1.0); - - vec3 result = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - // Calculate the lighting model, keeping the specular component separate - vec3 ambientAndDiff, spec; - if (shadowMapSample > 0) { - dbModel(normalize(normal.xyz), flipYTexCoord, ambientAndDiff, spec); - result = ambientAndDiff + spec; - } - - // Combine spec with ambient+diffuse for final fragment color - fragColor = vec4(result, opacity); -} diff --git a/examples/qt3d/planets-qml/shaders/planetDB.vert b/examples/qt3d/planets-qml/shaders/planetDB.vert deleted file mode 100644 index e30394aa3..000000000 --- a/examples/qt3d/planets-qml/shaders/planetDB.vert +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -in vec3 vertexPosition; -in vec3 vertexNormal; -in vec2 vertexTexCoord; -in vec4 vertexTangent; - -out vec4 positionInLightSpace; -out vec3 lightDir; -out vec3 viewDir; -out vec2 texCoord; - -uniform mat4 viewMatrix; -uniform mat4 lightViewProjection; -uniform mat4 modelMatrix; -uniform mat4 modelView; -uniform mat3 modelViewNormal; -uniform mat4 mvp; - -uniform float texCoordScale; - -uniform vec3 lightPosition; - -void main() -{ - const mat4 shadowMatrix = mat4(0.5, 0.0, 0.0, 0.0, - 0.0, 0.5, 0.0, 0.0, - 0.0, 0.0, 0.5, 0.0, - 0.5, 0.5, 0.5, 1.0); - - positionInLightSpace = shadowMatrix * lightViewProjection * modelMatrix * vec4(vertexPosition, 1.0); - - // Pass through texture coordinates - texCoord = vertexTexCoord * texCoordScale; - - // Transform position, normal, and tangent to eye coords - vec3 normal = normalize(modelViewNormal * vertexNormal); - vec3 tangent = normalize(modelViewNormal * vertexTangent.xyz); - vec3 position = vec3(modelView * vec4(vertexPosition, 1.0)); - - // Calculate binormal vector - vec3 binormal = normalize(cross(normal, tangent)); - - // Construct matrix to transform from eye coords to tangent space - mat3 tangentMatrix = mat3 ( - tangent.x, binormal.x, normal.x, - tangent.y, binormal.y, normal.y, - tangent.z, binormal.z, normal.z); - - // Transform light direction and view direction to tangent space - vec3 s = lightPosition - position; - lightDir = normalize(tangentMatrix * vec3(viewMatrix * vec4(s, 1.0))); - - vec3 v = -position; - viewDir = normalize(tangentMatrix * v); - - // Calculate vertex position in clip coordinates - gl_Position = mvp * vec4(vertexPosition, 1.0); -} diff --git a/examples/qt3d/planets-qml/shaders/planetDS.frag b/examples/qt3d/planets-qml/shaders/planetDS.frag deleted file mode 100644 index 2a1b78bfa..000000000 --- a/examples/qt3d/planets-qml/shaders/planetDS.frag +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -uniform mat4 viewMatrix; - -uniform vec3 lightPosition; -uniform vec3 lightIntensity; - -uniform vec3 ka; // Ambient reflectivity -uniform float shininess; // Specular shininess factor -uniform float opacity; // Alpha channel - -uniform sampler2D diffuseTexture; -uniform sampler2D specularTexture; - -uniform sampler2DShadow shadowMapTexture; - -in vec4 positionInLightSpace; - -in vec3 position; -in vec3 normal; -in vec2 texCoord; - -out vec4 fragColor; - -vec3 dsModel(const in vec2 flipYTexCoord) -{ - // Calculate the vector from the light to the fragment - vec3 s = normalize(vec3(viewMatrix * vec4(lightPosition, 1.0)) - position); - - // Calculate the vector from the fragment to the eye position - // (origin since this is in "eye" or "camera" space) - vec3 v = normalize(-position); - - // Reflect the light beam using the normal at this fragment - vec3 r = reflect(-s, normal); - - // Calculate the diffuse component - float diffuse = max(dot(s, normal), 0.0); - - // Calculate the specular component - float specular = 0.0; - if (dot(s, normal) > 0.0) - specular = (shininess / (8.0 * 3.14)) * pow(max(dot(r, v), 0.0), shininess); - - // Lookup diffuse and specular factors - vec3 diffuseColor = texture(diffuseTexture, flipYTexCoord).rgb; - vec3 specularColor = texture(specularTexture, flipYTexCoord).rgb; - - // Combine the ambient, diffuse and specular contributions - return lightIntensity * ((ka + diffuse) * diffuseColor + specular * specularColor); -} - -void main() -{ - vec2 flipYTexCoord = texCoord; - flipYTexCoord.y = 1.0 - texCoord.y; - - float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - - vec3 ambient = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - vec3 result = ambient; - if (shadowMapSample > 0) - result = dsModel(flipYTexCoord); - - fragColor = vec4(result, opacity * texture(diffuseTexture, flipYTexCoord).a); -} diff --git a/examples/qt3d/planets-qml/shaders/planetDSB.frag b/examples/qt3d/planets-qml/shaders/planetDSB.frag deleted file mode 100644 index deb9565d4..000000000 --- a/examples/qt3d/planets-qml/shaders/planetDSB.frag +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -uniform mat4 viewMatrix; - -uniform vec3 lightPosition; -uniform vec3 lightIntensity; - -uniform vec3 ka; // Ambient reflectivity -uniform float shininess; // Specular shininess factor -uniform float opacity; // Alpha channel - -uniform sampler2D diffuseTexture; -uniform sampler2D specularTexture; -uniform sampler2D normalTexture; - -uniform sampler2DShadow shadowMapTexture; - -in vec4 positionInLightSpace; - -in vec3 lightDir; -in vec3 viewDir; -in vec2 texCoord; - -out vec4 fragColor; - -void dsbModel(const in vec3 norm, const in vec2 flipYTexCoord, out vec3 ambientAndDiff, out vec3 spec) -{ - // Reflection of light direction about normal - vec3 r = reflect(-lightDir, norm); - - vec3 diffuseColor = texture(diffuseTexture, flipYTexCoord).rgb; - vec3 specularColor = texture(specularTexture, flipYTexCoord).rgb; - - // Calculate the ambient contribution - vec3 ambient = lightIntensity * ka * diffuseColor; - - // Calculate the diffuse contribution - float sDotN = max(dot(lightDir, norm), 0.0); - vec3 diffuse = lightIntensity * diffuseColor * sDotN; - - // Sum the ambient and diffuse contributions - ambientAndDiff = ambient + diffuse; - - // Calculate the specular highlight contribution - spec = vec3(0.0); - if (sDotN > 0.0) - spec = (lightIntensity * (shininess / (8.0 * 3.14))) * pow(max(dot(r, viewDir), 0.0), shininess); - - spec *= specularColor; -} - -void main() -{ - vec2 flipYTexCoord = texCoord; - flipYTexCoord.y = 1.0 - texCoord.y; - - float shadowMapSample = textureProj(shadowMapTexture, positionInLightSpace); - - // Sample the textures at the interpolated texCoords - vec4 normal = 2.0 * texture(normalTexture, flipYTexCoord) - vec4(1.0); - - vec3 result = lightIntensity * ka * texture(diffuseTexture, flipYTexCoord).rgb; - - // Calculate the lighting model, keeping the specular component separate - vec3 ambientAndDiff, spec; - if (shadowMapSample > 0) { - dsbModel(normalize(normal.xyz), flipYTexCoord, ambientAndDiff, spec); - result = ambientAndDiff + spec; - } - - // Combine spec with ambient+diffuse for final fragment color - fragColor = vec4(result, opacity); -} diff --git a/examples/qt3d/planets-qml/shaders/shadowmap.frag b/examples/qt3d/planets-qml/shaders/shadowmap.frag deleted file mode 100644 index 63f203da6..000000000 --- a/examples/qt3d/planets-qml/shaders/shadowmap.frag +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -void main() -{ -} diff --git a/examples/qt3d/planets-qml/shaders/shadowmap.vert b/examples/qt3d/planets-qml/shaders/shadowmap.vert deleted file mode 100644 index ca93360c6..000000000 --- a/examples/qt3d/planets-qml/shaders/shadowmap.vert +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#version 150 core - -in vec3 vertexPosition; - -uniform mat4 mvp; - -void main() -{ - gl_Position = mvp * vec4(vertexPosition, 1.0); -} |