Pixel Shader Stage
A képpontárnyékoló fázis (PS) számos árnyékolási technikát tesz lehetővé, például képpontonkénti megvilágítást és utófeldolgozást. A képpontárnyékoló olyan program, amely az állandó változókat, a textúraadatokat, az interpolált csúcsonkénti értékeket és más adatokat kombinálja a képpontonkénti kimenetek létrehozásához. A raszterizátor szakasz egyszer hív meg egy képpontárnyékolót minden primitív által lefedett képponthoz, de megadhat egy NULL árnyékolót, hogy elkerülje az árnyékoló futtatását.
A Pixel Shader
Egy textúra több mintázásakor a rendszer egy képpontárnyékolót hív meg egy lefedett képpontonként, míg minden egyes lefedett többminta esetében mélységi/rajzsablon-teszt történik. A mélységi/rajzsablon-tesztet átadó minták a képpontárnyékoló kimeneti színével frissülnek.
A képpontárnyékoló belső függvényei az x és az y képernyőtérre vonatkozóan mennyiségi származékokat hoznak létre vagy használnak. A származékok leggyakrabban a textúra mintavételezésére és anizotróp szűrésre vonatkozó részletes számítások kiszámítására szolgálnak, az anizotropia tengelye mentén kiválasztva a mintákat. A hardveres implementációk általában egyszerre több képponton (például 2x2 rácson) futtatnak egy képpontárnyékolót, így a képpontárnyékolóban kiszámított mennyiségek származékai ésszerűen hozzávetőlegesen a szomszédos képpontokban a végrehajtás ugyanazon pontján lévő értékek különbözeteiként közelíthetők meg.
Bemenetek
Ha a folyamat geometriai árnyékoló nélkül van konfigurálva, a képpontárnyékoló legfeljebb 16, 32 bites, 4 összetevős bemenetekre korlátozódik. Ellenkező esetben a képpontárnyékoló legfeljebb 32, 32 bites, 4 összetevős bemenetet vehet igénybe.
A képpontárnyékoló bemeneti adatai csúcstulajdonságokat tartalmaznak (amelyek perspektíva-korrekcióval vagy anélkül interpolálhatók), vagy primitív állandókként kezelhetők. A képpontárnyékoló bemeneteit a rendszer a deklarált interpolációs mód alapján interpolálja a raszterizált primitív csúcsattribútumaiból. Ha a raszterizálás előtt kivágnak egy primitívet, akkor az interpolációs mód a kivágási folyamat során is meg lesz elégítve.
A csúcsok attribútumai interpoláltak (vagy kiértékelhetők) a képpontárnyékoló-központ helyeinél. A képpontárnyékoló attribútum interpolációs módjai egy bemeneti regiszter-deklarációban vannak deklarálva elemenként egy argumentumban vagy egy bemeneti struktúrában. Az attribútumok lineárisan vagy centroid mintavételezéssel. A centroidok kiértékelése csak a többamplingelés során releváns azokra az esetekre, amikor egy képpontot primitív, de a képpont középpontja nem lehet; a centroid kiértékelése a lehető legközelebb esik a (nem fedett) képpont közepéhez.
Bemenetek is deklarálhatók egy rendszerérték szemantikai, amely megjelöl egy paramétert, amelyet más folyamatszakaszok használnak fel. A képpont pozícióját például meg kell jelölni a SV_Position szemantikai jellel. Az IA-fázis képes egy skalárt létrehozni egy képpontárnyékolóhoz (SV_PrimitiveID használatával); a raszterizátor szakasza egy skalárt is létrehozhat a képpontárnyékolóhoz (SV_IsFrontFace használatával).
Kimenetek
A képpontárnyékolók legfeljebb 8, 32 bites, 4 összetevős színeket adhatnak ki, vagy a képpont elvetése esetén nincs szín. A képpontárnyékoló kimeneti regiszterének összetevőit deklarálni kell a használatuk előtt; minden regiszter külön kimeneti-írási maszkot engedélyez.
A mélységi írás-engedélyezés állapotával (a kimeneti összevonási szakaszban) szabályozhatja, hogy a mélységi adatok be legyenek-e írva egy mélységi pufferbe (vagy az elvetési utasítással az adott képpont adatainak elvetéséhez). A képpontárnyékoló opcionálisan 32 bites, 1 összetevős, lebegőpontos, mélységi értéket is képes kihozni a mélységvizsgálathoz (a SV_Depth szemantika használatával). A mélységi érték az oDepth-nyilvántartás kimenete, és a mélységvizsgálat interpolált mélységi értékét helyettesíti (feltételezve, hogy a mélységi vizsgálat engedélyezve van). Nincs mód dinamikus változásra a rögzített függvénymélység vagy az árnyékoló oDepth használata között.
A képpontárnyékoló nem tud rajzsablonértéket kiírni.
Kapcsolódó témakörök