# About first blur shader don't work :(

**URL:** <https://forum.defold.com/t/about-first-blur-shader-dont-work/3996>\
**Category:** Questions\
**Created:** [January 15, 2017, 9:10pm UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996 "2017-01-15T21:10:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![victortavernari](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/victortavernari/32/3100_2.png) [@victortavernari](https://forum.defold.com/u/victortavernari)\
**Post date:** [January 15, 2017, 9:10pm UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/1 "2017-01-15T21:10:43Z")

</div>

Hi,

I am trying to learn about shader development because I need blur effect.  
I found some tutoriais and concepts about blur, like move some pixel and with alpha make a blur effect, after my research about theme I tried this code

```
varying mediump vec4 position;
varying mediump vec2 var_texcoord0;

uniform lowp sampler2D DIFFUSE_TEXTURE;

void main()
{

    float blur = 1.2;
    float vstep = 1.0;
    float hstep = 0.0;
    
    vec4 texturesSums = vec4(0.0);
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -4.0*blur*vstep, var_texcoord0.y -4.0*blur*hstep)) * 0.0162162162;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -3.0*blur*vstep, var_texcoord0.y -3.0*blur*hstep)) * 0.0540540541;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -2.0*blur*vstep, var_texcoord0.y -2.0*blur*hstep)) * 0.1216216216;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -1.0*blur*vstep, var_texcoord0.y -1.0*blur*hstep)) * 0.1945945946;
   
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x, var_texcoord0.y)) * 0.1;
   
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -4.0*blur*hstep, var_texcoord0.y -4.0*blur*vstep)) * 0.1945945946;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -3.0*blur*hstep, var_texcoord0.y -3.0*blur*vstep)) * 0.1216216216;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -2.0*blur*hstep, var_texcoord0.y -2.0*blur*vstep)) * 0.0540540541;
    texturesSums += texture2D(DIFFUSE_TEXTURE, vec2(var_texcoord0.x -1.0*blur*hstep, var_texcoord0.y -1.0*blur*vstep)) * 0.0162162162;
   
   
    gl_FragColor = 3.0* vec4(texturesSums.rgb, 1.0);
}

```

When I run this shader it’s only run a image with alpha without blur ☹

 ![](https://forum-defold.b-cdn.net/uploads/default/original/2X/c/c8592cec2e09a46fb9e65441a1ad46cd8b41d803.png)

Sorry my dumb quest but It is my first contact with shaders…

Thanks advanced.  
Victor C Tavernari

---

<div class="post-metadata">

**Author:** ![victortavernari](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/victortavernari/32/3100_2.png) [@victortavernari](https://forum.defold.com/u/victortavernari)\
**Post date:** [January 16, 2017, 1:46am UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/2 "2017-01-16T01:46:03Z")

</div>

I think found the answer for this question 😛

 ![](https://forum-defold.b-cdn.net/uploads/default/original/2X/3/38a9a96677dd5c8c51c7511883fb4180c50971c1.png)

In the tutorial said about resolution and when I tried put my own value in blur var, I putted a wrong value, read again I understand about BlurRadian/Resolution and my var blur now is value/640 and it work perfectly..

It is my first shader and I need understand more about this logic..

If someone have some tips to give me 😃

I just want register my solution

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [January 16, 2017, 8:16am UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/3 "2017-01-16T08:16:30Z")

</div>

I am no expert on shaders, but your solution seems to be a very common one. Is it some part of the shader program that you do not understand?

---

<div class="post-metadata">

**Author:** ![victortavernari](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/victortavernari/32/3100_2.png) [@victortavernari](https://forum.defold.com/u/victortavernari)\
**Post date:** [January 16, 2017, 11:17am UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/4 "2017-01-16T11:17:19Z")

</div>

This shader now work fine, but I am trying understand how can I make it dynamic.

It worked with fixed value but I need change this in runtime.

Do you How Can I change values in material?

I did it

 ![](https://forum-defold.b-cdn.net/uploads/default/original/2X/e/e0eae29f07aa90baffda9dea409915e55d4d7f2c.png)

Thanks @britzl

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [January 16, 2017, 11:32am UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/5 "2017-01-16T11:32:50Z")

</div>

If you take a look at the default sprite material in builtins you can see that the tint is exposed as a fragment constant of type CONSTANT\_TYPE\_USER. This means that the tint can be accessed using these functions:

```
go.set("#sprite", "tint", vmath.vector4(1)
local tint = go.get("#sprite", "tint")
go.animat("#sprite", "tint", ...)

```

You should be able to use the same functions to modify blur and direction in your material.

---

<div class="post-metadata">

**Author:** ![victortavernari](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/victortavernari/32/3100_2.png) [@victortavernari](https://forum.defold.com/u/victortavernari)\
**Post date:** [January 16, 2017, 11:52am UTC](https://forum.defold.com/t/about-first-blur-shader-dont-work/3996/6 "2017-01-16T11:52:58Z")

</div>

It work perfectly.. 😃 thanks @britzl
