DirectX11: Передать данные из ComputeShader в VertexShader?
-
27-09-2019 - |
Вопрос
Можно ли применить фильтр к данным геометрии, которые должны быть отображены с использованием Compute Shader, а затем использовать результат в качестве входного буфера в шейдере Vertex? Это сэкономит мне неприятности (& время) чтения данных.
Любая помощь горячо приветствуется.
Решение
Да, конечно. Сначала вы создаете два идентичных ID3D11Buffer
структур, использующих BIND_VERTEX_BUFFER
, BIND_SHADER_RESOURCE
а также BIND_UNORDERED_ACCESS
Использование флагов и ассоциированные UAVS и SRV.
Первый шаг - это применить свой фильтр для входного исходного буфера и записывать на буфер назначения во время вашего вычисления.
Затем во время прохода на рисовать, вы просто должны связать буфер назначения к IA
сцена. Вы можете сделать какой-нибудь пинг-понг, если вам нужно накапливать вычисления на вершины (я предполагаю, что путем фильтра вы имеете в виду Функциональная карта, чтобы сослаться на функциональный программный термин).