Wat is een renderdoel?
Bij het programmeren van computergrafieken is een renderdoel een gebied van computergeheugen waarin het volgende weer te geven frame wordt getekend. Meestal gebruikt om de renderingsnelheid te verhogen, bevindt het renderdoel zich meestal in een gebied met speciaal geheugen op de grafische kaart in de buurt van de grafische verwerkingseenheid (GPU). Hoewel het concept bijna hetzelfde is, zijn er enkele kleine verschillen in de implementatie- en naamgevingsconventies in verband met een renderdoel; deze zijn afhankelijk van de programmeertaal of bibliotheek die wordt gebruikt, waarbij sommige talen het een backbuffer, een framebuffer-object of een dubbele buffer noemen. Het is ook mogelijk, vooral in driedimensionale (3D) computerafbeeldingen, om het renderdoel te gebruiken om texturen op objecten te tekenen om het uiteindelijke weergavebeeld te optimaliseren wanneer het wordt gecompileerd. In sommige gevallen is het mogelijk om meerdere renderdoelen (MRT's) te hebben, waarbij verschillende delen van een frame op verschillende oppervlakken worden getekend en vervolgens op het uiteindelijke doel worden samengesteld.
Het idee van een renderdoel is vergelijkbaar met het proces dat wordt gebruikt met dubbele buffering. Een afbeelding wordt in wezen op een off-screen oppervlak getekend, wat echt een geheugengebied is, zodat wanneer het tijd is om het volgende frame naar een weergaveapparaat of scherm te tekenen, dit zo snel mogelijk kan worden gedaan omdat alle van de tekenfuncties zijn al uitgevoerd. Het verschil met een renderdoel in veel implementaties is dat het gebruikte geheugengebied zich op de grafische kaart kan bevinden en kan worden beheerd via hardware of andere aspecten van de GPU, waardoor het veel efficiënter en sneller is dan een softwarematig beheerd dubbelbufferontwerp.
In het geval van 3D-grafische computerprogrammering kan een renderdoel worden gebruikt om de weergave van objecten die afbeeldingen gebruiken voor hun oppervlaktestructuren te optimaliseren. De rendercontext bevindt zich in de grafische hardware, dus dit kan een zeer snelle rasterisatie van 3D-objecten mogelijk maken. Speciale effecten kunnen ook op deze manier worden getekend, waardoor het samenstellen van de laatste scène op een backbuffer erg snel gaat, omdat de meeste grafische informatie slechts over een korte afstand op de grafische kaart wordt verplaatst.
De grafische hardware, stuurprogramma's en bibliotheken die worden gebruikt, kunnen enig verschil maken in de werking van een renderdoel. Een specifieke beperking is het gebruik van MRT's, waarbij de grafische kaart bepaalt hoeveel doelen tegelijkertijd kunnen worden gebruikt. Sommige kaarten hebben ook helemaal geen hardware-ondersteuning voor renderdoelen, hoewel vergelijkbare functionaliteit meestal via alternatieve middelen kan worden bereikt.