setupShadowFilter( builder, { filterFn, depthTexture, shadowCoord, shadow, depthLayer } ) {

		const frustumTest = shadowCoord.x.greaterThanEqual( 0 )
			.and( shadowCoord.x.lessThanEqual( 1 ) )
			.and( shadowCoord.y.greaterThanEqual( 0 ) )
			.and( shadowCoord.y.lessThanEqual( 1 ) )
			.and( shadowCoord.z.lessThanEqual( 1 ) );

		const shadowNode = filterFn( { depthTexture, shadowCoord, shadow, depthLayer } );

		return frustumTest.select( shadowNode, float( 1 ) );

	}
Setups the shadow filtering.

@param {NodeBuilder} builder - A reference to the current node builder.
@param {Object} inputs - A configuration object that defines the shadow filtering.
@param {Function} inputs.filterFn - This function defines the filtering type of the shadow map e.g. PCF.
@param {DepthTexture} inputs.depthTexture - A reference to the shadow map's texture data.
@param {Node<vec3>} inputs.shadowCoord - Shadow coordinates which are used to sample from the shadow map.
@param {LightShadow} inputs.shadow - The light shadow.
@return {Node<float>} The result node of the shadow filtering.