{"action":"opened","issue":{"url":"https://api.github.com/repos/cocos2d/cocos2d-spritebuilder/issues/1304","labels_url":"https://api.github.com/repos/cocos2d/cocos2d-spritebuilder/issues/1304/labels{/name}","comments_url":"https://api.github.com/repos/cocos2d/cocos2d-spritebuilder/issues/1304/comments","events_url":"https://api.github.com/repos/cocos2d/cocos2d-spritebuilder/issues/1304/events","html_url":"https://github.com/cocos2d/cocos2d-spritebuilder/issues/1304","id":68186296,"number":1304,"title":"CCEffectBlur visual artifacts","user":{"login":"thayerandrews","id":400841,"avatar_url":"https://avatars.githubusercontent.com/u/400841?v=3","gravatar_id":"","url":"https://api.github.com/users/thayerandrews","html_url":"https://github.com/thayerandrews","followers_url":"https://api.github.com/users/thayerandrews/followers","following_url":"https://api.github.com/users/thayerandrews/following{/other_user}","gists_url":"https://api.github.com/users/thayerandrews/gists{/gist_id}","starred_url":"https://api.github.com/users/thayerandrews/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thayerandrews/subscriptions","organizations_url":"https://api.github.com/users/thayerandrews/orgs","repos_url":"https://api.github.com/users/thayerandrews/repos","events_url":"https://api.github.com/users/thayerandrews/events{/privacy}","received_events_url":"https://api.github.com/users/thayerandrews/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-04-13T20:24:28Z","updated_at":"2015-04-13T20:24:28Z","closed_at":null,"body":"Background:\r\nCCEffectBlur is implemented using the [linear sampling optimization](http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/) described by Daniel Rakos. Much of its implementation comes from GPUImage's gaussian blur filter [here](https://github.com/BradLarson/GPUImage/blob/master/framework/Source/GPUImageGaussianBlurFilter.m).\r\n\r\nProblem description:\r\nWhen drawing sprites with CCEffect, \"stair stepping\" becomes visible depending on the sprite's position on the screen. This is visible in the following enlarged comparison of CCBlur and CCBlurReference (which does not have the linear filtering optimization):\r\n\r\n![blur artifacts](https://cloud.githubusercontent.com/assets/400841/7124653/0550b1d4-e1e8-11e4-96b4-061a199ad7b6.png)\r\n\r\nAt other positions, the artifacts disappear and CCEffectBlur looks identical to CCEffectBlurReference.\r\n\r\nSuggested fix:\r\nMore investigation is needed but either CCEffectBlur needs to be modified so the linear filtering optimization does not have this position dependent artifact or the optimization should be removed.\r\n"}}