Как отрендерить текстуру в DirectX 11 и перенести текстуру в обычную память?

Я хочу визуализировать изображение в текстуру, используя ускорение DirectX. Но вместо того, чтобы показывать это изображение на экране, я хочу вернуть это изображение в обычную память в виде растрового изображения, чтобы делать что-либо с результатом. Как перенести часть текстуры в обычную память? Я использую DirectX 11.


person Wagner Patriota    schedule 12.12.2012    source источник


Ответы (1)


Вы можете использовать отдельную «постановочную» текстуру, которая имеет доступ к процессору для чтения. Затем скопируйте вашу текстуру rendertarget в эту промежуточную текстуру с помощью CopySubresource() или CopyResource() и выполните Map() для этой промежуточной текстуры.

--> http://msdn.microsoft.com/en-us/library/windows/desktop/ff476259(v=vs.85).aspx

person sandicz    schedule 19.12.2012
comment
О, я видел это решение в комментариях выше... Я использовал это несколько раз, и это работает. В чем проблема с Map/Unmap? - person sandicz; 19.12.2012
comment
Любые предложения о том, как это сделать в DirectX 12? Кажется, там многое изменилось, связанное с памятью :( - person Dimitri Podborski; 22.01.2020