[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46193] trunk/blender/source/blender/nodes /composite/nodes/node_composite_blur.c: Small enhancement to Fast Gaussian compo blur node: do not compute when size is below 0.001!

Bastien Montagne montagne29 at wanadoo.fr
Thu May 3 07:42:21 CEST 2012


Sorry about that… I did test, but made a last change just before 
commit, which should not have created any problem - except that there 
was a strange stuff in pre-existing code which made it fail!

As usual! hope it'll teach me to *always* do final checks... :/

Le jeu. 03 mai 2012 06:16:21 CEST, Daniel Salazar - 3Developer.com a 
écrit :
> This makes fast Gaussian crash instantly.. seems to me that there's
> *very low* testing of this hacks before committing!
>
> Daniel Salazar
> patazstudio.com
>
>
> On Wed, May 2, 2012 at 8:29 AM, Bastien Montagne<montagne29 at wanadoo.fr>  wrote:
>> Revision: 46193
>>           http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46193
>> Author:   mont29
>> Date:     2012-05-02 14:29:12 +0000 (Wed, 02 May 2012)
>> Log Message:
>> -----------
>> Small enhancement to Fast Gaussian compo blur node: do not compute when size is below 0.001!
>>
>> (Was already checked/done for other blur algos, can be annoying when you animate the blur size to apply it only on a few frames.)
>>
>> Modified Paths:
>> --------------
>>     trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c
>>
>> Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c
>> ===================================================================
>> --- trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c    2012-05-02 14:23:00 UTC (rev 46192)
>> +++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c    2012-05-02 14:29:12 UTC (rev 46193)
>> @@ -605,36 +605,40 @@
>>                 out[0]->data= new;
>>         }
>>         else if (nbd->filtertype == R_FILTER_FAST_GAUSS) {
>> -               CompBuf *new, *img = in[0]->data;
>> -               // TODO: can this be mapped with reference, too?
>> -               const float sx = ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = ((float)nbd->sizey*in[1]->vec[0])/2.0f;
>> -               int c;
>> +               if (in[1]->vec[0]<  0.001f) { /* time node inputs can be a tiny value */
>> +                       new = pass_on_compbuf(img);
>> +               }
>> +               else {
>> +                       CompBuf *new, *img = in[0]->data;
>> +                       // TODO: can this be mapped with reference, too?
>> +                       const float sx = ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = ((float)nbd->sizey*in[1]->vec[0])/2.0f;
>> +                       int c;
>>
>> -               if ((img==NULL) || (out[0]->hasoutput==0)) return;
>> +                       if ((img==NULL) || (out[0]->hasoutput==0)) return;
>>
>> -               if (img->type == CB_VEC2)
>> -                       new = typecheck_compbuf(img, CB_VAL);
>> -               else if (img->type == CB_VEC3)
>> -                       new = typecheck_compbuf(img, CB_RGBA);
>> -               else
>> -                       new = dupalloc_compbuf(img);
>> +                       if (img->type == CB_VEC2)
>> +                               new = typecheck_compbuf(img, CB_VAL);
>> +                       else if (img->type == CB_VEC3)
>> +                               new = typecheck_compbuf(img, CB_RGBA);
>> +                       else
>> +                               new = dupalloc_compbuf(img);
>>
>> -               if ((sx == sy)&&  (sx>  0.f)) {
>> -                       for (c=0; c<new->type; ++c)
>> -                               IIR_gauss(new, sx, c, 3);
>> -               }
>> -               else {
>> -                       if (sx>  0.f) {
>> +                       if ((sx == sy)&&  (sx>  0.f)) {
>>                                 for (c=0; c<new->type; ++c)
>> -                                       IIR_gauss(new, sx, c, 1);
>> +                                       IIR_gauss(new, sx, c, 3);
>>                         }
>> -                       if (sy>  0.f) {
>> -                               for (c=0; c<new->type; ++c)
>> -                                       IIR_gauss(new, sy, c, 2);
>> +                       else {
>> +                               if (sx>  0.f) {
>> +                                       for (c=0; c<new->type; ++c)
>> +                                               IIR_gauss(new, sx, c, 1);
>> +                               }
>> +                               if (sy>  0.f) {
>> +                                       for (c=0; c<new->type; ++c)
>> +                                               IIR_gauss(new, sy, c, 2);
>> +                               }
>>                         }
>>                 }
>>                 out[0]->data = new;
>> -
>>         }
>>         else {
>>                 /* All non fast gauss blur methods */
>>
>> _______________________________________________
>> Bf-blender-cvs mailing list
>> Bf-blender-cvs at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list