Procesor vrhova (vertex processor)
Procesor vrhova je odgovoran za izvršavanje programa za sjenčanje vrhova. Ulazni podaci su u tom slučaju podaci o vrhu – pozicija, boja, normale i sl., ovisno o tome što aplikacija šalje. U OpenGL programskom jeziku bi jedan takav kod koji se šalje procesoru vrhova izgledao ovako:
Na slici je vidljivo da se vrhovi i sjenčanje vrhova nalazi na samom početku grafičkog cjevovoda. Svaki vrh u programu, koji pripada nekom objektu, prolazi kroz istu. Kod se može pisati za više zadataka:
- transformacije pozicije vrha
- transformacije normale
- generiranje koordinata tekstura i transformacija
- osvjetljavanje po vrhu ili računanje vrijednosti za osvjetljavanje po pikselu
- računanje boja
Procesor vrhova je namijenjen za opću programabilnost, što znači da se može koristiti za razna druga računanja. Programi koji se šalju procesoru vrhova se zovu programi za sjenčanje vrhova (eng. vertex shaders). Mogu biti specifični ili opći niz operacija koje se primjenjuju na zadani vrh i podatke koji mu pripadaju. Procesor vrhova ne zamjenjuje grafičke operacije koje zahtjevaju znanje o više vrhova ili topološko znanje. Na sljedećoj slici su vidljivi podaci koji služe kao ulaz procesoru vrhova i podaci koje isti proizvodi (OpenGL).