summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-01-21 15:32:38 +0100
committerPaul Lemire <paul.lemire@kdab.com>2015-01-24 14:32:16 +0100
commit2a5c458831e4745d987ba4635b3d2fe0bb4ef959 (patch)
tree338162d30e5bd324dcf793caa2514285d955abce /examples
parenteeab3dabf1b374867377128330c302228759bb5f (diff)
deferred-renderer-qml: updated to use more lights
Change-Id: I7bbff1aed73389909881f08d82d344c1f7b03576 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/deferred-renderer-qml/DeferredRenderer.qml3
-rw-r--r--examples/deferred-renderer-qml/FinalEffect.qml12
-rw-r--r--examples/deferred-renderer-qml/main.qml84
3 files changed, 82 insertions, 17 deletions
diff --git a/examples/deferred-renderer-qml/DeferredRenderer.qml b/examples/deferred-renderer-qml/DeferredRenderer.qml
index e3e9bf834..d45c04bd6 100644
--- a/examples/deferred-renderer-qml/DeferredRenderer.qml
+++ b/examples/deferred-renderer-qml/DeferredRenderer.qml
@@ -78,6 +78,9 @@ Viewport {
RenderPassFilter {
id : finalPass
includes : Annotation { name : "pass"; value : "final" }
+ CameraSelector {
+ camera: sceneCameraSelector.camera
+ }
}
}
diff --git a/examples/deferred-renderer-qml/FinalEffect.qml b/examples/deferred-renderer-qml/FinalEffect.qml
index 6ff9949f5..1d1a28469 100644
--- a/examples/deferred-renderer-qml/FinalEffect.qml
+++ b/examples/deferred-renderer-qml/FinalEffect.qml
@@ -51,7 +51,7 @@ Effect {
property ShaderDataArray lights: ShaderDataArray {
// hard coded lights until we have a way to filter
// ShaderData in a scene
- values: [sceneEntity.light, sphere1.light, sphere2.light]
+ values: [sceneEntity.light, sphere1.light, sphere2.light, light3.light, light4.light]
}
}
}
@@ -88,7 +88,7 @@ Effect {
float intensity;
};
- const int lightCount = 3;
+ const int lightCount = 5;
uniform PointLightBlock {
PointLight lights[lightCount];
} pointLights;
@@ -101,7 +101,7 @@ Effect {
vec3 norm = texture2D(normal, texCoord).xyz;
vec4 lightColor;
- for (int i = 0; i < 3; i++) {
+ for (int i = 0; i < lightCount; i++) {
vec3 s = normalize(pointLights.lights[i].position - pos);
lightColor += pointLights.lights[i].color * (pointLights.lights[i].intensity * max(dot(s, norm), 0.0));
}
@@ -119,7 +119,7 @@ Effect {
property ShaderDataArray lights: ShaderDataArray {
// hard coded lights until we have a way to filter
// ShaderData in a scene
- values: [sceneEntity.light, sphere1.light, sphere2.light]
+ values: [sceneEntity.light, sphere1.light, sphere2.light, light3.light, light4.light]
}
}
}
@@ -154,7 +154,7 @@ Effect {
float intensity;
};
- const int lightCount = 3;
+ const int lightCount = 5;
uniform struct
{
PointLight lights[lightCount];
@@ -168,7 +168,7 @@ Effect {
vec3 norm = texture2D(normal, texCoord).xyz;
vec4 lightColor;
- for (int i = 0; i < 3; i++) {
+ for (int i = 0; i < lightCount; i++) {
vec3 s = normalize(pointLights.lights[i].position - pos);
lightColor += pointLights.lights[i].color * (pointLights.lights[i].intensity * max(dot(s, norm), 0.0));
}
diff --git a/examples/deferred-renderer-qml/main.qml b/examples/deferred-renderer-qml/main.qml
index 47cba50cd..bcf29da8d 100644
--- a/examples/deferred-renderer-qml/main.qml
+++ b/examples/deferred-renderer-qml/main.qml
@@ -97,12 +97,12 @@ Entity {
property PointLight light: PointLight {
color : "white"
- intensity : 1.0
+ intensity : 4.0
QQ2.ColorAnimation on color { from: "white"; to: "blue"; duration: 4000; loops: 2 }
- QQ2.NumberAnimation on intensity { from: 0; to: 15.0; duration: 1000; loops: QQ2.Animation.Infinite }
+ QQ2.NumberAnimation on intensity { from: 0; to: 5.0; duration: 1000; loops: QQ2.Animation.Infinite }
}
- components: light
+ components: sceneEntity.light
Camera {
id: camera
@@ -111,7 +111,7 @@ Entity {
aspectRatio: 16/9
nearPlane : 0.01
farPlane : 1000.0
- position: Qt.vector3d( 10.0, 10.0, -25.0 )
+ position: Qt.vector3d( 0.0, 0.0, -25.0 )
upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 10.0 )
}
@@ -125,6 +125,7 @@ Entity {
id : sphereMesh
rings: 50
slices: 100
+ shareable: false
}
SceneEffect {
@@ -140,19 +141,27 @@ Entity {
}
property Transform transform : Transform {
- Translate{ dx: -10; dy: 0; dz : 25 }
+ Translate{ dx: -10; dy: 0; dz : 5
+ id: sphere1Translate
+ QQ2.SequentialAnimation {
+ loops: QQ2.Animation.Infinite
+ running: false
+ QQ2.NumberAnimation {target: sphere1Translate; property: "dx"; to: 6; duration: 2000 }
+ QQ2.NumberAnimation {target: sphere1Translate; property: "dx"; to: -10; duration: 2000 }
+ }
+ }
}
property PointLight light : PointLight {
- color : "yellow"
- intensity : 2.0
+ color : "green"
+ intensity : 5.0
}
components : [
sphereMesh,
material,
- transform,
- light,
+ sphere1.transform,
+ sphere1.light,
sceneLayer
]
}
@@ -166,17 +175,70 @@ Entity {
}
property PointLight light : PointLight {
- color : "white"
- intensity : 3.0
+ color : "orange"
+ intensity : 2.0
+ }
+
+ property Transform transform : Transform {
+ Translate{ dx: 5; dy: 0; dz : 5}
}
components : [
sphereMesh,
+ sphere2.transform,
+ material,
+ sphere2.light,
+ sceneLayer
+ ]
+ }
+
+ Entity {
+ id: light3
+ property PointLight light : PointLight {
+ color : "white"
+ intensity : 2.0
+ }
+
+ property Material material : Material {
+ effect : sceneMaterialEffect
+ parameters : Parameter { name : "meshColor"; value : "red" }
+ }
+
+ property Transform transform : Transform {
+ Translate{ id: light3Translate; dx: 2; dy: 2; dz : 7
+ QQ2.SequentialAnimation {
+ loops: QQ2.Animation.Infinite
+ running: true
+ QQ2.NumberAnimation {target: light3Translate; property: "dy"; to: 6; duration: 1000; easing.type: QQ2.Easing.InOutQuad }
+ QQ2.NumberAnimation {target: light3Translate; property: "dy"; to: -6; duration: 1000; easing.type: QQ2.Easing.InOutQuint }
+ }
+ }
+ }
+
+ components: [
+ sphereMesh,
material,
light,
+ transform,
sceneLayer
]
}
+ Entity {
+ id: light4
+ property PointLight light : PointLight {
+ color : "white"
+ intensity : 3.0
+ }
+ property Transform transform : Transform {
+ Translate{ dx: 5; dy: 2; dz : 7}
+ }
+
+ components: [
+ light4.light,
+ light4.transform,
+ sceneLayer
+ ]
+ }
}
}