From cd014fd5568a8aba3b0bee17796ced03482523ce Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 5 Dec 2005 13:22:16 +0000 Subject: Bugfix #3512 Duplicated objects, that have modifiers, didn't render (or not correct). Bug reported case with softbody being duplicated. The duplicator system is ancient... integration with new derivedmesh or modifiers has not been really done yet. --- .../renderconverter/intern/convertBlenderScene.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'source/blender/renderconverter/intern/convertBlenderScene.c') diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c index 07ae6dbcdd2..e1fc8556d73 100644 --- a/source/blender/renderconverter/intern/convertBlenderScene.c +++ b/source/blender/renderconverter/intern/convertBlenderScene.c @@ -1380,13 +1380,13 @@ static void init_render_mesh(Object *ob) Material *ma; MSticky *ms = NULL; PartEff *paf; + DispListMesh *dlm = NULL; + DerivedMesh *dm; unsigned int *vertcol; float xn, yn, zn, imat[3][3], mat[4][4]; //nor[3], float *orco=0; int a, a1, ok, need_orco=0, totvlako, totverto, vertofs; - int end, do_autosmooth=0, totvert = 0; - DispListMesh *dlm = NULL; - DerivedMesh *dm; + int end, do_autosmooth=0, totvert = 0, dm_needsfree; me= ob->data; @@ -1422,7 +1422,18 @@ static void init_render_mesh(Object *ob) if(need_orco) orco = get_object_orco(ob); - dm = mesh_create_derived_render(ob); + /* duplicators don't call modifier stack */ + if(ob->flag&OB_FROMDUPLI) { + dm= ob->derivedFinal; + dm_needsfree= 0; + } + else { + dm = mesh_create_derived_render(ob); + dm_needsfree= 1; + } + + if(dm==NULL) return; /* in case duplicated object fails? */ + dlm = dm->convertToDispListMesh(dm, 1); mvert= dlm->mvert; @@ -1622,7 +1633,7 @@ static void init_render_mesh(Object *ob) calc_vertexnormals(totverto, totvlako); if(dlm) displistmesh_free(dlm); - dm->release(dm); + if(dm_needsfree) dm->release(dm); } /* ------------------------------------------------------------------------- */ -- cgit v1.2.3