In a landscape, is there a way to tell what physical material the player is standing on WITHOUT using the layer info?

The landscape material is procedurally generated, so the layer info is not useful. There are 4 material layers that are blended together procedurally into one Landscape layer. I can’t have them be 4 separate landscape layers because there’s no way I know to write landscape layer alpha/weight procedurally in the material editor. One solution is to place collision by hand over the landscape but that defeats the purpose of doing things procedurally. Any ideas?