Lights don't accept PixelInput - explicitly pass positions / lightmap uvs
These should be g_vHighPrecisionLightingOffsetWs instead of g_vCameraPositionWs
float4 DoAtmospherics( PixelInput i, float4 vColor, bool bAdditiveBlending = false ) -> float4 DoAtmospherics( float3 vInputColor, float3 vPositionWs, float2 vPositionSs, bool bAdditiveBlending = false )
ShadingModel is never going to be an interface like this
TransformNormal, NormalWorldToTangent accept explicit parameters instead of PixelInput
PS_InitFinalCombiner( PS_INPUT ) -> PS_InitFinalCombiner() so it works without COMMON_PS_INPUT_DEFINED - this is just for default values anyway
Delete DryEraseMarker from common ps code
PS_CommonTransformNormal should be wrapped in COMMON_PS_INPUT_DEFINED too
Wrap Material funcs that interact with assumed common PixelInput with COMMON_PS_INPUT_DEFINED