En pikselskyggelegging ( PS) er et skyggeprogram , vanligvis utført i grafikkbehandlingsenheten. I OpenGL er det kjent som en fragment shader .
Funksjonen til en pikselskyggelegging er å tillate deg å utføre grafiske effekter med større presisjon; eller teknikker som enten ikke er mulig å utføre per toppunkt, eller som alternativt vil kreve et mesh med høy tetthet. For eksempel er det mulig å implementere Phong -skyggemodellen piksel for piksel for å oppnå skarpe speilrefleksjoner. For å emulere denne effekten uten en pikselskyggelegging, kan en toppunktskyggelegging brukes, men med et tett nett, noe som øker minnekravene til verten.
Andre effekter som normal mapping, bump-mapping , parallax mapping , krever per-piksel-behandling og det er her pikselskyggeren har åpnet for gigantiske muligheter.
Den brukes også til 2D-bildebehandling gjennom GPU.
Pixel shaders er programmert på følgende språk: Assembler , Cg, GLSL (OpenGL), HLSL (DirectX).
Tabellen nedenfor viser et sammendrag av grafikkortene, som sammen med grafikkbrikken støtter DirectX-versjonen av pixel shader. Grafikkbrikker som generelt er fullt kompatible med hvilken versjon av pikselskyggelegging som starter med den tidligste (v 1.1 og utover).
(Produkter som ennå ikke er tilgjengelige er angitt i kursiv.)
PS versjon | Direct3D- versjon | 3DLabs | TIL DEG | Intel | Matrox | NVIDIA | S3 grafikk | ja | XGI |
---|---|---|---|---|---|---|---|---|---|
1.0/1.1 | 8.0 | - | - | - | - | GeForce 3-serien | - | Xabre-serien | - |
1.2 | 8,0a | Wildcat VP | - | - | - | - | - | - | - |
1.3 | 8,0a | - | - | - | Parhelia-serien | GeForce 4Ti/4200Go-serien | - | Mirage 2 | - |
1.4 | 8.1 | - | Radeon R200 (8500-9250) | - | - | - | - | - | Volari V3-serien (unntatt V3XT) |
2.0 | 9,0 | Wildcat Realizm | Radeon R300 (9500-9800, X300-X600) | Intel GMA 900, 950, 3000, 3100, 3150 | - | - | DeltaChrome , GammaChrome , Chrome S2x-serien | Mirage 3, Mirage 3+ | Volari V3XT, Volari V5-serien, Volari V8-serien, Volari 8300, Volari XP10 |
2,0a | 9,0a | - | - | - | - | GeForce FX-serien | - | - | - |
2.0b | 9.0b | - | Radeon R420 (X700-X850) | - | - | - | - | - | - |
3.0 | 9,0c | - | Radeon R520 (X1300-X1950) | Intel GMA X3000 | - | GeForce 6-serien , GeForce 7-serien | - | - | - |
4.0 | 10 | - | Radeon R600 (HD 2400-HD 2600 2900) | Intel GMA X3100, X3500, X4500 | - | GeForce 8-serien , GeForce 9-serien , GeForce 200-serien , Quadro FX 1700 | - | Mirage 4 | - |
4.1 | 10.1 | - | Radeon R600 (HD 3xxx) , Radeon R700 (HD 4xxx) | Intel GMA 500 | - | - | Chrome 400-serien | - | |
5.0 | elleve | - | Radeon R800 (HD 5xxx) | - | GeForce 400-serien, GeForce 500-serien, GT100-serien | - | - | - |
Bruke teknikken [LOD detaljnivå][1].
Pixel/Fragment shader: Først av alt klargjør forskjellen mellom fragment og piksel. Fra Khronos-gruppen er den forpliktet til å differensiere hvilket fragment som er det som behandles siden det er flere relatert til samme piksel på skjermen. Terminologien etterfulgt av Microsoft og Nvidia er piksel, noe som kan føre til forvirring siden de ikke fungerer med skjermen, men med de for hver figur. I denne prosessoren kan det gjøres ulike transformasjoner, for eksempel endring