Vilka är de olika typerna av OpenGL®-effekter?

Det finns ett antal OpenGL®-effekter som kan uppnås genom användning av blandning, skalning av ytnormaler, material och belysning. OpenGL® stöder egentligen inte direkt många specialeffekter, som vissa grafikkort gör, men det tillhandahåller verktyg som OpenGL® shader-språket (GLSL) för att tillåta vissa OpenGL®-effekter att produceras relativt enkelt. Grundläggande effekter som dimma, kantdetektering och ljusknep kan användas för att ge en mer stilistisk scenåtergivning, medan effekter som verkligt reflekterande ytor, volymetriska skuggor och dynamiskt animerade texturer kan användas för att avslöja en scen som är mycket realistisk.

En av de mest grundläggande OpenGL®-effekterna som kan hittas i många applikationer är kantutjämning. Detta innebär att man tar en serie pixlar som har renderats och sedan beräknar utrymmet mellan dem för att skapa mellanliggande steg och färger som omger dem. Slutresultatet är en scen som ibland kan verka lite suddig, med en mjukhet lagt till alla hårda kanter som ritades. De flesta grafikhårdvara stöder accelererad kantutjämning, eftersom det minskar oattraktiva pixleringar på skärmen.

Många programmerare som precis har börjat är förvånade över att få veta att skuggor inuti en scen faktiskt är en av de speciella OpenGL®-effekterna som måste programmeras explicit och inte förekommer som standard. Denna effekt kan uppnås genom att återge konturerna av en modell till en stencilbuffert och sedan projicera den stencilen på ett plan som placeras i en scen i lämplig vinkel. Genom mer komplexa blandningstekniker kan skuggor som är mer realistiska i sitt djup också skapas.

Ljusmodellen som används av OpenGL® beräknar faktiskt inte studsningen av ljusstrålar inom en scen på ett sätt som överensstämmer med den fysiska världen. Detta har lett till utvecklingen av verkligt reflekterande ytor som en av de mer populära OpenGL®-effekterna. Denna typ av effekt återger i huvudsak scenen från en annan vinkel till en bild och använder sedan den bilden som textur för den reflekterande ytan. Även om det är beräkningsmässigt dyrt, kan det hjälpa till att efterlikna realism i en scen.

En av de mer generiska, och mest använda, av OpenGL®-effekterna som kan utföras med shaders är ett partikelsystem. Detta är ett sätt att tillämpa algoritmer, vanligtvis fraktala algoritmer, på element i en scen för att tillhandahålla objekt eller andra element som kan tyckas röra sig eller visa organiska egenskaper, även om dessa egenskaper faktiskt är resultatet av en statisk formel. Partikelsystem kan användas i OpenGL® för att simulera en brinnande eld, fåglars rörelse eller till och med formen av moln på en himmel.