2012-12-12 5 views
1

DirectX 가속화를 활용하여 텍스처에 이미지를 렌더링하고 싶습니다. 그러나 이미지를 화면에 표시하는 대신이 이미지를 비트 맵으로 일반 메모리로 가져 와서 원하는 결과를 얻고 싶습니다. 일반 텍스처에 텍스처를 어떻게 전송합니까? DirectX 11을 사용하고 있습니다.DirectX 11에서 텍스처를 렌더링하고 텍스처를 일반 메모리로 전송하는 방법은 무엇입니까?

+1

당신은 [여기]를, 같은 문제 및 해결책을 찾을 수 있습니다 (http://stackoverflow.com/questions/4120108/how-to-save-backbuffer-to-file- in-directx-10). 당신은 단지 10 대신에 DirectX 11 버전을 사용해야합니다. – enigma

+0

거의 ... 사실 저는 픽셀에 대한 액세스를 원합니다. D3DX10SaveTextureToFile()은 물론 백그라운드에서 수행합니다. 하지만 나 혼자하는 법을 알고 싶다. 나는지도/자원 (DX10/DX11)의 Unmap과 관련이 있다고 생각하지만 실제로 작동하는 것을 찾을 수 없었다! :-( –

답변

2

cpu 읽기 권한이있는 별도의 "스테이징"텍스처를 사용할 수 있습니다. CopySubresource() 또는 CopyResource()를 사용하여 rendertarget 텍스처를이 스테이징 텍스처로 복사 한 다음이 스테이징 텍스처에 Map()을 수행하십시오.

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

+0

아, 그게 위의 의견에있는 해결책 인 것을 보았습니다 ... 나는 이것을 여러 번 사용했는데 작동합니다.지도/언맵에 문제가 있습니까? – sandicz

관련 문제