summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-01-16 11:03:59 +0100
committerSean Harmer <sean.harmer@kdab.com>2015-01-18 15:31:09 +0100
commitd1409531fd29eec8f04da80aa62f5823e22bce11 (patch)
tree4100200c6e217f27c4b0785179edcfe9522ad063 /examples
parent5ec135bfd357d93a906e271945e6f1da10af1511 (diff)
deferred-renderer-qml: Use ShaderData to fill lights for GL2 Technique
To test OpenGL 2: comment the OpenGL 3.1 technique in FinalEffect Change-Id: I475e0881a8954bf652fbc0796103ddbb74f62474 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/deferred-renderer-qml/FinalEffect.qml25
-rw-r--r--examples/deferred-renderer-qml/main.qml10
2 files changed, 23 insertions, 12 deletions
diff --git a/examples/deferred-renderer-qml/FinalEffect.qml b/examples/deferred-renderer-qml/FinalEffect.qml
index db780e177..6ff9949f5 100644
--- a/examples/deferred-renderer-qml/FinalEffect.qml
+++ b/examples/deferred-renderer-qml/FinalEffect.qml
@@ -47,6 +47,14 @@ Effect {
// OpenGL 3.1
Technique {
openGLFilter {api : OpenGLFilter.Desktop; profile : OpenGLFilter.Core; minorVersion : 1; majorVersion : 3 }
+ parameters: Parameter { name: "PointLightBlock"; value: ShaderData {
+ 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]
+ }
+ }
+ }
renderPasses : RenderPass {
annotations : Annotation { name : "pass"; value : "final" }
shaderProgram : ShaderProgram {
@@ -107,6 +115,14 @@ Effect {
// OpenGL 2.0 with FBO extension
Technique {
openGLFilter {api : OpenGLFilter.Desktop; profile : OpenGLFilter.None; minorVersion : 0; majorVersion : 2 }
+ parameters: Parameter { name: "pointLights"; value: ShaderData {
+ 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]
+ }
+ }
+ }
renderPasses : RenderPass {
annotations : Annotation { name : "pass"; value : "final" }
shaderProgram : ShaderProgram {
@@ -139,7 +155,10 @@ Effect {
};
const int lightCount = 3;
- uniform PointLight pointLights[lightCount];
+ uniform struct
+ {
+ PointLight lights[lightCount];
+ } pointLights;
void main()
{
@@ -150,8 +169,8 @@ Effect {
vec4 lightColor;
for (int i = 0; i < 3; i++) {
- vec3 s = normalize(pointLights[i].position - pos);
- lightColor += pointLights[i].color * (pointLights[i].intensity * max(dot(s, norm), 0.0));
+ vec3 s = normalize(pointLights.lights[i].position - pos);
+ lightColor += pointLights.lights[i].color * (pointLights.lights[i].intensity * max(dot(s, norm), 0.0));
}
lightColor /= float(lightCount);
gl_FragColor = col * lightColor;
diff --git a/examples/deferred-renderer-qml/main.qml b/examples/deferred-renderer-qml/main.qml
index 5ad94dba3..47cba50cd 100644
--- a/examples/deferred-renderer-qml/main.qml
+++ b/examples/deferred-renderer-qml/main.qml
@@ -84,15 +84,7 @@ Entity {
Parameter { name: "color"; value : gBuffer.color },
Parameter { name: "position"; value : gBuffer.position },
Parameter { name: "normal"; value : gBuffer.normal },
- Parameter { name: "winSize"; value : Qt.size(1024, 1024) },
- Parameter { name: "PointLightBlock"; value: ShaderData {
- 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]
- }
- }
- }
+ Parameter { name: "winSize"; value : Qt.size(1024, 1024) }
]
effect : FinalEffect {}
}