No d3d11, você pode vincular vários destinos de renderização ID3D11DeviceContext :: OMSetRenderTargets . Mas por que você quer fazer isso?
No d3d11, você pode vincular vários destinos de renderização ID3D11DeviceContext :: OMSetRenderTargets . Mas por que você quer fazer isso?
Respostas:
Quando vários destinos de renderização são vinculados, cada um pode ser gravado individualmente pelo sombreador de pixels - não é (necessariamente) que todos os destinos de renderização terão a mesma imagem. Você pode escrever apenas o componente vermelho em uma saída, apenas o azul em outra, etc.
Isso é usado ao implementar a renderização adiada, por exemplo: informações de posição, normal, cor etc. são gravadas no seu próprio destino de renderização.
O benefício adicional de usar vários destinos de renderização, como na renderização adiada como Josh mencionou, é que você envia a geometria da cena ao shader de vértice apenas uma vez e a aplica a diferentes saídas de shader de pixel, em vez de reenviar a geometria para cada saída que você precisar. Isso economiza muito tempo de computação para a GPU. A compensação pelo desempenho mais rápido da GPU é o maior consumo de memória buffer de quadro.