Revision: 24908
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24908
Author: broken
Date: 2009-11-26 06:01:28 +0100 (Thu, 26 Nov 2009)
Log Message:
-----------
Fix for [#20023] Renderer aborts in some cases when rendering only meta-objects
with volume materials.
When metaballs were added to the render, if they weren't the basis ball, they'd
be skipped, leaving a render object with no geometry. Now it doesn't add an
object in the first place.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/convertblender.c
Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c
2009-11-26 03:43:39 UTC (rev 24907)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c
2009-11-26 05:01:28 UTC (rev 24908)
@@ -4492,7 +4492,7 @@
}
}
-static int allow_render_object(Object *ob, int nolamps, int onlyselected,
Object *actob)
+static int allow_render_object(Render *re, Object *ob, int nolamps, int
onlyselected, Object *actob)
{
/* override not showing object when duplis are used with particles */
if(ob->transflag & OB_DUPLIPARTS)
@@ -4500,6 +4500,10 @@
else if((ob->transflag & OB_DUPLI) && !(ob->transflag & OB_DUPLIFRAMES))
return 0;
+ /* don't add non-basic meta objects, ends up having renderobjects with
no geometry */
+ //if (ob!=find_basis_mball(re->scene, ob))
+ // return 0;
+
if(nolamps && (ob->type==OB_LAMP))
return 0;
@@ -4605,7 +4609,7 @@
if(ob->flag & OB_DONE) {
if(ob->transflag & OB_RENDER_DUPLI) {
- if(allow_render_object(ob, nolamps,
onlyselected, actob)) {
+ if(allow_render_object(re, ob, nolamps,
onlyselected, actob)) {
init_render_object(re, ob, NULL, 0,
timeoffset, vectorlay);
ob->transflag &= ~OB_RENDER_DUPLI;
@@ -4659,7 +4663,7 @@
/* OB_RENDER_DUPLI means instances for it were already
created, now
* it still needs to create the ObjectRen containing
the data */
if(ob->transflag & OB_RENDER_DUPLI) {
- if(allow_render_object(ob, nolamps,
onlyselected, actob)) {
+ if(allow_render_object(re, ob, nolamps,
onlyselected, actob)) {
init_render_object(re, ob, NULL, 0,
timeoffset, vectorlay);
ob->transflag &= ~OB_RENDER_DUPLI;
}
@@ -4693,7 +4697,7 @@
if(obd->type==OB_MBALL)
continue;
- if(!allow_render_object(obd, nolamps,
onlyselected, actob))
+ if(!allow_render_object(re, obd,
nolamps, onlyselected, actob))
continue;
if(allow_render_dupli_instance(re, dob,
obd)) {
@@ -4763,10 +4767,10 @@
}
free_object_duplilist(lb);
- if(allow_render_object(ob, nolamps,
onlyselected, actob))
+ if(allow_render_object(re, ob, nolamps,
onlyselected, actob))
init_render_object(re, ob, NULL, 0,
timeoffset, vectorlay);
}
- else if(allow_render_object(ob, nolamps, onlyselected,
actob))
+ else if(allow_render_object(re, ob, nolamps,
onlyselected, actob))
init_render_object(re, ob, NULL, 0, timeoffset,
vectorlay);
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs