@:src({
@param var ssrColor:Sampler2D;
@param var mipLevel:Float;
@param var invSize:Vec2;
var weights:Array<Float,7> = [0.07130343198685299, 0.1315141208431224, 0.18987923288883812, 0.21460642856237303, 0.18987923288883812, 0.1315141208431224, 0.07130343198685299];
function getWeight(c:Vec4):Float {
return mix(saturate(mipLevel * 0.2), 1.0, c.a);
};
function fragment() {
var sum = vec4(0.0);
for (i in 0 ... 7) {
for (j in 0 ... 7) {
var tc = calculatedUV + invSize * vec2(i - 3, j - 3);
var c = ssrColor.getLod(tc, 0.0);
sum += weights[i] * weights[j] * c * getWeight(c);
};
};
output.color = sum;
};
})@:build(hxsl.Macros.buildShader())@:autoBuild(hxsl.Macros.buildShader())