Eu uso o XNA para meus projetos e, nesses fóruns, às vezes vejo referências ao fato de que trocar um efeito por uma malha tem um custo relativamente alto, o que me surpreende ao pensar em trocar um efeito. à GPU junto com os parâmetros apropriados.
Gostaria de saber se alguém poderia explicar exatamente o que é caro sobre esse processo? E, se possível, 'relativamente' em contexto?
Por exemplo, digamos que eu queira usar um shader curto para ajudar na escolha, eu:
- Altere o efeito em cada objeto, calculando uma cor única para identificá-lo e fornecendo-o ao shader.
- Desenhe todos os objetos para um destino de renderização na memória.
- Pegue a cor do alvo e use-a para procurar o objeto selecionado.
Qual parte do tempo total gasto para concluir esse processo seria gasto trocando os shaders? Meus instintos diriam que tornar a cena novamente, por mais simples que seja o sombreador, seria uma ordem de magnitude mais lenta que qualquer outra parte do processo; por que toda a preocupação com os efeitos?