Vad är en OpenGL® Framebuffer?

Open Graphics Library® (OpenGL®) framebuffer är ett kodningsobjekt som förenklar buffertkodning för rendering. En primär användning för OpenGL® framebuffer är att lägga till grafiska effekter till en bild, vilket vanligtvis är en funktion förknippad med grafiska designprogram. En annan användning av OpenGL® framebuffer är att lägga till textur till en bild, till exempel statisk eller oskärpa. Även om effekter och texturer kan se bra ut på egen hand, är framebuffern relativt värdelös om det inte finns en bild som man kan binda effekterna eller texturerna till; annars dyker ingenting upp. När framebuffern används kombinerar den flera andra buffertar, vilket gör att de grafiska resurserna samlas mer effektivt än om buffertarna skulle användas separat.

Vanliga grafiska designprogram har en lista med specialeffekter som kan läggas till en bild, men att utföra samma procedur i OpenGL® är ganska komplicerat. När OpenGL® framebuffer används placerar den en bild genom många skuggningar som kan skapa effekter per pixel. Detta innebär att komplexa effekter kan appliceras på OpenGL®-bilden, vilket gör det lättare att lägga till effekter och för att dessa effekter ska bli visuellt konsekventa.

Det finns många texturer i den fysiska världen – nästan varje föremål har en visuellt distinkt textur. Om ett OpenGL®-projekt ska efterlikna verkligheten är det viktigt att kunna applicera en textur. Det finns några metoder för att lägga till en textur i det här programmet, men OpenGL® framebuffer är en av de enklare metoderna. Genom att använda detta objekt kan en textur appliceras på ett område eller ett grafiskt objekt via en liten mängd kod.

Ett problem med OpenGL® framebuffer är att den inte kan fungera av sig själv; det måste finnas en annan bild som åtföljer effekterna annars visas ingenting på skärmen. Effekterna och texturerna appliceras på en bild, så denna begränsning visar sig sällan. När en användare skapar ett framebuffer-objekt är det viktigt att framebuffern och bilden har samma storlek, annars kommer det att finnas områden utan effekter eller texturer. De två måste också bindas samman, annars kanske bilden inte blir korrekt under drift.

En annan anledning att använda OpenGL® framebuffer är att den använder flera andra buffertar samtidigt. Detta gör inte bara koordineringen av buffertarna mycket enklare, utan det krävs färre resurser för att köra framebuffern jämfört med att använda de andra buffertarna separat. De buffertar som används är buffertar för färg, index, djup, stencil och rendering.