@:directlyUsed@:src({
@:extends h3d.shader.ShadowSampling;
@const var enable:Bool;
@const(2) var SAMPLING_MODE:Int;
@param var shadowPower:Float;
@param var pcfScale:Float;
@param var shadowMap:Sampler2D;
@param var shadowViewProj:Mat3x4;
@param var shadowBias:Float;
var transformedPosition:Vec3;
var shadow:Float;
var dirShadow:Float;
function fragment() {
if (enable) {
var shadowPos = dirShadowPos(transformedPosition, shadowViewProj);
shadow = sampleShadow(shadowMap, shadowPos.xy, shadowPos.z.saturate(), shadowBias, pcfScale, shadowPower, transformedPosition, SAMPLING_MODE);
};
dirShadow = shadow;
};
})@:build(hxsl.Macros.buildShader())@:autoBuild(hxsl.Macros.buildShader())