diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-05 11:53:22 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-05 11:53:22 +0400 |
commit | 970a4c7cc4ce50ea204f7525ebd160b93bbcd0a7 (patch) | |
tree | bfe8fab4c4d9d8db4c32461922f4836b29547edc /source/blender/render | |
parent | 02002c23947f901bd7648dba1c9d50906b5a9be9 (diff) |
fix [#36005] viewport rendering crashes blender
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 28277b0c07e..adb8956bfa3 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -4149,10 +4149,15 @@ static void set_renderlayer_lightgroups(Render *re, Scene *sce) void init_render_world(Render *re) { + void *wrld_prev[2] = { + re->wrld.aotables, + re->wrld.aosphere, + }; + int a; if (re->scene && re->scene->world) { - re->wrld= *(re->scene->world); + re->wrld = *(re->scene->world); copy_v3_v3(re->grvec, re->viewmat[2]); normalize_v3(re->grvec); @@ -4181,6 +4186,10 @@ void init_render_world(Render *re) re->wrld.linfac= 1.0f + powf((2.0f*re->wrld.exp + 0.5f), -10); re->wrld.logfac= logf((re->wrld.linfac-1.0f)/re->wrld.linfac) / re->wrld.range; + + /* restore runtime vars, needed for viewport rendering [#36005] */ + re->wrld.aotables = wrld_prev[0]; + re->wrld.aosphere = wrld_prev[1]; } |