diff options
author | Ton Roosendaal <ton@blender.org> | 2007-01-12 16:17:15 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2007-01-12 16:17:15 +0300 |
commit | e8f7626301c6aeaf8aee878253329ece4857f5dd (patch) | |
tree | 73382fbc11732c525f20f8947a4ed987b378f66a /source/blender/src/meshtools.c | |
parent | 765e464a71a339e15454ca35621c8f4923b64869 (diff) |
Patch from Matt: for AO baking, instead of warning user that AO was not
active or setup, it just turns on the flags and continues.
Diffstat (limited to 'source/blender/src/meshtools.c')
-rw-r--r-- | source/blender/src/meshtools.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/source/blender/src/meshtools.c b/source/blender/src/meshtools.c index d31004fd1c3..255312dc5a0 100644 --- a/source/blender/src/meshtools.c +++ b/source/blender/src/meshtools.c @@ -797,6 +797,8 @@ void objects_bake_render_menu(void) /* all selected meshes with UV maps are rendered for current scene visibility */ void objects_bake_render(short event) { + short prev_r_raytrace, prev_wo_amb_occ; + if(event==0) event= G.scene->r.bake_mode; if(event>0) { @@ -813,10 +815,16 @@ void objects_bake_render(short event) else if(event==3) event= RE_BAKE_NORMALS; else event= RE_BAKE_TEXTURE; + prev_r_raytrace = G.scene->r.mode & R_RAYTRACE; + prev_wo_amb_occ = G.scene->world->mode & WO_AMB_OCC; + if(event==RE_BAKE_AO) { - if((G.scene->r.mode & R_RAYTRACE)==0 || G.scene->world==NULL - || (G.scene->world->mode & WO_AMB_OCC)==0) { - error("No ray-trace or AO set up"); + /* If raytracing or AO is disabled, switch it on temporarily for baking. */ + if (prev_r_raytrace == 0) G.scene->r.mode |= R_RAYTRACE; + if (prev_wo_amb_occ == 0) G.scene->world->mode |= WO_AMB_OCC; + + if(G.scene->world==NULL) { + error("No world set up"); return; } } @@ -872,6 +880,12 @@ void objects_bake_render(short event) } } + if(event==RE_BAKE_AO) { + /* switch off temporary raytrace and AO */ + if (prev_r_raytrace == 0) G.scene->r.mode &= ~R_RAYTRACE; + if (prev_wo_amb_occ == 0) G.scene->world->mode &= ~WO_AMB_OCC; + } + allqueue(REDRAWIMAGE, 0); allqueue(REDRAWVIEW3D, 0); |