summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/shaders
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-03-15 10:23:27 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-03-15 10:23:27 +0200
commitd3e1fcb2737e360c5530878c99e25c590817738e (patch)
tree02cc020e677c8392113dd9b6ce1f68b57aeef372 /src/datavis3d/engine/shaders
parent3c4aad54083be752a1af7b9f686591cb758ed0f5 (diff)
Fixed linux compilation problem
"Fixed" shader problem on negative z positions (still does not work properly)
Diffstat (limited to 'src/datavis3d/engine/shaders')
-rw-r--r--src/datavis3d/engine/shaders/fragmentShader4
-rw-r--r--src/datavis3d/engine/shaders/fragmentShaderColorOnY12
2 files changed, 8 insertions, 8 deletions
diff --git a/src/datavis3d/engine/shaders/fragmentShader b/src/datavis3d/engine/shaders/fragmentShader
index 01e57fb9..ad78c75a 100644
--- a/src/datavis3d/engine/shaders/fragmentShader
+++ b/src/datavis3d/engine/shaders/fragmentShader
@@ -14,12 +14,12 @@ void main() {
highp vec3 n = normalize(normal_cmr);
highp vec3 l = normalize(lightDirection_cmr);
highp float cosTheta = dot(n, l);
- if (cosTheta < 0.0) { cosTheta = 0.0; }
+ if (cosTheta < 0.0) { cosTheta = -cosTheta; } //0.0; }
if (cosTheta > 1.0) { cosTheta = 1.0; }
highp vec3 E = normalize(eyeDirection_cmr);
highp vec3 R = reflect(-l, n);
highp float cosAlpha = dot(E, R);
- if (cosAlpha < 0.0) { cosAlpha = 0.0; }
+ if (cosAlpha < 0.0) { cosAlpha = -cosAlpha; } //0.0; }
if (cosAlpha > 1.0) { cosAlpha = 1.0; }
gl_FragColor.rgb = //color_mdl + color_mdl * vec3(cosTheta * cosTheta) / (distance * distance) + vec3(cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha) / (distance * distance);
materialAmbientColor +
diff --git a/src/datavis3d/engine/shaders/fragmentShaderColorOnY b/src/datavis3d/engine/shaders/fragmentShaderColorOnY
index 464cfe8c..782e5e01 100644
--- a/src/datavis3d/engine/shaders/fragmentShaderColorOnY
+++ b/src/datavis3d/engine/shaders/fragmentShaderColorOnY
@@ -10,20 +10,20 @@ void main() {
highp vec3 materialDiffuseColor = vec3(coords_mdl.y * color_mdl.x, coords_mdl.y * color_mdl.y, coords_mdl.y * color_mdl.z);
highp vec3 materialAmbientColor = vec3(0.1, 0.1, 0.1) * color_mdl;//materialDiffuseColor;
highp vec3 materialSpecularColor = vec3(1.0, 1.0, 1.0);
- highp float distance = length(lightPosition_wrld - position_wrld);
- highp vec3 n = normalize(normal_cmr);
+ highp float distance = length(lightPosition_wrld - position_wrld);
+ highp vec3 n = normalize(normal_cmr);
highp vec3 l = normalize(lightDirection_cmr);
highp float cosTheta = dot(n, l);
- if (cosTheta < 0.0) { cosTheta = 0.0; }
+ if (cosTheta < 0.0) { cosTheta = -cosTheta; }//0.0; } // this seems to be the problem when z position is negative
if (cosTheta > 1.0) { cosTheta = 1.0; }
highp vec3 E = normalize(eyeDirection_cmr);
highp vec3 R = reflect(-l, n);
highp float cosAlpha = dot(E, R);
- if (cosAlpha < 0.0) { cosAlpha = 0.0; }
+ if (cosAlpha < 0.0) { cosAlpha = -cosAlpha; }//0.0; } // this seems to be the problem when z position is negative
if (cosAlpha > 1.0) { cosAlpha = 1.0; }
gl_FragColor.rgb = //color_mdl + color_mdl * vec3(cosTheta * cosTheta) / (distance * distance) + vec3(cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha) / (distance * distance);
materialAmbientColor +
- materialDiffuseColor * lightStrength * (cosTheta * cosTheta) / distance +
- materialSpecularColor * lightStrength * (cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha) / distance;
+ materialDiffuseColor * lightStrength * (cosTheta * cosTheta) / (distance * distance) +
+ materialSpecularColor * lightStrength * (cosAlpha * cosAlpha * cosAlpha * cosAlpha * cosAlpha) / (distance * distance);
}