[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16252] branches/soc-2008-unclezeiv/source /blender: Minor fixes:
Davide Vercelli
davide.vercelli at gmail.com
Mon Aug 25 18:52:58 CEST 2008
Revision: 16252
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16252
Author: unclezeiv
Date: 2008-08-25 18:52:58 +0200 (Mon, 25 Aug 2008)
Log Message:
-----------
Minor fixes:
- fixed typo in deallocation function that could give memory errors
- vpl visualization mesh: avoid creating mesh if no vpl were generated
- default values in do_versions are now set for versions <= 247
Modified Paths:
--------------
branches/soc-2008-unclezeiv/source/blender/blenloader/intern/readfile.c
branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c
Modified: branches/soc-2008-unclezeiv/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2008-unclezeiv/source/blender/blenloader/intern/readfile.c 2008-08-25 15:33:18 UTC (rev 16251)
+++ branches/soc-2008-unclezeiv/source/blender/blenloader/intern/readfile.c 2008-08-25 16:52:58 UTC (rev 16252)
@@ -7727,33 +7727,6 @@
idproperties_fix_group_lengths(main->brush);
idproperties_fix_group_lengths(main->particle);
}
-
- if(main->versionfile <= 246) {
- Scene *sce= main->scene.first;
- RenderData *r;
-
- while(sce) {
- r= &sce->r;
- if(r) {
- if(r->lightcuts_max_error<=0.0)
- r->lightcuts_max_error= 0.02;
- if(r->lightcuts_max_cut<=0)
- r->lightcuts_max_cut= 1000;
- if(r->lightcuts_indir_fac<=0.0f)
- r->lightcuts_indir_fac= 100.0f;
- if(r->lightcuts_env_map<=0.0f)
- r->lightcuts_env_map= 4096.0f;
- if(r->lightcuts_area_lights<=0.0f)
- r->lightcuts_area_lights= 4000.0f;
- if(r->lightcuts_indir_dist<=0.0f)
- r->lightcuts_indir_dist= 5.0f;
- if(r->lightcuts_color_weight==0)
- r->lightcuts_color_weight= 1;
- }
-
- sce= sce->id.next;
- }
- }
/* sun/sky */
if(main->versionfile < 246) {
@@ -7788,6 +7761,34 @@
ob->pd->f_noise = 0.0;
}
}
+
+ /* lightcuts stuff */
+ if(main->versionfile <= 247) {
+ Scene *sce= main->scene.first;
+ RenderData *r;
+
+ while(sce) {
+ r= &sce->r;
+ if(r) {
+ if(r->lightcuts_max_error<=0.0)
+ r->lightcuts_max_error= 0.02;
+ if(r->lightcuts_max_cut<=0)
+ r->lightcuts_max_cut= 1000;
+ if(r->lightcuts_indir_fac<=0.0f)
+ r->lightcuts_indir_fac= 100.0f;
+ if(r->lightcuts_env_map<=0.0f)
+ r->lightcuts_env_map= 4096.0f;
+ if(r->lightcuts_area_lights<=0.0f)
+ r->lightcuts_area_lights= 4000.0f;
+ if(r->lightcuts_indir_dist<=0.0f)
+ r->lightcuts_indir_dist= 5.0f;
+ if(r->lightcuts_color_weight==0)
+ r->lightcuts_color_weight= 1;
+ }
+
+ sce= sce->id.next;
+ }
+ }
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
Modified: branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c
===================================================================
--- branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 2008-08-25 15:33:18 UTC (rev 16251)
+++ branches/soc-2008-unclezeiv/source/blender/render/intern/source/lightcuts.c 2008-08-25 16:52:58 UTC (rev 16252)
@@ -1628,7 +1628,8 @@
max_vpl= (nlights + re->r.lightcuts_area_lights + re->r.lightcuts_env_map) * lcd->do_indir;
- lcd->dbg_vis_vpl= MEM_callocN(sizeof(float) * 3 * max_vpl, "lc_vpl_visualization");
+ if (max_vpl != 0)
+ lcd->dbg_vis_vpl= MEM_callocN(sizeof(float) * 3 * max_vpl, "lc_vpl_visualization");
}
/* TODO: we could do some form of importance sampling here */
@@ -1735,7 +1736,7 @@
/* XXX: restore mode (terrible hack needed by get_bounce_color) */
R.r.mode|= R_LIGHTCUTS;
- if (lcd->options & LC_OPT_INDIR_MESH)
+ if (lcd->options & LC_OPT_INDIR_MESH && lcd->vpl_counter > 0)
dbg_create_vpl_mesh(re, lcd);
}
@@ -2396,7 +2397,7 @@
MEM_freeN(lcd->trees[i].array);
BLI_freelistN(&lcd->pointlights);
MEM_freeN(lcd->cut_nodes);
- if (lcd->dbg_vis_vpl);
+ if (lcd->dbg_vis_vpl)
MEM_freeN(lcd->dbg_vis_vpl);
MEM_freeN(lcd);
}
More information about the Bf-blender-cvs
mailing list