diff --git a/drivers/gles2/shader_gles2.cpp b/drivers/gles2/shader_gles2.cpp index 84bd413abbc..c0d62117b9d 100644 --- a/drivers/gles2/shader_gles2.cpp +++ b/drivers/gles2/shader_gles2.cpp @@ -364,14 +364,14 @@ ShaderGLES2::Version *ShaderGLES2::get_current_version() { strings.push_back(fragment_code1.get_data()); if (cc) { - code_string = cc->fragment.ascii(); + code_string = cc->light.ascii(); strings.push_back(code_string.get_data()); } strings.push_back(fragment_code2.get_data()); if (cc) { - code_string2 = cc->light.ascii(); + code_string2 = cc->fragment.ascii(); strings.push_back(code_string2.get_data()); } @@ -588,22 +588,24 @@ void ShaderGLES2::setup( fragment_code0 = code.substr(0, cpos).ascii(); code = code.substr(cpos + globals_tag.length(), code.length()); - cpos = code.find(code_tag); + cpos = code.find(light_code_tag); - if (cpos == -1) { - fragment_code1 = code.ascii(); - } else { + String code2; + + if (cpos != -1) { fragment_code1 = code.substr(0, cpos).ascii(); - String code2 = code.substr(cpos + code_tag.length(), code.length()); + code2 = code.substr(cpos + light_code_tag.length(), code.length()); + } else { + code2 = code; + } - cpos = code2.find(light_code_tag); - if (cpos == -1) { - fragment_code2 = code2.ascii(); - } else { - fragment_code2 = code2.substr(0, cpos).ascii(); - fragment_code3 = code2.substr(cpos + light_code_tag.length(), code2.length()).ascii(); - } + cpos = code2.find(code_tag); + if (cpos == -1) { + fragment_code2 = code2.ascii(); + } else { + fragment_code2 = code2.substr(0, cpos).ascii(); + fragment_code3 = code2.substr(cpos + code_tag.length(), code2.length()).ascii(); } } } diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index 30dc55cc4c8..aba283970ae 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -1091,6 +1091,7 @@ void light_compute( inout vec3 diffuse_light, inout vec3 specular_light) { + //this makes lights behave closer to linear, but then addition of lights looks bad //better left disabled