Uber shader
Jeden duży shader, który zawiera wszystkie funkcje materiałów za przełącznikami preprocesora, gałęziami lub statycznymi permutacjami — zamiast osobnego shadera na każdy efekt.
Zamiast ręcznie pisać dziesiątki małych shaderów, programiści tworzą jeden „uber” shader ze wszystkimi ścieżkami — mapowaniem normalnych, warstwami detali, emisją, mgłą — włączanymi przez #ifdef i flagi uniform. Podczas budowania zestaw narzędzi generuje potrzebne statyczne permutacje (warianty shadera); w czasie działania dynamiczne rozgałęzienia mogą wybierać ścieżki na GPU.
Zaletą jest łatwość utrzymania: jedno źródło prawdy i spójne oświetlenie we wszystkich materiałach. Koszt to eksplozja kombinatoryczna — N niezależnych funkcji oznacza do 2^N wariantów, a więc rozdęte czasy kompilacji i pamięć (usuwanie wariantów w Unity istnieje właśnie po to, by to poskromić). Nowoczesny sprzęt sprawił, że dynamiczne rozgałęzianie jest na tyle tanie, iż niektóre silniki wybierają ścieżki dopiero w czasie działania.