Merge pull request #3528 from SaracenOne/baked_light_realtime_colourize
Ability to colourize baked lighting in real time.
This commit is contained in:
commit
aec4f57f95
9 changed files with 165 additions and 1 deletions
|
|
@ -6561,8 +6561,19 @@ void RasterizerGLES2::_render_list_forward(RenderList *p_render_list,const Trans
|
|||
material_shader.set_conditional(MaterialShaderGLES2::ENABLE_AMBIENT_LIGHTMAP,false);
|
||||
material_shader.set_conditional(MaterialShaderGLES2::ENABLE_AMBIENT_DP_SAMPLER,false);
|
||||
|
||||
material_shader.set_conditional(MaterialShaderGLES2::ENABLE_AMBIENT_COLOR, false);
|
||||
|
||||
|
||||
if (material->flags[VS::MATERIAL_FLAG_UNSHADED] == false && current_debug != VS::SCENARIO_DEBUG_SHADELESS) {
|
||||
|
||||
if (baked_light != NULL) {
|
||||
if (baked_light->realtime_color_enabled) {
|
||||
float realtime_energy = baked_light->realtime_energy;
|
||||
material_shader.set_conditional(MaterialShaderGLES2::ENABLE_AMBIENT_COLOR, true);
|
||||
material_shader.set_uniform(MaterialShaderGLES2::AMBIENT_COLOR, Vector3(baked_light->realtime_color.r*realtime_energy, baked_light->realtime_color.g*realtime_energy, baked_light->realtime_color.b*realtime_energy));
|
||||
}
|
||||
}
|
||||
|
||||
if (e->instance->sampled_light.is_valid()) {
|
||||
|
||||
SampledLight *sl = sampled_light_owner.get(e->instance->sampled_light);
|
||||
|
|
|
|||
|
|
@ -618,6 +618,12 @@ uniform float ambient_dp_sampler_multiplier;
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_AMBIENT_COLOR
|
||||
|
||||
uniform vec3 ambient_color;
|
||||
|
||||
#endif
|
||||
|
||||
FRAGMENT_SHADER_GLOBALS
|
||||
|
||||
|
||||
|
|
@ -1262,7 +1268,9 @@ LIGHT_SHADER_CODE
|
|||
|
||||
|
||||
#if defined(ENABLE_AMBIENT_OCTREE) || defined(ENABLE_AMBIENT_LIGHTMAP) || defined(ENABLE_AMBIENT_DP_SAMPLER)
|
||||
|
||||
#if defined(ENABLE_AMBIENT_COLOR)
|
||||
ambientmap_color*=ambient_color;
|
||||
#endif
|
||||
diffuse.rgb+=ambientmap_color;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue