Added shadow baking

This commit is contained in:
2008-06-05 22:07:59 +00:00
parent f2407fec55
commit 49abcc980c
6 changed files with 34 additions and 12 deletions

View File

@@ -5419,6 +5419,7 @@ void RE_Database_FromScene_Vectors(Render *re, Scene *sce)
RE_BAKE_AO: for baking, no lamps, but all objects
RE_BAKE_TEXTURE:for baking, no lamps, only selected objects
RE_BAKE_DISPLACEMENT:for baking, no lamps, only selected objects
RE_BAKE_SHADOW: for baking, only shadows, but all objects
*/
void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
{
@@ -5449,6 +5450,10 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
re->r.mode &= ~R_RAYTRACE;
}
if(!actob && (type==RE_BAKE_SHADOW)) {
re->r.mode |= R_SHADOW;
}
/* setup render stuff */
re->memArena = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE);
@@ -5486,7 +5491,7 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
set_node_shader_lamp_loop(shade_material_loop);
/* MAKE RENDER DATA */
nolamps= !ELEM(type, RE_BAKE_LIGHT, RE_BAKE_ALL);
nolamps= !ELEM3(type, RE_BAKE_LIGHT, RE_BAKE_ALL, RE_BAKE_SHADOW);
onlyselected= ELEM3(type, RE_BAKE_NORMALS, RE_BAKE_TEXTURE, RE_BAKE_DISPLACEMENT);
database_init_objects(re, lay, nolamps, onlyselected, actob, 0);