Shader to krótki program komputerowy, często napisany w specjalnym języku (shader language), który w grafice komputerowej 3D odpowiada za cieniowanie obiektów.
Pozwala na dużo bardziej skomplikowane modelowanie oświetlenia i materiału na obiekcie niż standardowe modele oświetlenia i teksturowanie. Jest jednak dużo bardziej wymagający obliczeniowo i dlatego dopiero od kilku lat sprzętowa obsługa shaderów jest obecna w kartach graficznych dla komputerów domowych. Wcześniej, shadery stosowane były w niektórych fotorealistycznych rendererach (np. Renderman), gdzie grafika nie jest generowania w czasie rzeczywistym.
W stosunku do standardowych modeli oświetlenia, stosowanych do generowania grafiki w czasie rzeczywistym, shadery dają możliwość uwzględnienia między innymi: