diff --git a/KREngine/KREngine/Classes/KRDirectionalLight.cpp b/KREngine/KREngine/Classes/KRDirectionalLight.cpp index 6f9f612..fd35fa8 100644 --- a/KREngine/KREngine/Classes/KRDirectionalLight.cpp +++ b/KREngine/KREngine/Classes/KRDirectionalLight.cpp @@ -29,7 +29,7 @@ std::string KRDirectionalLight::getElementName() { KRVector3 KRDirectionalLight::getLightDirection() { KRVector3 world_rotation = getWorldRotation(); - KRVector3 light_rotation = KRVector3(0.0, -1.0, 0.0); + KRVector3 light_rotation = KRVector3(0.0, 0.0, 1.0); KRMat4 m; m.rotate(world_rotation.x, X_AXIS); m.rotate(world_rotation.y, Y_AXIS); diff --git a/KREngine/KREngine/Shaders/ObjectShader.fsh b/KREngine/KREngine/Shaders/ObjectShader.fsh index 668aa53..8d40c7c 100644 --- a/KREngine/KREngine/Shaders/ObjectShader.fsh +++ b/KREngine/KREngine/Shaders/ObjectShader.fsh @@ -258,7 +258,7 @@ void main() gl_FragColor = vec4(gl_FragColor.r * lightMapColor.r, gl_FragColor.g * lightMapColor.g, gl_FragColor.b * lightMapColor.b, 1.0); #endif - // gl_FragColor = vec4(vec3(specularFactor), 1.0); + //gl_FragColor = vec4(vec3(specularFactor), 1.0); #endif } diff --git a/KREngine/KREngine/Shaders/light_directional.fsh b/KREngine/KREngine/Shaders/light_directional.fsh index f1a9825..5b1e68a 100644 --- a/KREngine/KREngine/Shaders/light_directional.fsh +++ b/KREngine/KREngine/Shaders/light_directional.fsh @@ -58,10 +58,16 @@ void main() highp vec3 view_space_vertex_position; view_space_vertex_position.xy = ((2.0 * gl_FragCoord.xy) - (2.0 * viewport.xy)) / (viewport.zw) - 1.0; - view_space_vertex_position.z = -texture2D(gbuffer_depth, gbuffer_uv).r; + //view_space_vertex_position.z = -texture2D(gbuffer_depth, gbuffer_uv).r * 2.0; + view_space_vertex_position.z = (2.0 * -texture2D(gbuffer_depth, gbuffer_uv).r - gl_DepthRange.near - gl_DepthRange.far) / + (gl_DepthRange.far - gl_DepthRange.near); + highp vec3 halfVec = normalize((normalize(vec3(0.0, 0.0, 0.0) - view_space_vertex_position) + view_space_light)); // Normalizing anyways, no need to divide by 2 - mediump float specularFactor = clamp(pow(dot(halfVec,normalize(gbuffer_normal)), gbuffer_specular_exponent), 0.0, 1.0); + mediump float specularFactor = 0.0; + if(gbuffer_specular_exponent > 0.0) { + specularFactor = clamp(pow(dot(halfVec,normalize(gbuffer_normal)), gbuffer_specular_exponent), 0.0, 1.0); + } gl_FragColor = vec4(vec3(lamberFactor), specularFactor); }