[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