Un material es lo que aplica a la geometría para darle un color y un patrón. Una textura es un componente de un material.
Un sombreador es un pequeño programa que permite procesar este material en tiempo de ejecución. Lo bueno de los sombreadores es que puedes hacer todo, desde simplemente renderizar el material, hasta agregar efectos dinámicos como reflejos y reflejos especulares hasta cosas extremadamente inteligentes, como hacer agujeros falsos a través de paredes donde una bala ha golpeado.
Entonces, en respuesta a su pregunta, sí, hay una diferencia, también hay una pequeña superposición: puede hacer un material rojo o escribir un sombreador para que las cosas se vean rojas, pero ambos también le permiten hacer muchas cosas No podría con el otro.
y no, no necesitas un sombreador por material. Aunque un material requiere un sombreador para ser renderizado, puede tener uno para todos sus materiales si lo desea. hacen cosas específicas, así que si quisieras que todo fuera brillante, por ejemplo, podrías escribir uno.
Un buen ejemplo de sombreadores es en gears of war. hay un conjunto de materiales para la escena, pero cuando presionas un botón para cambiar a la vista táctica, los sombreadores que procesan estos materiales cambian para que las cosas se vean contorneadas y generalmente diferentes. Lo mismo sucede en Batman: el 'modo detective' de Arkham.