O que é um destino de renderização?
Na programação de gráficos de computador, um destino de renderização é uma área da memória do computador na qual o próximo quadro a ser exibido é desenhado. Geralmente usado para aumentar a velocidade de renderização, o destino de renderização geralmente fica em uma área de memória dedicada na placa gráfica perto da unidade de processamento gráfico (GPU). Embora o conceito seja quase o mesmo, existem algumas pequenas diferenças nas convenções de implementação e nomeação relacionadas a um destino de renderização; isso depende da linguagem ou biblioteca de programação que está sendo usada, com algumas línguas chamando-o de buffer de volta, objeto de buffer de estrutura ou buffer duplo. Também é possível, especialmente em computação gráfica tridimensional (3D), usar o destino de renderização para desenhar texturas em objetos para ajudar a otimizar a imagem final da exibição quando ela é compilada. Em alguns casos, é possível ter vários destinos de renderização (MRTs), com diferentes partes de um quadro sendo desenhadas em superfícies diferentes e depois compostas no destino final.
A idéia de um destino de renderização é semelhante ao processo usado com buffer duplo. Uma imagem é essencialmente desenhada em uma superfície fora da tela, que é realmente uma área de memória, de modo que, quando for a hora de desenhar o próximo quadro em um dispositivo ou tela de exibição, isso pode ser feito o mais rápido possível, porque todos das funções de desenho já foram executadas. A diferença com um destino de renderização em muitas implementações é que a área de memória usada pode estar na placa gráfica e gerenciada por hardware ou outros aspectos da GPU, tornando-a muito mais eficiente e mais rápida do que um projeto de buffer duplo gerenciado por software.
No caso da programação de gráficos de computador 3D, um destino de renderização pode ser usado para otimizar a renderização de objetos que usam imagens para suas texturas de superfície. O contexto de renderização está dentro do hardware gráfico, portanto, isso permite uma rasterização muito rápida de objetos 3D. Efeitos especiais também podem ser desenhados dessa maneira, tornando a montagem da cena final em um buffer traseiro muito rápida, porque a maioria das informações gráficas está sendo movida apenas uma curta distância na placa gráfica.
O hardware gráfico, os drivers e as bibliotecas que estão sendo usados podem fazer alguma diferença no funcionamento de um destino de renderização. Uma restrição específica é com o uso de MRTs, em que a placa gráfica determina quantos destinos podem ser usados simultaneamente. Algumas placas também não têm suporte de hardware para destinos de renderização, embora uma funcionalidade semelhante possa geralmente ser alcançada por meios alternativos.