Επιτομή:
Η τάση τα τελευταία χρόνια στο υλικό γραφικών είναι η αντικατάσταση της σταθερής γραφικής σωλήνωσης (fixed graphics pipeline) με την προγραμματιζόμενη γραφική σωλήνωση (programmable graphics pipeline) η οποία επιτρέπει τον προγραμματισμό των επιμέρους σταδίων της με αποτέλεσμα την τροποποίηση της λειτουργίας του. Στους σύγχρονους επεξεργαστές γραφικών υπάρχουν τριών ειδών προγραμματιζόμενες μονάδες, οι Επεξεργαστές Κορυφών (Vertex Processors), οι Επεξεργαστές Γεωμετρίας (Geometry Processors) και οι Fragment Processors, κάθε μια από τις οποίες αντικαθιστά ένα κομμάτι της κλασικής σταθερής σωλήνωσης. Κάθε GPU περιέχει δεκάδες ή και εκατοντάδες μονάδες από κάθε κατηγορία για να επιτευχθεί παραλληλισμός στην επεξεργασία. Υπάρχουν GPUs με μονάδες μικρο-επεξεργασίας ροής (streaming processors) γενικού σκοπού που αναλαμβάνουν το ρόλο του vertex ή fragment επεξεργαστή ανάλογα με τις ανάγκες της εφαρμογής. Σήμερα υπάρχουν τρεις γλώσσες υψηλού επιπέδου για προγραμματισμό των μηχανών σκίασης: η Cg (C for graphics), η HLSL (High Level Shading Language) και η GLSL (OpenGL Shading Language). Οι δυο πρώτες αναπτύχθηκαν από κοινού από τις Microsoft και nVidia. Η GLSL, είναι η γλώσσα προγραμματισμού μηχανών σκίασης για το OpenGL API.
H GLSL έγινε μέρος της OpenGL στην έκδοση 2.0 με την προσθήκη πάνω από 30 συναρτήσεων για το χειρισμό των προγραμμάτων σκίασης. Ο πηγαίος κώδικας του προγράμματος σκίασης στέλνεται από την εφαρμογή στον οδηγό OpenGL (driver). Στη συνέχεια γίνεται η μεταγλώττιση, η σύνδεση και το επακόλουθο φόρτωμα του εκτελέσιμου προγράμματος στους vertex ή fragment επεξεργαστές.