{"id":1093,"date":"2026-03-09T09:15:18","date_gmt":"2026-03-09T16:15:18","guid":{"rendered":"http:\/\/fx-td.com\/houdiniandchill\/?p=1093"},"modified":"2026-03-09T09:18:50","modified_gmt":"2026-03-09T16:18:50","slug":"archived-post-by-vanity_ibex-8","status":"publish","type":"post","link":"http:\/\/fx-td.com\/houdiniandchill\/2026\/03\/09\/archived-post-by-vanity_ibex-8\/","title":{"rendered":"Archived post by vanity_ibex"},"content":{"rendered":"<div class=\"postie-post\">\n<p class=\"\">I should start using recipes more then I don&#8217;t have to dig through 100x files to find something<br \/>\n&#8220;`cpp<br \/>\n#bind layer src     float4 #bind layer &amp;dst    float4 #bind parm radius   int    value=4 #bind parm sigma_s  float  value=4.0   \/\/ spatial falloff #bind parm sigma_r  float  value=0.1   \/\/ range\/value falloff<br \/>\n@KERNEL {     int2 gid = (int2)(@ix, @iy);     int w = @src.xres;     int h = @src.yres;<br \/>\n    float4 center = (float4)(@src.bufferIndex(gid));          float4 acc    = (float4)(0.0f);     float  weight = 0.0f;<br \/>\n    float ss2 = 2.0f * @sigma_s * @sigma_s;     float sr2 = 2.0f *max(@sigma_r,0.001f) * max(@sigma_r,0.001f);<br \/>\n    int r = @radius;<br \/>\n    for (int dy = -r; dy &lt;= r; dy++) {         for (int dx = -r; dx &lt;= r; dx++) {             int2 p = (int2)(                 clamp(gid.x + dx, 0, w-1),                 clamp(gid.y + dy, 0, h-1)             );<br \/>\n            float4 sample = (float4)(@src.bufferIndex(p));<br \/>\n            \/\/ Spatial weight \u2014 gaussian falloff by pixel distance             float spatial = (float)(dx*dx + dy*dy) \/ ss2;<br \/>\n            \/\/ Range weight \u2014 gaussian falloff by value difference             float4 diff = sample &#8211; center;             float range = dot(diff, diff) \/ sr2;<br \/>\n            float w_combined = exp(-spatial &#8211; range);<br \/>\n            acc    += sample * w_combined;             weight += w_combined;         }     }<br \/>\n    @dst.set(acc \/ weight); }<br \/>\n&#8220;`<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I should start using recipes more then I don&#8217;t have to dig through 100x files to find something &#8220;`cpp #bind layer src float4 #bind layer &amp;dst float4 #bind parm radius int value=4 #bind parm sigma_s float value=4.0 \/\/ spatial falloff #bind parm sigma_r float value=0.1 \/\/ range\/value falloff @KERNEL { int2 gid = (int2)(@ix, @iy); &hellip; <a href=\"http:\/\/fx-td.com\/houdiniandchill\/2026\/03\/09\/archived-post-by-vanity_ibex-8\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Archived post by vanity_ibex<\/span><\/a><\/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\/1093"}],"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=1093"}],"version-history":[{"count":0,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/posts\/1093\/revisions"}],"wp:attachment":[{"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/media?parent=1093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/categories?post=1093"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/fx-td.com\/houdiniandchill\/wp-json\/wp\/v2\/tags?post=1093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}