Che cos’è un obiettivo di rendering?

Nella programmazione grafica per computer, un obiettivo di rendering è un’area della memoria del computer in cui viene disegnato il fotogramma successivo da visualizzare. Utilizzato più spesso per aumentare la velocità di rendering, il target di rendering si trova solitamente in un’area di memoria dedicata sulla scheda grafica vicino all’unità di elaborazione grafica (GPU). Sebbene il concetto sia quasi lo stesso, ci sono alcune piccole differenze nell’implementazione e nelle convenzioni di denominazione connesse con una destinazione di rendering; questi dipendono dal linguaggio di programmazione o dalla libreria utilizzata, con alcuni linguaggi che lo chiamano back buffer, un oggetto framebuffer o un doppio buffer. È anche possibile, specialmente nella computer grafica tridimensionale (3D), utilizzare il target di rendering per disegnare trame sugli oggetti per ottimizzare l’immagine di visualizzazione finale quando viene compilata. In alcuni casi è possibile avere più obiettivi di rendering (MRT), con diverse parti di un frame disegnate su superfici diverse e quindi composte sul target finale.

L’idea di un target di rendering è simile al processo utilizzato con il doppio buffering. Un’immagine è essenzialmente disegnata su una superficie fuori schermo, che è in realtà un’area di memoria, in modo che quando è il momento di disegnare il fotogramma successivo su un dispositivo di visualizzazione o uno schermo, può essere fatto il più rapidamente possibile perché tutti delle funzioni di disegno sono già state eseguite. La differenza con un target di rendering in molte implementazioni è che l’area di memoria utilizzata può essere sulla scheda grafica e gestita tramite hardware o altri aspetti della GPU, rendendola molto più efficiente e veloce di un design a doppio buffer gestito da software.

Nel caso della programmazione di computer grafica 3D, un obiettivo di rendering può essere utilizzato per ottimizzare il rendering di oggetti che utilizzano immagini per le loro trame di superficie. Il contesto di rendering è all’interno dell’hardware grafico, quindi questo può consentire una rasterizzazione molto veloce di oggetti 3D. Anche gli effetti speciali possono essere disegnati in questo modo, rendendo l’assemblaggio della scena finale su un back buffer molto veloce perché la maggior parte delle informazioni grafiche viene spostata solo per una breve distanza sulla scheda grafica.

L’hardware grafico, i driver e le librerie utilizzati possono fare la differenza nel modo in cui opera un target di rendering. Un vincolo specifico è con l’uso di MRT, in cui la scheda grafica determina quanti bersagli possono essere utilizzati contemporaneamente. Alcune schede inoltre non hanno alcun supporto hardware per gli obiettivi di rendering, sebbene funzionalità simili possano essere generalmente ottenute con mezzi alternativi.