diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-09 19:39:26 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-09 19:39:26 +0400 |
commit | b02dd1e7190a61a31d2a0335e5f2d4f91b7367e7 (patch) | |
tree | e7abe0c3cf789c212316a19904d14bcc8c1c8a44 /source | |
parent | a4ba448529924a69d2ef01d36c67e8cec7978f7f (diff) |
Fix #33815: blender internal crash rendering material pass with strands.
Patch from Sergey with modifications.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/render/intern/source/zbuf.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c index 2e1b23435e5..a0267cd65b7 100644 --- a/source/blender/render/intern/source/zbuf.c +++ b/source/blender/render/intern/source/zbuf.c @@ -4148,8 +4148,17 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas } if (addpassflag & SCE_PASS_INDEXMA) { ObjectRen *obr = R.objectinstance[zrow[totface-1].obi].obr; - VlakRen *vr = obr->vlaknodes->vlak; - Material *mat = vr->mat; + Material *mat = NULL; + + if (zrow[totface-1].segment == -1) { + if (obr->vlaknodes) + mat = obr->vlaknodes->vlak->mat; + } + else { + if (obr->strandbuf) + mat = obr->strandbuf->ma; + } + if (mat) { for (a= 0; a<totfullsample; a++) add_transp_material_index(rlpp[a], od, mat); |