diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-06-30 06:02:16 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-06-30 06:02:16 +0400 |
commit | acc69b87d72ecd219185b98731ab351e7b9130d1 (patch) | |
tree | 6a51ebd9fb1b6e1f40522338072a2cabbb7763e6 | |
parent | bad785cce4c62d1f84c56a7417678a9dce47d4b7 (diff) |
fix/workaround [#27807] bake malloc loop if Deep Shadow && strand && children
render strands use the window matrix and window size which were both zero while baking, this caused divides by 0 and eternal malloc loop.
So set unit window matrix and dummy view size.
This is more a workaround then a fix but avoids crashing.
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index da7cdc307c6..2c9aa4dece5 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5737,7 +5737,15 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay, unit_m4(mat); RE_SetView(re, mat); } - + copy_m3_m4(re->imat, re->viewinv); + + /* TODO: deep shadow maps + baking + strands */ + /* strands use the window matrix and view size, there is to correct + * window matrix but at least avoids malloc and crash loop [#27807] */ + unit_m4(re->winmat); + re->winx= re->winy= 256; + /* done setting dummy values */ + init_render_world(re); /* do first, because of ambient. also requires re->osa set correct */ if(re->r.mode & R_RAYTRACE) { init_render_qmcsampler(re); |