DirectX11: Pass-Daten von ComputeShader zu Vertexshader?
-
27-09-2019 - |
Frage
Ist es möglich, einen Filter auf die Geometriedaten anzuwenden, die Compute Shader gerendert werden soll, und dann das Ergebnis als Eingangspuffer in den Vertex Shader verwenden? Das würde mir die Mühe sparen (und Zeit) des Lesens der Daten zurück.
Jede Hilfe ist sehr geschätzt.
Lösung
Ja absolut. Zuerst erstellen Sie zwei identicals ID3D11Buffer
von Strukturen mit BIND_VERTEX_BUFFER
, BIND_SHADER_RESOURCE
und BIND_UNORDERED_ACCESS
Nutzung Flaggen und die damit verbundenen UAVs und SRVs.
Der erste Schritt ist der Filter-Eingangsquelle Puffer und Schreiben in den Zielpuffer während Ihres Compute Pass zu beantragen.
Dann während des Ziehens Paßt Sie müssen nur die Zielpuffer an die IA
Stufe binden. Sie können einige Pingpong tun, wenn Sie auf den Eckpunkten zu akkumulieren Berechnungen müssen (Ich gehe davon aus, dass durch Filter Sie bedeuten, dass ein Funktionskarte , zu dem funktionalen Programmierung Begriff beziehen).