@:directlyUsed@:src({
@global var time:Float;
@const var octaves:Int;
@param var layer:Float;
@param var texture:Sampler3D;
var pixelColor:Vec4;
var calculatedUV:Vec2;
function fragment() {
pixelColor = vec4(0.0, 0.0, 0.0, 1.0);
var w = layer / texture.size().x;
var uvw = vec3(calculatedUV, w);
var tot = 0.0;
var k = 1.0;
@unroll for (i in 0 ... octaves) {
var value = texture.get(uvw).r;
pixelColor.r += value * k;
tot += k;
k *= 0.5;
uvw *= 2.0;
};
pixelColor.r /= tot;
};
})@:build(hxsl.Macros.buildShader())@:autoBuild(hxsl.Macros.buildShader())