Vad är OpenGL®-buffertar?

OpenGL®-buffertar är områden i datorns minne som används för att lagra informationssekvenser så att de kan nås mycket snabbt och enkelt utan att behöva räkna om data varje gång. Även om, som i vanlig datorprogrammering, OpenGL®-buffertar i princip bara är på varandra följande block av allokerat datorminne, strukturerar OpenGL® själva buffertarna i ett program genom att definiera vilken typ av information som kommer att hållas i bufferten så att vissa optimeringar kan användas. Det finns flera typer av OpenGL®-buffertar inklusive rambuffertar, pixelbuffertar och vertexbuffertar för att bara nämna några. En av de viktiga egenskaperna hos buffertarna under OpenGL® är att de kan lagras i minnesområden där tillgången till informationen i bufferten kan vara snabbare än normalt. Den avsedda mängden användning för en OpenGL®-buffert kan hjälpa till att bestämma var bufferten faktiskt lagras, med användningen definierad genom att deklarera bufferten som statisk, dynamisk eller ström.

En av fördelarna med att använda OpenGL®-buffertar är att de kan lokaliseras i ett minne som nås mycket snabbt. Viktiga typer av buffertar, såsom framebuffers, kan faktiskt placeras direkt i minnet på det grafikkort som används. Detta innebär att information kan skickas direkt från bufferten till grafikprocessorn (GPU) utan att behöva resa från ett fysiskt hårdvarukort till ett annat. Att flytta rå information, såsom en förrenderad skärm inuti en rambuffert, till en annan minnesplats utan någon typ av bearbetning är en teknik som kallas blitting, och det är ett av de snabbaste sätten att flytta information i minnet.

Det finns flera typer av OpenGL®-buffertar, även om var och en egentligen bara är ett minnesblock. En av de mest använda kallas framebuffer. En rambuffert innehåller den information som är nödvändig för att visa den aktuella bilden för visningsenheten. Informationen inuti en framebuffer är ordnad på samma sätt som minnet som används för att styra vad monitorn visar. Detta betyder att om en rambuffert finns på ett grafikkort kan bilden skickas till skärmen nästan omedelbart, även om det tar tid att faktiskt återge scenen till bufferten först.

Andra typer av OpenGL®-buffertar, såsom en vertexbuffert, kan innehålla hela sekvenser av information. Dessa typer av buffertar används för att hålla sekventiella informationsblock som kan behöva nås eller ändras många gånger varje sekund. Dessutom kan själva OpenGL®-buffertarna ofta skickas som argument till funktioner som kan dra fördel av buffertens ordnade tillstånd och utföra beräkningar mycket snabbt.