From f9917af00b5459f56f1108a1aa20498ed1b62ad4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 7 Feb 2010 15:24:10 +0000 Subject: Fix #20914: non-normalized AO baking was not working anymore. --- source/blender/render/intern/include/shading.h | 2 +- source/blender/render/intern/source/rendercore.c | 8 +++++++- source/blender/render/intern/source/shadeoutput.c | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/include/shading.h b/source/blender/render/intern/include/shading.h index 95bccd2be1e..d6a18cf2cd8 100644 --- a/source/blender/render/intern/include/shading.h +++ b/source/blender/render/intern/include/shading.h @@ -86,8 +86,8 @@ void shade_lamp_loop(struct ShadeInput *shi, struct ShadeResult *shr); void shade_color(struct ShadeInput *shi, ShadeResult *shr); -void ambient_occlusion_to_diffuse(struct ShadeInput *shi, float *diff); void ambient_occlusion(struct ShadeInput *shi); +void environment_lighting_apply(struct ShadeInput *shi, struct ShadeResult *shr); ListBase *get_lights(struct ShadeInput *shi); float lamp_get_visibility(struct LampRen *lar, float *co, float *lv, float *dist); diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index dec826faa65..958ed0c2fa5 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2135,7 +2135,13 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int quad, int if(bs->type==RE_BAKE_AO) { ambient_occlusion(shi); - VECCOPY(shr.combined, shi->ao) + if(R.r.bake_flag & R_BAKE_NORMALIZE) { + copy_v3_v3(shr.combined, shi->ao); + } + else { + zero_v3(shr.combined); + environment_lighting_apply(shi, &shr); + } } else { if (bs->type==RE_BAKE_SHADOW) /* Why do shadows set the color anyhow?, ignore material color for baking */ diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c index eeb353eb66f..85b06837c92 100644 --- a/source/blender/render/intern/source/shadeoutput.c +++ b/source/blender/render/intern/source/shadeoutput.c @@ -1050,7 +1050,7 @@ static void ambient_occlusion_apply(ShadeInput *shi, ShadeResult *shr) } } -static void environment_lighting_apply(ShadeInput *shi, ShadeResult *shr) +void environment_lighting_apply(ShadeInput *shi, ShadeResult *shr) { float f= R.wrld.ao_env_energy*shi->amb; -- cgit v1.2.3