Materiał jest tym, co stosuje się do geometrii, aby nadać jej kolor i wzór. Tekstura jest składnikiem materiału.
Moduł cieniujący to mały program, który umożliwia renderowanie tego materiału w czasie wykonywania. Zaletą shaderów jest to, że możesz zrobić wszystko, od zwykłego renderowania materiału, poprzez dodawanie dynamicznych efektów, takich jak odblaski i odbicia aż po niezwykle sprytne rzeczy, takie jak renderowanie fałszywych dziur przez ściany, w które trafiła kula.
więc w odpowiedzi na twoje pytanie - tak, jest różnica, istnieje również pewne nakładanie się - możesz albo zrobić czerwony materiał lub napisać moduł cieniujący, aby renderować rzeczy jako czerwone, ale oba pozwalają ci na wiele rzeczy, które możesz nie mógł z drugim.
i nie, nie potrzebujesz jednego modułu cieniującego na materiał. chociaż materiał wymaga renderowania modułu cieniującego, możesz mieć go dla wszystkich materiałów, jeśli chcesz. robią określone rzeczy, więc jeśli na przykład chcesz, aby wszystko było lśniące, możesz po prostu napisać jedną.
Dobrym przykładem shaderów jest sprzęt wojenny. istnieje jeden zestaw materiałów do sceny, ale gdy naciśniesz przycisk, aby przejść do widoku taktycznego, moduły cieniujące, które renderują te materiały, zmieniają się, aby wyglądały na zarysowane i ogólnie inne. To samo dzieje się w Batmanie: „tryb detektywa” arkhama.