Per-Pixel-Lighting bzw. Pixelbasierte Beleuchtung ist eine Shading-Methode, die dem Vertex Based Lighting ähnelt.
Im Gegensatz zum Vertex Based Lighting wird beim Per-Pixel-Lighting die Beleuchtung nicht für jeden Vertex berechnet und interpoliert.
Stattdessen wird für jedes einzelne Pixel, das dargestellt werden soll, ein Beleuchtungswert errechnet. Der Vorteil ist, dass auch wenn Flächen beschienen werden, die größer sind als der Beleuchtungsbereich noch ein realistischer Effekt erzielt wird. Dies ermöglicht die realistische Darstellung von extrem feinen Licht- und Reflexionseffekten wie z.B. Schweißglanz. Für jeden dieser Pixel wird die Farbe entsprechend eines Beleuchtungsmodells berechnet.
Doch die wahre Macht des Per-Pixel-Lightings liegt sprichwörtlich im Detail: so genannte Bumpmaps und Normalmaps speichern die Oberflächenvektoren in ihren Pixel. Da das Beleuchtungsmodell ja die Lichtverhältnisse pro Pixel berechnet (Per-Pixel), können zusätzliche, (in Echtzeit) schattierte Details auf die Oberfläche gezeichnet werden.
Handelt es sich bei Normal- und Beleuchtungsvektor um Einheitsvektoren, dann erhält man ein Ergebnis zwischen 0 und 1, was es leicht macht, eine prozentuale Aufhellung zu ermitteln.
Das Verfahren wird von allen "Hardware-Shader unterstützenden" Grafikkarten und ab DirectX 8 angeboten. Hierzu gehören als Pioniere die ATI Radeon 8500 und die NVIDIA GeForce 3 sowie sämtliche Nachfolgermodelle. Jedoch können diese Per-Pixel-Lighting Effekte in Spielen erst richtig mit DirectX 9-kompatiblen Grafikkarten ausgenutzt werden, da die Geschwindigkeit älterer Grafikkarten zu sehr einschränken.
Eine Liste einiger Engines, die Per-Pixel-Lighting unterstützen: