From 810b45fbb7fbd3b273a53c6892932c3056ef4216 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 25 May 2013 10:07:55 +0200 Subject: [PATCH] New emission-map algorithm Former-commit-id: a45adb79b885d41a2d461a1d672fc8f63dedff65 --- src/Nazara/Renderer/ShaderBuilder.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Nazara/Renderer/ShaderBuilder.cpp b/src/Nazara/Renderer/ShaderBuilder.cpp index 706408638..b82f37319 100644 --- a/src/Nazara/Renderer/ShaderBuilder.cpp +++ b/src/Nazara/Renderer/ShaderBuilder.cpp @@ -289,8 +289,9 @@ namespace if (flags & nzShaderFlags_EmissiveMapping) { - sourceCode += "vec3 emission = vec3(" + textureLookupKW + "(MaterialEmissiveMap, vTexCoord));\n" - + fragmentColorKW + " = vec4(mix(lighting, emission, max(0.0, 1.0-length(light))), alpha);\n"; + sourceCode += "float intensity = light.r*0.3 + light.g*0.59 + light.b*0.11;\n" + "vec3 emission = vec3(" + textureLookupKW + "(MaterialEmissiveMap, vTexCoord));\n" + + fragmentColorKW + " = vec4(mix(lighting, emission, clamp(1.0 - 3.0*intensity, 0.0, 1.0)), alpha);\n"; ///NOTE: Pour un shader avec un coût réduit avec une qualité moyenne, il est possible de remplacer "length(light)" par "dot(light, light)" } else