Ein Material wird auf die Geometrie angewendet, um ihr Farbe und Muster zu verleihen. Eine Textur ist eine Komponente eines Materials.
Ein Shader ist ein kleines Programm, mit dem dieses Material zur Laufzeit gerendert werden kann. Das Schöne an Shadern ist, dass Sie alles tun können, vom einfachen Rendern des Materials über das Hinzufügen dynamischer Effekte wie Glanzlichter und Reflexionen bis hin zu äußerst cleveren Dingen wie dem Rendern von falschen Löchern in Wänden, in die eine Kugel getroffen wurde.
Als Antwort auf Ihre Frage - ja, es gibt einen Unterschied, es gibt auch eine kleine Überlappung - können Sie entweder ein rotes Material erstellen oder einen Shader schreiben, um die Dinge als rot darzustellen, aber beide ermöglichen Ihnen auch viele Dinge, die Sie tun konnte nicht mit dem anderen.
und nein, Sie brauchen nicht einen Shader pro Material. Obwohl für ein Material ein Shader zum Rendern erforderlich ist, können Sie einen für alle Materialien verwenden, wenn Sie dies möchten. Sie tun bestimmte Dinge. Wenn Sie zum Beispiel möchten, dass alles glänzend ist, können Sie einfach eine schreiben.
Ein schönes Beispiel für Shader sind Kriegsgeräte. Es gibt eine Reihe von Materialien für die Szene. Wenn Sie jedoch eine Taste drücken, um zur taktischen Ansicht zu wechseln, ändern sich die Shader, die diese Materialien rendern, so dass die Dinge umrissen und im Allgemeinen anders aussehen. Dasselbe passiert in Batman: Arkhams 'Detektivmodus'.