Я перепробовал все способы расчета альфы частицы и установил для шейдерного ресурса процесс отрисовки, в рендердоке screenDepthTexture всегда не является ресурсом.





Вероятно, вы пытаетесь использовать одну и ту же текстуру буфера глубины на двух этапах конвейера одновременно: считывание в пиксельном шейдере для вычисления мягкости и использование той же текстуры в качестве цели рендеринга глубины на этапе слияния вывода.
Это не сработает. Когда вы вызываете OMSetRenderTargets, привязка пиксельного шейдера не устанавливается для представления ресурсов этой текстуры.
Простой обходной путь — сделать копию текстуры глубины с помощью CopyResource и привязать копию к входным данным пиксельного шейдера. Таким образом, ваш пиксельный шейдер может читать оттуда, в то время как выходной этап слияния использует другую копию в качестве цели глубины/трафарета.
В будущем для устранения таких проблем используйте флаг D3D11_CREATE_DEVICE_DEBUG при создании устройства и читайте вывод отладки в Visual Studio. RenderDoc отлично подходит для ошибок более высокого уровня, когда вы рендерите что-то, но это выглядит неправильно. Ваша ошибка заключается в неправильном использовании D3D API. Этот уровень отладки в Windows SDK более полезен, чем RenderDoc для таких вещей.