Files
2026-08-09 04:23:10 -07:00

39 lines
1.0 KiB
Plaintext

{
parms {
fadePerturbProgram = modelFadePerturb;
}
state {
colormask
alphamask
twosided
}
hlsl_vp {
#include "includes/vertex.inc"
CALC_TEXCOORDS( result.texcoord0 );
CALC_SKINNED_POSITION( result.position );
}
hlsl_fp {
float2 texcoord = fragment.texcoord0.xy;
BRANCH if ( $useVirtualMapping.x > 0 ) {
// this is basically only for non pre-lit levels, and shouldn't be used often.
// this doesn't attempt to get the derivative correct at the frac crossing point
texcoord = frac( fragment.texcoord0.xy ) * $virtualMapping.xy + $virtualMapping.zw;
}
float3 physCoord = VmtrVirtualToPhysical( texcoord );
#ifdef USE_VIRTUAL_ANISO_FOOTPRINT
float2 dx = ddx( texcoord.xy ) * physCoord.z;
float2 dy = ddy( texcoord.xy ) * physCoord.z;
float4 specular = texPhys( $physicalVmtrPagesMap0, physCoord.xy, dx, dy );
#else
float4 specular = texPhys( $physicalVmtrPagesMap0, physCoord.xy );
#endif
// coverMap is stored in specular.w
clip( specular.w - 0.5 );
result.color = _float4( 0.0 );
}
}