{"id":1050,"date":"2025-11-07T23:33:11","date_gmt":"2025-11-08T07:33:11","guid":{"rendered":"http:\/\/fx-td.com\/houdiniandchill\/?p=1050"},"modified":"2025-11-07T23:42:14","modified_gmt":"2025-11-08T07:42:14","slug":"archived-post-by-mattiasmalmer-96","status":"publish","type":"post","link":"http:\/\/fx-td.com\/houdiniandchill\/2025\/11\/07\/archived-post-by-mattiasmalmer-96\/","title":{"rendered":"Archived post by mattiasmalmer"},"content":{"rendered":"<div class=\"postie-post\">\n<p class=\"\">here is a simple implementation of adjacency aware blur running over texture seams.<\/p>\n<p class=\"\">&#8220;` #bind layer src? val=0 #bind layer &#038;tmp val=0 #bind layer adjacency? val=0 #bind layer &#038;blur<br \/>\n@KERNEL {     if (@Iteration==0)     {         @tmp.set(@src);     }     else     {         float4 sum=(float4)(0);                  for (int <a href=\"mailto:i=-@pixels\" >i=-@pixels<\/a>; i<<a href=\"mailto:=@pixels\" >=@pixels<\/a>;i++)         {             float2 uv= (@adjacency.bufferIndex((int2)(@ix+i,@iy)).xy);             float4 px= (@blur.bufferSample(uv*(float2)(@xres,@yres)-(float2)(0.5f,0.5f)));             sum+=px;         }                  <a href=\"mailto:sum\/=@pixels+\" >sum\/=@pixels+<\/a>@pixels+1;<br \/>\n        @tmp.set(sum);     } }<br \/>\n @WRITEBACK {<br \/>\n    float4 sum=(float4)(0);          for (int <a href=\"mailto:i=-@pixels\" >i=-@pixels<\/a>; i<<a href=\"mailto:=@pixels\" >=@pixels<\/a>;i++)     {         float2 uv= (@adjacency.bufferIndex((int2)(@ix,@iy+i)).xy);         float4 px= (@tmp.bufferSample(uv*(float2)(@xres,@yres)-(float2)(0.5f,0.5f)));         sum+=px;     }          <a href=\"mailto:sum\/=@pixels+\" >sum\/=@pixels+<\/a>@pixels+1;<br \/>\n@blur.set(sum); } &#8220;`<br \/>\nbind &#8220;pixels&#8221; as int in the bindings tab. src and adjacency as inputs blur and tmp as outputs. enable writeback and include iterations.<\/p>\n<p class=\"\">you need the adjacency rasterizer i made a while back for the adjacency input&#8230;<\/p>\n<p class=\"\">now this is a pretty dogshit blur implementation mostly as proof of concept but it does blur the image so there&#8217;s that.<\/p>\n<p>Attachments in this post: <br \/><a href=\"http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20253311\/07\/25\/houdini_XnfFGtckSi.mp4\">http:\/\/fx-td.com\/houdiniandchill\/wp-content\/uploads\/discord\/20253311\/07\/25\/houdini_XnfFGtckSi.mp4<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>here is a simple implementation of adjacency aware blur running over texture seams. &#8220;` #bind layer src? val=0 #bind layer &#038;tmp val=0 #bind layer adjacency? val=0 #bind layer &#038;blur @KERNEL { if (@Iteration==0) { @tmp.set(@src); } else { float4 sum=(float4)(0); for (int i=-@pixels; i<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1050"}],"collection":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/comments?post=1050"}],"version-history":[{"count":0,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1050\/revisions"}],"wp:attachment":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/media?parent=1050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/categories?post=1050"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/tags?post=1050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}