Рендеринг в несколько текстур за один проход в DirectX 11

Я пытаюсь выполнить рендеринг двух текстур за один проход, используя C ++ directx 11 SDK. Я хочу, чтобы одна текстура содержала цвет каждого пикселя результирующего изображения (что я обычно вижу на экране при рендеринге 3D-сцены), а другая текстура содержала нормаль каждого пикселя и глубину (3 числа с плавающей точкой для нормалей и 1 число с плавающей точкой) для глубины). Прямо сейчас я могу создать две цели рендеринга и визуализировать первый проход в качестве цветов, а второй - передать нормали и глубину для каждой цели рендеринга соответственно. Однако это кажется пустой тратой времени, потому что я могу получить информацию о цвете каждого пикселя, его норме и глубине за первый проход. Так есть ли способ вывести две текстуры с помощью пиксельного шейдера?

Любая помощь будет оценена.

Постскриптум Я думаю о чем-то вроде RWTexture2D или RWStructuredBuffer в пиксельном шейдере. Немного предыстории: мне понадобятся два изображения для дальнейшей обработки в вычислительном шейдере. В связи с этим возникает побочный вопрос синхронизации: поскольку пиксельный шейдер (в отличие от вычислительного шейдера) записывает каждый пиксель по одному, как я узнаю, когда пиксельный шейдер завершен, и скажу вычислительному шейдеру начать постобработку изображения?

Ответы на вопрос(1)

Ваш ответ на вопрос