Um material é o que você aplica à geometria para fornecer uma cor e um padrão. Uma textura é um componente de um material.
Um sombreador é um pequeno programa que permite que esse material seja renderizado em tempo de execução. O bom dos shaders é que você pode fazer de tudo, desde renderizar o material, adicionar efeitos dinâmicos como reflexos especulares e reflexões até coisas extremamente inteligentes, como fazer buracos falsos nas paredes onde uma bala atingiu.
então, em resposta à sua pergunta - sim, há uma diferença, também há uma pequena sobreposição - você pode criar um material vermelho ou escrever um sombreador para tornar as coisas vermelhas, mas as duas também permitem que você faça muitas coisas não poderia com o outro.
e não, você não precisa de um shader por material. embora um material exija a renderização de um shader, você pode ter um para todos os seus materiais, se desejar. eles fazem coisas específicas; portanto, se você quiser que tudo fique brilhante, por exemplo, basta escrever um.
Um bom exemplo de shaders é em artes de guerra. existe um conjunto de materiais para a cena, mas quando você pressiona um botão para alternar para a visão tática, os shaders que estão processando esses materiais mudam para que as coisas pareçam delineadas e geralmente diferentes. O mesmo acontece no batman: o 'modo de detetive' de Arkham.