Mi az a pixel shader?


Legjobb válasz

Az árnyékolók olyan speciális programok, amelyeket a grafikus hardverek használnak képek előállításához. Általában kisebb programokra vannak felosztva, amelyek a hardveres megjelenítési folyamat különböző aspektusait kezelik.

Többféle változat létezik, de a leggyakoribbak a pixel és a csúcs árnyékolók.

a vertex shader felelős a bemeneti geometriában bekövetkező bármilyen változásért. Ez általában azt jelenti, hogy háromdimenziós geometriát vetítenek a kimeneti kép 2d vetítési síkjára, de néha itt is hozzáadhat valamilyen eljárási mozgást vagy deformációt a geometriához.

A pixel árnyékoló a csúcs árnyékoló kimenete, és létrehozza azokat a képpontokat, amelyek megjelennek a végső képen. Legtöbbször ez a megjelenítési egyenlet bizonyos variációin alapul, összehasonlítva a pixel irányát a fényforrások irányával és a felület tulajdonságával. , de lehet bármi, egy véletlenszerű zajfüggvénytől a komplex szimulációig vagy sugárkövetésig.

Ennek az a része különbözik leginkább a szokásos programozástól, hogy a csúcs és a pixel árnyékolók is rendkívül párhuzamos. Minden csúcs árnyékoló a bemeneti adatok minden csúcsán egyszerre fog futni; minden pixel shader a végső kép minden pixelén egyszerre fog futni. Ez azt jelenti, hogy nehéz egy pixelhez valamit tenni a másik állapota alapján – az összes pixel egymástól függetlenül egyszerre fog futni. Azoknak a hatásoknak, amelyeknek ismerniük kell a kontextust, gyakran egymás után több pixel árnyékolót kell futtatniuk, az eredményeket ideiglenes képekbe tárolva.

Ez megfelelő, nagyon alapos áttekintést nyújt a működéséről:

Válasz

A „pixel shader” (ami rossz név a „fragment shader” számára) egy kicsi program, amely sokszor párhuzamosan fut a GPU-n a töredékek színének meghatározásához. Alapvetően a töredékek fogalmilag nagyon hasonlítanak a pixelekhez, ezért a név összekeveredik.

Amikor a geometriát rajzolásra adják be, a csúcsokat a „csúcs árnyékoló” alakítja át. A csővezeték olyan primitíveket fog létrehozni, mint háromszögek vagy vonalak, és miután kivetítették őket a képernyőre és levágták, a raszteríró kidolgozza az összes érintésre kerülő „pixelt”, és interpolálja az értékeket a csúcsok között, mint például a színek, a textúra koordinátái vagy a normálok . A töredék árnyékolót futtatjuk az egyes töredékek számára, hogy meghatározzuk a végleges színt. Más műveleteket, például mélység / alfa / stencil tesztet hajtanak végre, majd a töredékek esetleg átlagolhatók lesznek többmintás antialiasing esetén, mielőtt végül tényleges pixelszínekké válnának, amelyeket a képernyő pufferbe kell írni vagy keverni.

A kép innen készült .

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük