DirectX11: Passe dados de ComputesHader para Vertexshader?
-
27-09-2019 - |
Pergunta
É possível aplicar um filtro aos dados da geometria a ser renderizada usando o shader de computação e, em seguida, usar o resultado como um buffer de entrada no shader do vértice? Isso me pouparia o problema (e tempo) de ler os dados.
Qualquer ajuda é muito apreciada.
Solução
Sim absolutamente. Primeiro você cria dois idênticos ID3D11Buffer
de estruturas usando BIND_VERTEX_BUFFER
, BIND_SHADER_RESOURCE
e BIND_UNORDERED_ACCESS
Sinalizadores de uso e os UAVs e SRVs associados.
A primeira etapa é aplicar seu filtro ao buffer de origem de entrada e gravar no buffer de destino durante o passe de computação.
Então, durante o passe de empate, você só precisa vincular o buffer de destino ao IA
palco. Você pode fazer um pingue-pongue se precisar acumular cálculos nos vértices (presumo que, por filtro, você quer dizer um mapa funcional, para se referir ao termo de programação funcional).