Я хотел бы реализовать выбор цвета в DirectX 12. Итак, в основном я пытаюсь выполнить рендеринг для двух целей рендеринга одновременно. Первая цель рендеринга должна содержать нормальный рендеринг, а вторая должна содержать objectID.
Чтобы выполнить рендеринг в две цели рендеринга, я думаю, все, что вам нужно сделать, это установить их с помощью OMSetRenderTargets.
Вопрос 1. Как указать, какой шейдер или объект состояния конвейера следует использовать для конкретной цели рендеринга? Например, как вы говорите, что render_target_0 должен отображаться с помощью shader_0, render_target_1 должен отображаться с помощью shader_1?
Вопрос 2. Как вы читаете пиксель из буфера кадра после его рендеринга? Как в DirectX 11, используя CopySubresourceRegion, а затем Map? Вам нужно использовать кучу обратного чтения? Вам нужно использовать ресурсный барьер или ограждение или какой-то примитив синхронизации сортировки, чтобы ЦП и графический процессор не использовали ресурс буфера кадра одновременно?
Я пробовал поискать ответы в Google, но далеко не ушел, потому что DirectX 12 довольно новый, а примеров, руководств или проектов с открытым исходным кодом для DirectX 12 пока не так много.
Заранее благодарны за Вашу помощь.
Дополнительные специальные бонусные баллы за примеры кода.