Shader
Z Wikipedii
Shader to krótki program komputerowy, często napisany w specjalnym języku (shader language), który w grafice trójwymiarowej 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:
- refrakcji
- odbić lustrzanych
- oświetlenia HDRI
- mapy przemieszczeń (displacement maps)
- innych efektów takich jak rozmycie obrazu, zaszumienie, zmiana kolorów, itp.
Istnieją dwa zasadnicze typy shaderów:
- Vertex Shader - operujący na wierzchołkach
- Pixel / Fragment Shader - operujący na pikselach / fragmentach
Współczesne języki cieniowania:
- GLSL - OpenGL Shading Language (fragment standardu OpenGL)
- HLSL - High Level Shading Language (język cieniowania biblioteki DirectX)
- Cg - C for graphics (opracowany przez firmę nVidia)